Chatea con tus documentos
De un documento puedes hacerle preguntas a la IA sobre el mismo como si fuera una conversación
+2
graph TD
%%{init: {'theme': 'mc','layout': 'elk'}}%%
ChatOutput-s3yx9[<div><img alt="logo" src="/_astro/messages-square.BaSDmT6g.svg" style="height: 20px !important;width: 20px !important"/></div>Chat Output]
style ChatOutput-s3yx9 stroke:#a170ff
ChatInput-nbeu2[<div><img alt="logo" src="/_astro/messages-square.BaSDmT6g.svg" style="height: 20px !important;width: 20px !important"/></div>Pregunta]
style ChatInput-nbeu2 stroke:#a170ff
GDriveFilesComponent-ield1[<div><img alt="logo" src="/_astro/google_drive.wKmDsV2c.svg" style="height: 20px !important;width: 20px !important"/></div>Obtener documento]
style GDriveFilesComponent-ield1 stroke:#a170ff
OpenAIEmbeddings-8lgaa[<div><img alt="logo" src="/_astro/openAI.BhmuxEs3.svg" style="height: 20px !important;width: 20px !important"/></div>OpenAI Embeddings]
style OpenAIEmbeddings-8lgaa stroke:#a170ff
LanguageRecursiveTextSplitter-60k4u[Separador de texto]
style LanguageRecursiveTextSplitter-60k4u stroke:#a170ff
AdvancedAgent-8vhpf[Agent]
style AdvancedAgent-8vhpf stroke:#a170ff
OpenAIModel-1ec5c[<div><img alt="logo" src="/_astro/openAI.BhmuxEs3.svg" style="height: 20px !important;width: 20px !important"/></div>OpenAI]
style OpenAIModel-1ec5c stroke:#a170ff
AstraDB-0wxah[Astra DB2]
style AstraDB-0wxah stroke:#a170ff
RetrieverTool-9ghrj[<div><img alt="logo" src="/_astro/langchain-icon.BXtvU_nA.svg" style="height: 20px !important;width: 20px !important"/></div>RetrieverTool]
style RetrieverTool-9ghrj stroke:#a170ff
AstraDB-jjmpw[Astra DB]
style AstraDB-jjmpw stroke:#a170ff
OpenAIEmbeddings-m1or6[<div><img alt="logo" src="/_astro/openAI.BhmuxEs3.svg" style="height: 20px !important;width: 20px !important"/></div>OpenAI Embeddings2]
style OpenAIEmbeddings-m1or6 stroke:#a170ff
GDriveFilesComponent-ield1 -.- LanguageRecursiveTextSplitter-60k4u
linkStyle 0 stroke:#a170ff
ChatInput-nbeu2 -.- AdvancedAgent-8vhpf
linkStyle 1 stroke:#a170ff
AdvancedAgent-8vhpf -.- ChatOutput-s3yx9
linkStyle 2 stroke:#a170ff
OpenAIModel-1ec5c -.- AdvancedAgent-8vhpf
linkStyle 3 stroke:#a170ff
LanguageRecursiveTextSplitter-60k4u -.- AstraDB-0wxah
linkStyle 4 stroke:#a170ff
OpenAIEmbeddings-8lgaa -.- AstraDB-0wxah
linkStyle 5 stroke:#a170ff
RetrieverTool-9ghrj -.- AdvancedAgent-8vhpf
linkStyle 6 stroke:#a170ff
AstraDB-jjmpw -.- RetrieverTool-9ghrj
linkStyle 7 stroke:#a170ff
OpenAIEmbeddings-m1or6 -.- AstraDB-jjmpw
linkStyle 8 stroke:#a170ff
Documentación del flujo de trabajo “Chatea con tus documentos”
🧩 Descripción general
El flujo permite que un usuario haga preguntas a través de una conversación y reciba respuestas generadas por una IA. Los datos se extraen de documentos subidos a Google Drive, se procesan, se vectorizan con embeddings de OpenAI y se guardan en Astra DB. El agente avanzado consulta la base de conocimiento a través de un retriever y genera las respuestas.
⚙️ Funcionalidades principales
- Carga de documentos desde Google Drive.
- División automática del contenido en trozos manejables.
- Generación de embeddings de los trozos con OpenAI.
- Almacenamiento vectorizado en Astra DB.
- Recuperación de información mediante un retriever de Astra DB.
- Resolución de consultas con un agente avanzado que usa un modelo GPT y la herramienta de recuperación.
- Presentación de la respuesta en la interfaz de chat.
🔄 Pasos del flujo de trabajo
| Nombre del componente | Rol en el flujo | Entradas clave | Salidas clave |
|---|---|---|---|
| Entrada de chat | Recibe la consulta del usuario. | Texto de la pregunta. | Mensaje de entrada (Message). |
| Obtener documento | Busca y devuelve los archivos seleccionados en Google Drive. | Selección de archivo. | Datos del archivo (Data). |
| Separador de texto | Divide el contenido en fragmentos de longitud configurable. | Datos del archivo. | Fragmentos de texto (Data). |
| Embeddings de OpenAI | Calcula vectores de embedding para cada fragmento. | Fragmentos de texto. | Vectores de embedding (Embeddings). |
| Astra DB (ingesta) | Almacena los fragmentos vectorizados y sus metadatos. | Fragmentos de texto, embeddings. | Confirmación de inserción (Data). |
| Herramienta de Recuperación | Construye un retriever que busca los fragmentos relevantes. | Astra DB (base_retriever). | Herramienta (BaseTool). |
| Modelo de OpenAI | Proporciona el modelo GPT que generará las respuestas. | Configuración del modelo. | Modelo (LanguageModel). |
| Agente Avanzado | Procesa la pregunta, consulta el retriever y genera la respuesta. | Mensaje de entrada, modelo GPT, herramienta de recuperación. | Respuesta (Message). |
| Salida de chat | Muestra la respuesta generada en la interfaz. | Mensaje generado. | Mensaje visualizado por el usuario. |
🧠 Notas
- Los documentos se extraen de Google Drive mediante la herramienta Obtener documento; la selección puede hacerse por archivo, carpeta o ID.
- La división de texto se realiza con un LanguageRecursiveTextSplitter, garantizando que cada trozo no exceda el tamaño máximo y manteniendo solapamiento opcional.
- Los embeddings se generan con el modelo OpenAI Embeddings, que permite ajustar el tamaño del contexto y el número de dimensiones.
- La base de datos Astra DB se utiliza tanto para almacenar los vectores como para construir el retriever de búsqueda semántica.
- El retriever se expone al agente como una herramienta (tool) llamada datospararesponder; el agente la utiliza automáticamente antes de generar la respuesta.
- El Agente Avanzado emplea un modelo GPT (por defecto gpt‑4.1‑mini) y puede configurarse con un número máximo de iteraciones y otras opciones de razonamiento.
- La respuesta se envía a la Salida de chat donde se presenta al usuario; la salida puede configurarse en formato de texto plano o con streaming.
- Se evita incluir cualquier identificador interno; los nombres de los componentes se muestran de forma legible y sin códigos de implementación.
Esta documentación proporciona una visión clara y funcional del flujo de trabajo, facilitando su comprensión y uso sin entrar en detalles de código o configuración interna.