Saltearse al contenido

Ejemplos paso a paso

Tres recetas, de la más habitual a la más completa. Cada una tiene un flujo de ingesta (se ejecuta una vez, y otra cada vez que cambian los documentos) y un flujo de consulta (el que usan las personas). Los nombres de componentes y campos son los que ves en el editor.

RecetaPara quéNecesitas
A. Asistente de manuales con Qdrant y Local RerankResponder sobre manuales, políticas o fichas con la mejor calidad medida.Un servidor Qdrant y un modelo de lenguaje.
B. Asistente técnico con manuales y grafoUn agente que junta documentos y registros con relaciones.Lo anterior y una base Neo4j.
C. Preguntas frecuentes con verificaciónUn asistente que prefiere decir «no lo sé» a inventar, sin servidores.Solo un modelo de lenguaje.

A. Asistente de manuales con Qdrant y Local Rerank

Qué consigues. Un agente que responde con tus manuales usando la combinación que mejor funcionó en nuestra medición: fragmentos con contexto y reordenación. Los vectores y la reordenación se calculan dentro de NappAI, sin coste por uso.

Flujo de ingesta

Componentes: Storage Files, Contextual Text Splitter, un modelo de lenguaje (por ejemplo DeepSeek), Qdrant y FastEmbed Embeddings (Local).

  1. Sube tus manuales a una carpeta de tu almacenamiento, por ejemplo manuales/.
  2. Añade Storage Files con Operation Get File, el archivo en File o File Path y Content Text.
  3. Conecta su salida a Data Inputs de Contextual Text Splitter. Pon Chunk Size 800 y Chunk Overlap 150, y conecta el modelo a Language Model.
  4. Conecta Chunks a Ingest Data de Qdrant, con Operation Add. Rellena URL, Collection Name (por ejemplo manuales) y, si tu servidor la pide, API Key.
  5. Conecta FastEmbed Embeddings (Local) a Embedding de Qdrant, con el modelo por defecto.
  6. Ejecuta el flujo. Repite con cada manual nuevo.

Flujo de consulta

Componentes: Chat Input, Agent, un modelo de lenguaje, Qdrant, FastEmbed Embeddings (Local), Local Rerank y Chat Output.

  1. Añade Qdrant con la misma URL y Collection Name, Operation Retriever y Number of Results 20. Conecta el mismo FastEmbed Embeddings (Local) a Embedding.
  2. Conecta su salida Retriever a Retriever de Local Rerank. Pon Results to Keep 5.
  3. Conecta la salida Tool de Local Rerank a Tools del Agent. En la pestaña Tool, Tool Name buscar_en_manuales y Tool Description «Busca en los manuales: errores, reparaciones, piezas, mantenimiento y garantía».
  4. Conecta el modelo a Model, Chat Input a Input y Response a Chat Output.
  5. En System Prompt escribe:
Eres el asistente de los técnicos de la empresa. Para cualquier pregunta sobre
las máquinas usa la herramienta buscar_en_manuales.
Responde solo con lo que encuentres. Si no está, dilo y no lo inventes.
Responde claro y breve.

Pruébalo. En el playground, pregunta por un código de error o una referencia de pieza de tus manuales y, después, por algo que no esté en ellos. En la ejecución puedes ver qué fragmentos devolvió Local Rerank en cada caso.

Si tus usuarios buscan mucho por código, añade la búsqueda híbrida: un BM25 Retriever que lea la misma colección y un Ensemble Retriever con los dos buscadores y Weights 0.5, 0.5, cuya salida Retriever va a Local Rerank. Ver Técnicas de recuperación.

B. Asistente técnico con manuales y grafo

Qué consigues. Los flujos del vídeo de Qué es RAG: un asistente para los técnicos de un servicio técnico de cafeteras. Un solo agente busca en toda la documentación, busca solo en los documentos de una marca cuando la pregunta la nombra y consulta el historial de incidencias, guardado como grafo en Neo4j.

La base de conocimiento. 9 PDF en una carpeta de tu almacenamiento: los manuales de cada máquina (Jaltec Brío 2G, Vellani Aurora 2G y 3G, molino Molinar M64 OD), la garantía y las tarifas, la guía de mantenimiento, tres informes mensuales de incidencias y las preguntas frecuentes. Un mismo código de error significa cosas distintas en cada marca, y por eso cada fragmento se guarda con su marca.

Flujo «Base de conocimiento · ingesta»

ComponenteAjustes claveSe conecta a
Storage Files (lista)Operation List Files sobre la carpeta de los documentosEl segundo Storage Files
Storage Files (lectura)Operation Get File en Batch Mode, para leer uno a uno los archivos de la lista; Content TextData Inputs de Contextual Text Splitter
Contextual Text SplitterUn modelo rápido en Language Model, que añade a cada fragmento una frase con su contextoData de Metadata Tagger
Metadata TaggerMetadata Schema con los cuatro datos de abajoIngest Data de Qdrant
QdrantOperation Add–
FastEmbed Embeddings (Local)Modelo por defectoEmbedding de Qdrant

Cómo leer uno a uno los archivos de una lista: Storage Files y Batch Mode.

Los datos del esquema de Metadata Tagger:

NombreTipoQué guarda
marcastringLa marca de la máquina: Jaltec, Vellani o Molinar.
tipostringEl tipo de documento: manual, garantía, informe, preguntas frecuentes…
messtringEl mes de un informe, con el formato 2026-07.
codigosarrayLos códigos de error que aparecen en el fragmento, como E07.

