Comment mettre en cache les requêtes les plus fréquentes dans RAG?
sobes.tech IA
Réponse de l'IA
Dans la génération augmentée par récupération (RAG), la mise en cache des requêtes fréquentes aide à réduire la latence et la charge sur la base de données vectorielle et le modèle génératif. Les approches principales :
-
Mise en cache des résultats de recherche : sauvegarder les résultats de recherche dans la base vectorielle pour les requêtes fréquemment répétées. Lors d'une nouvelle requête, retourner les documents sauvegardés sans effectuer une nouvelle recherche.
-
Mise en cache des réponses générées : si la requête et le contexte correspondent, il est possible de retourner une réponse générée précédemment.
-
Utilisation de TTL (time-to-live) : pour que le cache ne devienne pas obsolète, définir une durée de vie pour les données en cache.
-
Hashage des requêtes : pour une recherche rapide dans le cache via une clé basée sur le hash de la requête.
Exemple en Python avec un dictionnaire simple pour le cache :
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