Retrieval QA History
Retrieval QA History es un componente de Nappai que combina la búsqueda de documentos con un modelo de lenguaje para responder preguntas. Mantiene un historial de chat, lo que permite que las respuestas tengan contexto de las interacciones previas. Además, puede devolver los documentos fuente que respaldan cada respuesta y ofrece la opción de transmitir la respuesta en tiempo real.
¿Cómo funciona?
-
Búsqueda de contexto
Cuando el usuario envía una pregunta, el componente utiliza el Retriever conectado para buscar los fragmentos de texto más relevantes en la base de datos o en cualquier fuente configurada. -
Generación de la respuesta
El fragmento de contexto recuperado se combina con el historial de conversación (si existe) y se envía al modelo de lenguaje (Model). El modelo genera una respuesta breve y coherente, siguiendo las instrucciones del System Prompt. -
Historial de chat
Si no se proporciona una External Memory, el componente crea una instancia deNappaiChatMessageHistory
que almacena hastaMemory top message
mensajes. Así, cada nueva interacción se añade al historial y se utiliza en la siguiente respuesta. -
Salida
- Si
Stream
está activado, la respuesta se envía al usuario en fragmentos a medida que el modelo la genera. - Si
Return Source Documents
está marcado, la respuesta incluye referencias a los documentos que se usaron para construirla.
- Si
Entradas
-
Model
Conecta el modelo de lenguaje que generará las respuestas (por ejemplo, GPT‑4, Llama, etc.). -
External Memory
Permite usar una memoria externa para el historial de chat. Si se deja vacío, se emplean las tablas internas de Nappai. -
Retriever
Especifica la fuente de documentos que se consultarán para encontrar contexto relevante. -
Input
El texto de la pregunta que el usuario desea responder. -
Memory top message
Número máximo de mensajes del historial que se conservarán (por defecto 20). -
Return Source Documents
Si se activa, la respuesta incluirá los documentos fuente que respaldan la respuesta. -
Stream
Determina si la respuesta se enviará en tiempo real.
$STREAM_INFO_TEXT
(por defecto: activado) -
System Prompt
Prompt que guía al modelo sobre cómo responder.
Ejemplo por defecto:You are an assistant for question-answering tasks. Use the following pieces of retrieved context to answer the question. If you don't know the answer, say that you don't know. Use three sentences maximum and keep the answer concise.
Salidas
-
Text
Mensaje con la respuesta generada por el modelo. SiReturn Source Documents
está activado, también incluye referencias a los documentos fuente. -
Runnable
ObjetoRunnable
que representa la cadena completa (útil para depurar o reutilizar la lógica en otro flujo).
Ejemplo de Uso
-
Configuración
- Conecta un modelo de lenguaje (p. ej., GPT‑4).
- Conecta un Retriever que busque en la base de datos de documentos internos.
- Deja External Memory vacío para usar la memoria interna de Nappai.
- Activa Stream si quieres ver la respuesta en tiempo real.
- Marca Return Source Documents si necesitas ver los documentos que respaldan la respuesta.
-
Interacción
El usuario escribe: “¿Cuál es la política de vacaciones de la empresa?”
El componente busca documentos relacionados, mantiene el historial de chat, envía la pregunta al modelo y devuelve una respuesta breve, por ejemplo:La política de vacaciones establece que cada empleado tiene 15 días hábiles al año.
(Referencia: Política de Recursos Humanos – Sección 3) -
Resultado
El usuario recibe la respuesta en el panel de chat. Si Stream está activado, la respuesta aparece carácter por carácter. Si Return Source Documents está activado, también se muestran los documentos fuente.
Componentes Relacionados
- Retrieval QA – Versión básica sin historial de chat.
- CustomRunnableWithMessageHistory – Clase que gestiona el historial de mensajes.
- NappaiChatMessageHistory – Implementación de memoria interna de Nappai.
Consejos y Mejores Prácticas
- Limita el número de mensajes: Ajusta Memory top message según la complejidad de la conversación para evitar sobrecargar la memoria.
- Personaliza el System Prompt: Cambia el prompt para adaptar el tono y la longitud de las respuestas a tu audiencia.
- Activa Stream solo cuando sea necesario: Si la respuesta es corta, desactivar el streaming puede reducir la latencia.
- Revisa las fuentes: Si la precisión es crítica, habilita Return Source Documents y verifica los documentos antes de publicar la respuesta.
Consideraciones de Seguridad
- Privacidad de datos: Los documentos recuperados pueden contener información sensible. Asegúrate de que el Retriever solo acceda a fuentes autorizadas.
- Control de acceso: Configura permisos adecuados para el modelo de lenguaje y la memoria de chat para evitar exponer información confidencial.
- Auditoría: Utiliza la salida de Text y Runnable para registrar las respuestas y los documentos fuente, lo que facilita la auditoría y el cumplimiento de normativas.