Al ejecutarlo, la salida Tagged Data muestra cada fragmento con su texto y sus etiquetas.

Flujo «Asistente técnico · todo el RAG»

ComponenteAjustes claveSe conecta a
QdrantOperation Retriever, la misma colecciónRetrievers de Ensemble Retriever
BM25 RetrieverLee los fragmentos de la misma colección: salida Vector Store de Qdrant en Parent document vectorstoreRetrievers de Ensemble Retriever
Ensemble RetrieverWeights 0.5, 0.5Retriever de Local Rerank
Local Rerank «Buscar en la documentación»Results to Keep 5Tools del Agent (salida Tool)
Qdrant «Buscar por marca»Filter by Metadata en modo Dynamic, con Metadata Filter (JSON) en modo herramienta para que el agente escriba el filtro a partir de la preguntaTools del Agent (salida Tool)
Neo4j GraphRAG «Consultar incidencias»Credencial Neo4j API, Operation Text2Cypher, ejemplos en ExamplesTools del Agent (salida Tool)
FastEmbed Embeddings (Local)El mismo modelo que en la ingestaEmbedding de los dos Qdrant
DeepSeek–Model del Agent y Language Model de Neo4j GraphRAG
Agent «Asistente técnico»Instrucciones que le dicen qué herramienta usar para cada cosaResponse a Chat Output

El grafo une cada incidencia con su bar, su técnico y su máquina. Cómo preparar el grafo y escribir los ejemplos de Examples: GraphRAG con Neo4j. Un System Prompt que funciona con estas tres herramientas:

Eres el asistente de los técnicos de Cafés del Sur, que reparan máquinas de café en bares y cafeterías.
Usa tus herramientas:
- Buscar en la documentación, para errores, averías, piezas, mantenimiento, garantía y tarifas.
- Buscar por marca, cuando la pregunta nombra una marca: un mismo código significa cosas distintas en cada una.
- Consultar incidencias, para datos concretos de incidencias, bares, máquinas y técnicos.
Si una pregunta necesita varias, usa varias. No inventes nada: si no lo encuentras, dilo.
Responde en español, claro y breve.

Pruébalo con las preguntas del vídeo:

PreguntaQué responde
«¿Qué pieza es la MO-305…?»El condensador de arranque del molino Molinar, y la incidencia en la que se cambió.
«Mi Vellani Aurora marca el error E07…»Caudalímetro bloqueado, la pieza VL-1180 y casos reales. Avisa de que el E07 significa otra cosa en el molino.
«¿Qué incidencias abiertas tiene Lucía Ortega…?»Las tres, cada una con su bar, sacadas del grafo.
«¿Cuánto cuesta comprar una Vellani Aurora nueva?»Dice que no tiene ese dato, porque no está en la documentación ni en el grafo.

Cada técnica, en su propio vídeo

C. Preguntas frecuentes con verificación

Qué consigues. Un asistente de preguntas frecuentes que comprueba cada respuesta y dice que no ha encontrado la información cuando no está en tus documentos. Usa FAISS, que no necesita ningún servidor: el índice se guarda en tu almacenamiento de NappAI.

Flujo de ingesta

Componentes: Storage Files, Recursive Character Text Splitter, FAISS y FastEmbed Embeddings (Local).

  1. Storage Files con Operation Get File, tu documento de preguntas frecuentes en File y Content Text.
  2. Conecta su salida a Input de Recursive Character Text Splitter, con Chunk Size 800 y Chunk Overlap 150. Si cada pregunta con su respuesta ocupa menos de eso, un fragmento será una pregunta.
  3. Conecta la salida del divisor a Ingest Data de FAISS, con Operation Add, Index Name faq_tienda y Persist Directory faq.
  4. Conecta FastEmbed Embeddings (Local) a Embedding y ejecuta.

Si prefieres Chroma DB, es igual: usa Collection Name y Persist Directory en lugar de Index Name.

Flujo de consulta

Componentes: Chat Input, RAG Agent, un modelo de lenguaje, FAISS, FastEmbed Embeddings (Local) y Chat Output.

  1. FAISS con Operation Retriever, el mismo Index Name y Persist Directory, y Number of Results 4. Conecta FastEmbed Embeddings (Local) a Embedding.
  2. Conecta su salida Retriever a Retrievers del RAG Agent.
  3. Conecta el modelo a Model, Chat Input a Question y Response a Chat Output.
  4. Deja las opciones de precisión: Enable Document Relevance Grading y Enable Hallucination Check activadas, Enable Web Search Fallback desactivada.
  5. En Additional Instructions escribe en nombre de quién habla y qué hacer cuando no encuentra la respuesta:
Hablas en nombre de Electrohogar Norte y tratas de tú.
Si la documentación no tiene la respuesta, invita a escribir a soporte@electrohogar-norte.example.
  1. Si las personas hacen preguntas encadenadas, activa Use Memory.

Pruébalo. Pregunta algo que esté en tus preguntas frecuentes, luego una pregunta de seguimiento («¿y cuánto cuesta?») y por último algo que no esté. En la prueba que hicimos con una tienda ficticia, «¿Tenéis tienda física en Lisboa?» recibió: «Lo siento, no he podido encontrar información sobre tiendas físicas en Lisboa en la documentación disponible. Te invito a escribir a soporte@…». Cada respuesta cita sus documentos ([1], [2]…) y termina con las Fuentes (opción Show Sources, activada por defecto).

Más detalles de cada opción en Agente de RAG.