RagRuntime — Présentation
RagRuntime est un orchestrateur RAG client‑side.
Il ne contient aucun objet lourd (embedding, index, LLM).
Il délègue toutes les opérations coûteuses au daemon Pyro5.
Il implémente un pipeline strict :
condense_query → retrieve → rerank → synthesize → render → generate
Chaque étape est isolée, testable, et remplaçable.
1. Rôle général
RagRuntime :
-
normalise l’historique ;
-
reformule la question via le LLM du daemon ;
-
interroge le service
rag.readerdu daemon RAG pour récupérer les passages ; -
applique un reranker local (optionnel) ;
-
construit un contexte RAG structuré selon le mode ;
-
rend ce contexte dans un format compact ;
-
génère la réponse finale via le LLM du daemon.
Il est LLM‑agnostique, index‑agnostique, embedding‑agnostique.
2. Structure interne
Composants principaux
-
condense_query() : réécriture de la question via
llm.server. -
retrieve() : appel Pyro5 vers
rag.reader. -
_apply_rerank() : reranker CPU local.
-
synthesize() : construction du contexte (tree, node, tool, condense).
-
render() : formatage compact du contexte.
-
generate() : génération finale via
llm.server.
3. Modes de synthèse
| Mode | Description |
|---|---|
| condense | concatène le texte brut |
| tree_summarize | résumé hiérarchique multi‑niveaux |
| node_summarize | résumé par chunk |
| tool | résumé compact pour ReAct |
Voir : Les modes de synthèse