Introducción
En esta lección aprenderás a construir un agente de herramientas potente que integra una base de datos vectorial externa. Hasta ahora hemos visto cómo conectar múltiples APIs a nuestro agente, pero el componente final que necesitamos es una base de datos vectorial persistente.
¿Por qué usar Pinecone?
- Persistencia: Los datos se almacenan permanentemente, no como las bases vectoriales en memoria
- Escalabilidad: Maneja grandes volúmenes de datos eficientemente
- Flexibilidad: Se puede conectar como herramienta externa a FlowWise
- Gestión: Permite administrar chunks, namespaces y metadatos fácilmente
Configuración Inicial: Duplicar el Flujo de Trabajo
Paso 1: Duplicar el Flujo Existente
- En tu flujo de trabajo actual, haz clic en Configuración
- Selecciona «Duplicate Chat Flow»
- Asigna un nombre: «Tool Agent with RAG»
- Guarda el flujo
Paso 2: Limpiar Herramientas Innecesarias
Elimina las herramientas que no necesites para este ejemplo:
- ✅ Mantener: Windows Buffer Memory, Calculator, Brave Search API, Current Date & Time
- ❌ Eliminar: Custom Tools (como Perplexity) que no usaremos
💡 Tip: Siempre evalúa qué herramientas realmente necesitas para tu caso de uso específico.
Creando el Document Store
¿Por qué Document Stores vs Vector Stores simples?
- Flexibilidad: Permite conectar múltiples fuentes de datos
- Gestión: Administra chunks de diferentes documentos fácilmente
- Persistencia: Se integra con bases de datos externas como Pinecone
- Metadatos: Mejor control sobre la información contextual
Paso 1: Crear un Nuevo Document Store
- Ve a Document Stores en FlowWise
- Haz clic en «Add New»
- Nombre: «RAG Course Test»
- Descripción: (opcional)
- Haz clic en «Add»
Paso 2: Configurar Document Loaders
Opción 1: Archivo PDF
- Haz clic en «+» para añadir un loader
- Selecciona «PDF File»
- Sube tu archivo (ejemplo: guía de Chain of Thought prompting)
- Configuración del Text Splitter:
- Tipo: Recursive Character Text Splitter
- Chunk Size: 1000
- Overlap: 200
Opción 2: Archivo de Texto/Markdown
- Añade otro loader con «Text File»
- Sube un archivo de texto (ejemplo: guía de prompting)
- Configuración del Text Splitter:
- Tipo: Markdown Text Splitter (para archivos markdown)
- Chunk Size: 500
- Overlap: 100
Paso 3: Añadir Metadatos
Los metadatos son cruciales para organizar y filtrar tu contenido:
Para el PDF:
- Clave:
PDF_COD
- Valor:
COD
Para el archivo de texto:
- Clave:
prompting_paper
- Valor:
prompting
Paso 4: Procesar los Documentos
- Haz clic en «Preview Chunks» para verificar cómo se dividirá el contenido
- Haz clic en «Process» para generar los chunks
- Verifica que los metadatos aparezcan correctamente
Configuración de Pinecone
Paso 1: Crear Cuenta en Pinecone
- Ve a pinecone.io
- Regístrate con tu cuenta de Google o email
- Haz clic en «Create an Index»
Paso 2: Configurar el Índice
Configuración crítica:
- Nombre del índice:
prompting
(todo en minúsculas) - Modelo de embeddings: OpenAI text-embedding-3-small
- Dimensiones: Se configuran automáticamente (1536 para text-embedding-3-small)
⚠️ Importante: El modelo de embeddings debe ser exactamente el mismo que uses en FlowWise, o la integración fallará.
Paso 3: Obtener API Key
- En Pinecone, ve a «API Keys»
- Crea una nueva key: «RAG Course»
- Copia la API key generada
Paso 4: Obtener Nombre del Índice
- Ve a Database > Indexes
- Haz clic en tu índice «prompting»
- Copia el nombre exacto del índice (recomendado para evitar errores de escritura)
Integración en FlowWise
Paso 1: Configurar Embeddings
- En Document Store, añade OpenAI Embeddings
- Usa las mismas credenciales que siempre
- Modelo: text-embedding-3-small
- Las dimensiones se configuran automáticamente
Paso 2: Configurar Vector Store (Pinecone)
- Selecciona Pinecone como vector store
- Credenciales: Crea nuevas credenciales «RAG Course Pinecone»
- Índice: Pega el nombre copiado de Pinecone
- Namespace:
prompting
(para organizar los datos) - Configuración avanzada:
- Top K: 4 (número de chunks a recuperar)
- Search Type: Similarity Search
- Fetch K: 20
- Lambda: 0.5 (mantener valores por defecto)
Paso 3: Absorber los Datos
- Haz clic en «Absorb» para enviar los chunks a Pinecone
- Espera a que se procesen todos los chunks
- Verifica en Pinecone que los datos aparezcan en el namespace correcto
Paso 4: Probar la Recuperación
Usa la función «Test Retrieval»:
- Query:
"What is COD?"
- Deberías recibir 4 chunks relevantes
- Verifica que los metadatos aparezcan correctamente
Integración con el Tool Agent
Paso 1: Añadir Retriever Tool
- En tu flujo «Tool Agent with RAG», añade una herramienta
- Selecciona «Retriever Tool»
- Configuración:
- Nombre:
prompting
- Descripción:
"Use this tool for questions about prompting and COD"
- Nombre:
Paso 2: Conectar el Document Store
- Añade «Document Store Vector» como retriever
- Selecciona tu Document Store: «RAG Course Test»
- La conexión se establece automáticamente
Paso 3: Guardar y Probar
- Guarda el flujo de trabajo
- Prueba con preguntas como:
"What is COD Prompting?"
"What are three good prompting techniques?"
Gestión Avanzada de Datos
Añadir Nuevos Documentos
- En Document Store, haz clic en «Add Document Loader»
- Puedes usar «Plain Text» para pegar contenido directamente
- Añade metadatos apropiados
- Procesa y absorbe solo los nuevos chunks
Gestión de Namespaces
Para limpiar un namespace:
- Ve a Pinecone > tu índice > Namespace
- Escribe el nombre del namespace:
prompting
- Selecciona «Delete Namespace»
- Vuelve a absorber los datos actualizados
Actualización de Contenido
Para actualizar documentos:
- Ve a Options en el document loader específico
- «Preview and Process» para actualizar
- «Delete» para eliminar documentos obsoletos
- Re-absorbe los cambios
Mejores Prácticas
Organización de Metadatos
- Usa nombres descriptivos y consistentes
- Incluye información sobre la fuente del documento
- Considera añadir fechas o versiones
Configuración de Chunks
- PDFs: Chunk size 1000, overlap 200
- Markdown: Chunk size 500, overlap 100
- Textos simples: Chunk size 800, overlap 150
Gestión de Top K
- Top K = 4: Balance entre relevancia y costo
- Top K más alto: Más contexto, pero más tokens (más caro)
- Top K más bajo: Menos contexto, respuestas menos completas
Record Manager (Avanzado)
Si usas Postgres, puedes configurar un Record Manager para:
- Evitar duplicación de chunks
- Mejor gestión de actualizaciones
- Cleanup automático
⚠️ Nota: El Record Manager puede tener bugs ocasionales. Úsalo solo si tienes experiencia con Postgres.
Casos de Uso Prácticos
1. Base de Conocimiento Empresarial
- Sube manuales, políticas, y documentación
- Usa metadatos para categorizar por departamento
- Permite a empleados hacer consultas en lenguaje natural
2. Asistente de Investigación
- Combina papers académicos, artículos y libros
- Metadatos con fechas y autores
- Recuperación contextual para preguntas complejas
3. Soporte Técnico
- Documentación de APIs, troubleshooting guides
- Metadatos por versión de producto
- Respuestas precisas basadas en documentación oficial
Conclusión
Has construido un agente RAG completo que puede:
- ✅ Gestionar múltiples fuentes de documentos
- ✅ Almacenar datos persistentemente en Pinecone
- ✅ Recuperar información contextual relevante
- ✅ Responder preguntas basadas en tu base de conocimiento
- ✅ Actualizarse y mantenerse fácilmente
Este sistema es escalable, flexible y production-ready para aplicaciones reales.
Próximos Pasos
En la siguiente lección cubriremos:
- Optimización de prompts para agentes más complejos
- Estrategias de prompting para mejores respuestas
- Gestión de contexto en conversaciones largas
¡Tu agente RAG está listo para casos de uso del mundo real!