Diferència entre revisions de la pàgina «RAG stateless vs RAG stateful (memòria)»
(Es crea la pàgina amb «=Introducció= Per transformar un sistema RAG puntual (stateless) en un RAG conversacional (stateful) amb memòria, el flux de treball s'ha de modificar principalment...».) |
|||
| Línia 35: | Línia 35: | ||
* La nova parella (pregunta original + resposta generada) s'afegeix automàticament al magatzem de memòria per a la següent interacció. | * La nova parella (pregunta original + resposta generada) s'afegeix automàticament al magatzem de memòria per a la següent interacció. | ||
| + | <pre> | ||
| + | [ Usuari fa una pregunta de seguiment ] | ||
| + | │ | ||
| + | ▼ | ||
| + | 🧠 1. Memòria de Sessió ──► [ Historial de xat ] | ||
| + | │ | ||
| + | ▼ | ||
| + | 🤖 2. Re-formulació LLM ──► [ Pregunta Autònoma / Standalone ] | ||
| + | │ | ||
| + | ▼ | ||
| + | 🔍 3. Retrieval a Qdrant (amb la pregunta autònoma) | ||
| + | │ | ||
| + | ▼ | ||
| + | 🧩 4. Prompt compost: [ Historial ] + [ Context Qdrant ] + [ Pregunta ] | ||
| + | │ | ||
| + | ▼ | ||
| + | 🤖 5. Generació amb Ollama ──► 💬 Resposta + 💾 Actualització de Memòria | ||
| + | </pre> | ||
{{Autor}}, octubre 2026 | {{Autor}}, octubre 2026 | ||
Revisió de 10:41, 14 oct 2026
Introducció
Per transformar un sistema RAG puntual (stateless) en un RAG conversacional (stateful) amb memòria, el flux de treball s'ha de modificar principalment en la fase de consulta i generació.
El xoc principal quan no hi ha memòria és que si l'usuari fa una pregunta de seguiment com "I com es configura?" o "Quin cost té això últim?", el cercador vectorial no sap a què es refereix "això".
Com es modifica el flux de treball (Pas a Pas)
1. Magatzem de Memòria de Sessió (Chat Memory Store)
Es manté un registre persistent (en memòria RAM, Redis o BD) de les últimes N interaccions entre l'usuari i el sistema.
2. Re-formulació de la consulta (Query Contextualization) Això representa un nou pas en el flux de treball senzill. Abans de buscar a Qdrant la pregunta de l'usuari es passa per un LLM amb l'historial recent per crear una pregunta autònoma (standalone query)
- Entrada de l'usuari: "Com es connecta amb Ollama?"
- Historial recent: "Estem parlant de Qdrant..."
- Pregunta re-formulada pel LLM: "Com es connecta la base de dades vectorial Qdrant amb el framework Ollama?"
3. Retrieval a Qdrant amb la pregunta re-formulada
La cerca per similitud vectorial a Qdrant no es fa amb la frase curta original, sinó amb la pregunta autònoma vectoritzada. Això garanteix que els fragments extrets de la base de dades siguin realment els rellevants per al tema complet.
4. Construcció del Prompt Tripartit
El context que s'envia al model s'amplia i ara conté tres blocs d'informació:
- Instrucions del sistema: Defineixen el rol del bot. - Historial de la conversa: Les últimes preguntes i respostes intercanviades. (bloc 1) - Context documental: Els fragments rellevants recuperats de Qdrant. (bloc 2) - Pregunta actual de l'usuari. (bloc 3)
5. Generació amb Ollama i actualització del registre
- El model executat en local mitjançant Ollama genera la resposta tenent en compte tant el fil de la conversa com els documents recuperats.
- La nova parella (pregunta original + resposta generada) s'afegeix automàticament al magatzem de memòria per a la següent interacció.
[ Usuari fa una pregunta de seguiment ]
│
▼
🧠 1. Memòria de Sessió ──► [ Historial de xat ]
│
▼
🤖 2. Re-formulació LLM ──► [ Pregunta Autònoma / Standalone ]
│
▼
🔍 3. Retrieval a Qdrant (amb la pregunta autònoma)
│
▼
🧩 4. Prompt compost: [ Historial ] + [ Context Qdrant ] + [ Pregunta ]
│
▼
🤖 5. Generació amb Ollama ──► 💬 Resposta + 💾 Actualització de Memòria
creat per Joan Quintana Compte, octubre 2026