Sobes.tech
Middle — Senior
21

Как кешировать самые частые запросы в RAG?

Companies where asked
Hybrid
Sensemitter
Райффайзенбанк

Answer from AI

sobes.tech AI

В Retrieval-Augmented Generation (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