Converse com seus documentos
De um documento você pode fazer perguntas à IA sobre ele como se fosse uma conversa.
+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
📄 Conversar com seus Documentos
🧩 Descrição Geral
Este fluxo permite que o usuário faça upload de documentos do Google Drive, os processe e armazene em um banco de dados vetorial Astra DB. Em seguida, a IA consulta essa base e responde a perguntas de forma conversacional, como se fosse um chat.
⚙️ Funcionalidades Principais
- Upload de arquivos direto do Google Drive.
- Divisão de texto em blocos de tamanho configurável.
- Geração de embeddings usando modelos OpenAI.
- Ingestão de vetores no Astra DB.
- Recuperação de informações com um retriever.
- Resposta em chat com a IA, suportando fluxo de diálogo.
- Configuração de modelo (OpenAI GPT‑4.1‑mini) e parâmetros de LLM.
- Ferramenta customizada (
RetrieverTool) que permite ao agente consultar a base antes de responder.
🔄 Passos do Fluxo de Trabalho
| Nome do Componente | Papel no Fluxo | Entradas Principais | Saídas Principais |
|---|---|---|---|
| Chat Input | Captura mensagem do usuário e arquivos anexados. | Mensagem de texto, arquivos do Google Drive (opcional) | Mensagem formatada para o agente |
| OpenAI Model | Fornece o modelo de linguagem para o agente. | Configuração de modelo (gpt‑4.1‑mini) | Instância de modelo de linguagem |
| Advanced Agent | Processa a mensagem, usa ferramentas e gera resposta. | Entrada do usuário, modelo de linguagem, ferramenta de retriever | Mensagem de resposta |
| Chat Output | Exibe a resposta do agente no chat. | Mensagem gerada pelo agente | Mensagem exibida ao usuário |
| Retriever Tool | Implementa a lógica de consulta ao banco de dados. | Retriever configurado (Astra DB) | Ferramenta de recuperação |
| Astra DB (Retriever) | Constrói o retriever para buscar vetores no Astra DB. | Embedding (OpenAI Embeddings 2), configuração de busca | Retriever pronto |
| Astra DB (Ingestão) | Ingesta os vetores no Astra DB. | Dados divididos (Language Recursive Text Splitter), embedding (OpenAI Embeddings) | Dados armazenados no banco |
| Language Recursive Text Splitter | Divide documentos em blocos adequados para embedding. | Dados de entrada (arquivo do Google Drive) | Blocos de texto |
| OpenAI Embeddings | Gera embeddings para os blocos de texto. | Blocos de texto, modelo de embedding | Vetores de embedding |
| Google Drive Files Component | Recupera o conteúdo dos arquivos selecionados no Google Drive. | Identificador ou seleção de arquivos | Dados dos arquivos |
Obs.: Os componentes de ingestão (Google Drive → Splitter → Astra DB) e de consulta (Chat → Agent → Retriever → Chat) operam em paralelo, mas a ingestão deve ser concluída antes que o agente possa responder a perguntas.
🧠 Notas
- O fluxo presume que a API do Google Drive e a credencial Astra DB já estejam configuradas no ambiente.
- O
RetrieverToolfunciona apenas como ferramenta; o agente decide quando usar a recuperação de documentos. - O modelo GPT‑4.1‑mini pode ser trocado por outro modelo OpenAI, basta ajustar a configuração no componente OpenAI Model.
- Para alterar o tamanho dos blocos de texto, modifique o parâmetro
Chunk Sizeno Language Recursive Text Splitter. - A ingestão pode ser disparada manualmente ou automaticamente por gatilho, mas não há dependência direta no fluxo de chat.
- O agente suporta memória curta e longa, embora não esteja habilitada neste exemplo (opção
use_checkpointerestá falsa). - Se o número de documentos for alto, considere aumentar
batch_sizena ingestão ou habilitarsetup_modeassíncrono.
Esta documentação oferece uma visão funcional e fluida do fluxo, mantendo foco na interação entre componentes e no valor que a IA traz ao usuário final.