Реалізація AI-кэширування відповідей (Semantic Cache) в мобільному додатку
Звичайний кеш працює по точному збігу ключа. «Як додати транзакцію?» та «Як мені додати нову транзакцію?» — різні строки, різні запити, два виклики API. Семантичний кеш працює по смислу: обидва питання отримують один і той же кешований відповідь, тому що їхні embeddings близько у векторному просторі.
Архітектура семантичного кешу
Потік: запит користувача → генерація embedding → пошук найближчого у векторному сховищі → якщо cosine similarity > threshold, повернути кешовану відповідь → інакше виклик LLM → зберегти embedding + відповідь в кеш.
Використовуйте Redis + RediSearch для малих обсягів (вбудована векторна подібність). pgvector якщо PostgreSQL в стеку. Керовані сервіси Pinecone / Weaviate для мільйонів записів.
Threshold критичний параметр. При 0.85, кеш занадто агресивний: питання різного смислу отримують одну відповідь. При 0.97 — майже не працює. Оптимальний діапазон для більшості доменів: 0.90–0.95, налаштовується на реальних запитах.
Інвалідація та TTL
Інвалідуйте семантичний кеш при оновленні системного промпту або базової моделі — старі відповіді можуть не відповідати новій поведінці. Мінімальний TTL — 7–30 днів для стабільних FAQ-подібних питань. Для питань з часовою привязкою («який у мене баланс?») — неприйнятна. Визначте через класифікатор або ключові слова.
Орієнтири за часом
Базовий семантичний кеш на Redis + OpenAI Embeddings — 2–3 дні. З налаштуванням threshold на реальних даних та моніторингом hit rate — 3–5 днів.







