
Converse com Seus Documentos: Trabalhando com LangChain, RAG, MCP e ChromaDB de Forma Simples
Você já desejou poder fazer perguntas a partir de uma pilha de documentos, planilhas ou PDFs armazenados em sua máquina e magicamente obter respostas? Não é mágica e, neste guia, construiremos exatamente isso: um sistema local de perguntas e respostas que permite conversar com seus documentos usando técnicas e ferramentas de IA.
Vamos combinar Geração Aumentada por Recuperação (RAG) com o Protocolo de Contexto de Modelo (MCP) para criar um pipeline modular e pronto para produção. Ao final deste artigo, teremos um sistema funcional composto por três serviços: um servidor de ingestão de documentos, um servidor de ferramentas MCP e um agente de IA conversacional alimentado por LangChain.
O Que Vamos Construir
- Construir um poderoso sistema de perguntas e respostas a partir de documentos.
- Entender os conceitos centrais da arquitetura RAG.
- Configurar e interagir com o armazenamento de vetores ChromaDB.
- Implementar o carregamento de dados usando carregadores de documentos LangChain.
- Transmitir respostas para uma ótima experiência do usuário.
- Integrar Geração Aumentada por Recuperação (RAG).
Sobre Mim
Eu sou David Archanjo, um Engenheiro Full-Stack com mais de 10 anos de experiência na indústria de tecnologia. Sou apaixonado por desenvolvimento de software e Engenharia de IA, e gosto de compartilhar conhecimento prático por meio de artigos técnicos que ajudam desenvolvedores a construir aplicações do mundo real.
Índice
- Contexto
- Por que RAG e MCP?
- Passo 1: Configurando o Ambiente
- Passo 2: Carregando e Indexando Documentos no ChromaDB
- Passo 3: Expondo ferramentas MCP
- Passo 4: Construindo a cadeia RAG
- Passo 5: Executando e Testando o Agente de Perguntas e Respostas
- Considerações Finais
Contexto
Modelos de Linguagem de Grande Escala (LLMs) se destacam em raciocínio e geração de texto, mas seu conhecimento é limitado ao que foram treinados. Eles não podem acessar nossos documentos privados, dados internos da empresa ou qualquer informação não incluída em seu treinamento, o que os torna incapazes de responder perguntas sobre nossa base de conhecimento sem contexto adicional.
A Geração Aumentada por Recuperação (RAG) aborda essa limitação recuperando informações mais relevantes, por exemplo, de nossos documentos no momento da consulta e fornecendo-as ao LLM como contexto, permitindo respostas fundamentadas. Neste guia, expomos essa camada de recuperação como uma ferramenta do Protocolo de Contexto de Modelo (MCP), criando um serviço reutilizável que qualquer agente ou aplicação compatível com MCP pode aproveitar.
Por que RAG e MCP?
O Caso para RAG
Sem RAG, um LLM só pode responder perguntas com base no que aprendeu durante o treinamento.
Ele não pode:
- Responder perguntas sobre nossos documentos privados ou proprietários.
- Refletir atualizações que ocorreram após seu limite de treinamento.
- Citar fontes ou trechos específicos para respaldar suas respostas.
RAG resolve esses problemas combinando busca semântica com raciocínio LLM. Nossos documentos são primeiro divididos em pequenos pedaços semanticamente significativos, convertidos em embeddings (representações vetoriais de seu significado) e armazenados em um banco de dados vetorial. Quando um usuário envia uma pergunta, a consulta é incorporada no mesmo espaço vetorial, permitindo que o sistema recupere os pedaços mais relevantes com base na similaridade semântica em vez de correspondência de palavras-chave. Esses trechos recuperados são então injetados no prompt do LLM como contexto, permitindo que o modelo gere respostas que estão fundamentadas em nossos dados, mais precisas e menos propensas a alucinações.
Principais benefícios do RAG:
- Precisão: as respostas vêm de nossos documentos reais.
- Transparência: podemos rastrear cada resposta de volta a uma fonte específica.
- Eficiência de custo: processamos apenas o que é relevante para a pergunta.
- Atualidade: novos documentos podem ser adicionados a qualquer momento sem re-treinamento do modelo.
O Caso para MCP
O Protocolo de Contexto de Modelo é um padrão aberto que define como agentes de IA descobrem e invocam ferramentas externas.
Ao expor nossa capacidade de busca de documentos como uma ferramenta MCP, ganhamos várias vantagens arquitetônicas:
- Modularidade: o serviço de recuperação é completamente desacoplado do agente.
- Reutilização: o mesmo servidor MCP pode atender a vários agentes ou aplicações simultaneamente.
- Descobribilidade: os agentes podem descobrir automaticamente ferramentas disponíveis e suas descrições em tempo de execução.
- Padronização: um protocolo aberto desacopla nossa integração de qualquer estrutura única, reduzindo o bloqueio de fornecedor e garantindo interoperabilidade a longo prazo.
Combinar RAG com MCP oferece o melhor dos dois mundos: a precisão e o contexto fundamentado da geração aumentada por recuperação com a flexibilidade, interoperabilidade e manutenibilidade de um protocolo padronizado para integrar ferramentas e fontes de dados.
Passo 1: Configurando o Ambiente
Antes de escrever qualquer código, vamos organizar a estrutura do projeto e instalar as dependências necessárias.
Estrutura do Projeto
.
├── .env # Variáveis de ambiente
├── .db/ # Armazenamento persistente do ChromaDB
├── agent.py # Agente RAG conversacional
├── assets/ # Documentos de exemplo para teste
│ ├── car_prices.csv
│ ├── company_credentials.txt
│ ├── meeting_notes.md
│ └── resume.pdf
├── config.py # Configuração centralizada
├── doc_ingestion_server.py # Pipeline de ingestão de documentos & API
├── doc_mcp_server.py # Servidor de ferramentas MCP
├── docs/ # Diretório de documentos monitorados
└── requirements.txt # Dependências do Python
NOTA: Você pode encontrar esses documentos de exemplo no repositório do GitHub acompanhante.
Nosso projeto está organizado em torno de três serviços separados, cada um com uma responsabilidade clara:
| Serviço | Arquivo | Responsabilidade |
|---|---|---|
| Servidor de Ingestão | doc_ingestion_server.py |
Carregar, dividir, incorporar e armazenar documentos |
| Servidor de Ferramentas MCP | doc_mcp_server.py |
Expor ferramentas de documentos via protocolo MCP |
| Agente de IA | agent.py |
Aceitar consultas de usuários e orquestrar a recuperação |
Instalando Dependências
- Crie e ative um ambiente virtual:
python -m venv venv
source venv/bin/activate # No Windows: venv\Scripts\activate
- Crie um arquivo
requirements.txte adicione o seguinte:
fastapi>=0.139.2
fastmcp>=3.4.4
langchain>=1.3.14
langchain-chroma>=1.1.0
langchain-community>=0.4.2
Este artigo oferece um guia prático para empresas brasileiras que desejam implementar sistemas de Q&A utilizando IA. A combinação de RAG e MCP pode melhorar a eficiência na busca de informações em documentos, aumentando a produtividade e a precisão nas respostas.


