Data Retrieval Chain
El Data Retrieval Chain es una herramienta que permite a los usuarios enviar un lote de datos, buscar información relevante en un vector store y generar respuestas con un modelo de lenguaje. No realiza ninguna operación adicional; simplemente procesa los datos que le entregas y devuelve los resultados.
¿Cómo funciona?
- Entrada de datos – Recibe un conjunto de datos (puede ser un texto, un JSON, etc.).
- Separación opcional – Si la opción Check if value is array está activada, el componente verifica si el valor es una lista y, en caso afirmativo, la divide usando el Separator for array.
- Búsqueda – Utiliza el Retriever configurado para buscar fragmentos de contexto relevantes en el vector store.
- Prompt – Con el contexto recuperado y la Question proporcionada, construye un prompt que se envía al modelo de lenguaje (Model).
- Respuesta – El modelo devuelve la respuesta, que se devuelve como salida Data.
- Formato – Si JSON Mode está activado, la respuesta se devuelve en formato JSON; si JSON Flatten está activado, el JSON se aplana para facilitar su uso posterior.
El proceso es completamente local dentro del flujo de Nappai, pero depende de un vector store (por ejemplo, Pinecone, Weaviate, etc.) y de un modelo de lenguaje (OpenAI, Cohere, etc.) que ya estén configurados en tu entorno.
Entradas
Campo | Tipo | Descripción |
---|---|---|
Data | HandleInput | Los datos que se usarán para formular la pregunta. |
Model | HandleInput | El modelo de lenguaje que procesará la consulta. |
Retriever | HandleInput (REQUIRED) | El componente que realiza la búsqueda en el vector store. |
Check if value is array | BoolInput | Si es verdadero, comprueba si el valor es una lista y la divide. |
Separator for array | StrInput | El separador que se usa para dividir la cadena en una lista. |
Prompt | MultilineInput | Texto que se envía al modelo. 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, just say that you don't know.<br>Context: {context} <br>Question: {question} <br>Answer: |
Source data input key | StrInput | Clave del dato que se añadirá a la pregunta. |
JSON Flatten | BoolInput | Si es verdadero, aplanará la respuesta JSON. |
JSON Mode | BoolInput | Si es verdadero, la respuesta se devolverá en formato JSON. |
Max Concurrency | IntInput | Número máximo de peticiones concurrentes que se enviarán al modelo. |
Output key name | StrInput | Nombre de la clave que se usará en la salida. |
Question | MultilineInput | La pregunta que se enviará al modelo. |
Nota: Todos los nombres de los campos están en inglés y no deben traducirse.
Salidas
Campo | Tipo | Descripción |
---|---|---|
Data | Data (método: process_batch) | El resultado procesado por el modelo, que puede ser texto plano o JSON según la configuración. |
Ejemplo de Uso
Supongamos que quieres responder a varias preguntas sobre un conjunto de artículos de soporte técnico:
- Data:
"Artículo 1: Cómo reiniciar el router\nArtículo 2: Solución de problemas de Wi‑Fi"
- Check if value is array:
True
- Separator for array:
"\n"
- Retriever: Conecta el componente VectorStoreRetriever que ya tiene tus artículos indexados.
- Prompt: Usa el valor por defecto o personalízalo para incluir instrucciones específicas.
- Question:
"¿Cómo puedo solucionar la pérdida de señal Wi‑Fi?"
- Model: Selecciona tu modelo de lenguaje preferido (por ejemplo,
gpt-4
). - JSON Mode:
False
(para obtener texto plano).
El flujo devolverá una respuesta que combina el contexto relevante de los artículos con la pregunta, entregada en la salida Data.
Componentes Relacionados
- BaseDataBatchRetrievalChain – La clase base que define la lógica de batching y recuperación.
- DataRetrievalChain – Versión no batch que procesa un solo dato a la vez.
- VectorStoreRetriever – Componente que realiza la búsqueda en el vector store.
- LLMChain – Encapsula la llamada al modelo de lenguaje.
Consejos y Mejores Prácticas
- Mantén el prompt breve: Un prompt demasiado largo puede saturar el modelo y aumentar el coste.
- Usa JSON Mode cuando necesites datos estructurados: Facilita la integración con otros componentes que esperan JSON.
- Ajusta Max Concurrency: Si tu modelo tiene límites de tasa, reduce este valor para evitar errores.
- Revisa el separador: Asegúrate de que el separador coincida con el formato de tus datos para evitar divisiones incorrectas.
- Prueba con un solo dato primero: Verifica que el retriever y el modelo funcionan antes de pasar a lotes grandes.
Consideraciones de Seguridad
- Protege tus datos sensibles: Si los datos contienen información confidencial, asegúrate de que el vector store y el modelo estén configurados con las políticas de privacidad adecuadas.
- Control de acceso: Limita quién puede ejecutar este componente en el dashboard para evitar exfiltración accidental de datos.
- Monitorea el uso: Registra cuántas peticiones se realizan y revisa los logs para detectar patrones inusuales.
Con esta guía, podrás integrar el Data Retrieval Chain en tus flujos de trabajo de Nappai de forma sencilla y segura.