Sobes.tech
Middle — Senior

Kako keširati najčešće upite u RAG?

sobes.tech АИ

Одговор од АИ

У Генерації з додаванням пошуку (RAG), кешування часто задаваних запитів допомагає зменшити затримки та навантаження на векторну базу даних і генеративну модель. Основні підходи:

  • Кешування результатів пошуку: зберігайте результати пошуку у векторній базі для часто повторюваних запитів. При повторному запиті поверніть збережені документи без повторного пошуку.

  • Кешування згенерованих відповідей: якщо запит і контекст співпадають, можна повернути раніше згенеровану відповідь.

  • Використання TTL (time-to-live): щоб кеш не застарів, встановіть час життя для збережених даних.

  • Хешування запитів: для швидкого пошуку у кеші за ключем, заснованим на хеші запиту.

Приклад на Python з простим словником для кешу:

cache = {}

def get_rag_response(query):
    key = hash(query)
    if key in cache:
        return cache[key]
    docs = vector_db.search(query)
    answer = generator.generate(docs, query)
    cache[key] = answer
    return answer