Um Agente de Inteligência Artificial baseado em RAG (Retrieval-Augmented Generation) projetado para responder perguntas técnicas sobre a biblioteca Python requests.
O agente é capaz de baixar a documentação oficial, processar os dados, armazená-los em um banco vetorial e utilizar um LLM (via Ollama) para fornecer respostas didáticas, com exemplos de código e referências precisas, tudo através de uma interface de terminal (CLI) moderna e interativa.
- 🕷️ Crawler Integrado: Sistema de ingestão próprio (Python puro) que baixa a documentação oficial recursivamente.
- 🧠 Busca Semântica: Utiliza
Sentence-Transformerspara criar embeddings de alta qualidade. - 💾 Banco Vetorial na Nuvem: Integração nativa com Zilliz Cloud (Milvus).
- 💬 LLM via Ollama: Conexão com modelos open-source (Llama 3, GPT-OSS) via API, com suporte a Streaming.
- 🔍 Observabilidade Completa: Rastreamento de execução (Tracing) integrado com LangSmith para monitorar inputs, outputs e latência.
- 🎨 Interface Rica (CLI): UI desenvolvida com
rich(Markdown em tempo real e tabelas). - 🛡️ Resiliência: Tratamento robusto de erros de encoding (UTF-8).
- Linguagem: Python 3.12+
- Orquestração: LangChain (Splitters) & LangSmith (Tracing)
- Banco de Dados: PyMilvus / Zilliz Cloud
- Embeddings: Sentence-Transformers
- LLM Client: Ollama
- Interface: Rich & Tqdm
- Web Scraping: Requests & BeautifulSoup4
PyRequests-RAG-Agent/
│
├── src/
│ ├── embedding.py # Geração de vetores (Embeddings)
│ ├── ingestion.py # Crawler e processamento de HTML
│ ├── llm_service.py # Integração com Ollama (Traceable)
│ ├── rag_agent.py # Orquestrador do fluxo (Traceable)
│ └── vector_db.py # Gerenciamento do Milvus (Traceable)
│
├── rtdocs/ # Cache da documentação baixada
├── .env # Variáveis de ambiente (API Keys)
├── config.py # Configurações globais
├── main.py # Ponto de entrada (CLI)
└── requirements.txt # Dependências- Python 3.10+.
- Conta no Zilliz Cloud.
- Instância do Ollama.
- Conta no LangSmith (Opcional, para logs).
git clone https://github.com/vianaxx/PyRequests-RAG-Agent.git
cd PyRequests-RAG-Agent
python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux/Mac
source .venv/bin/activate
pip install -r requirements.txtCrie um arquivo .env na raiz com suas credenciais:
# LLM
OLLAMA_API_KEY=sua-chave-ollama
# Milvus (Banco Vetorial)
MILVUS_URI=https://... (Sua URI do Zilliz Cloud)
MILVUS_TOKEN=seu-token-milvus
# LangSmith (Observabilidade)
LANGSMITH_TRACING=true
LANGSMITH_ENDPOINT=https://api.smith.langchain.com
LANGSMITH_API_KEY=sua-chave-langsmith
LANGSMITH_PROJECT=Requests-RAG-AgentDica: Você pode copiar o arquivo de exemplo:
cp .env.example .env
python main.py┌────────────────────────────────────────┐
│ 🤖 Requests RAG Agent │
│ Assistente de Documentação Inteligente │
└────────────────────────────────────────┘
Você: Como faço para configurar um timeout?
🤖 Agente:
Para configurar um timeout...
[Código colorido aqui]
╭────── Metadados ──────╮
│ Confiança: 0.74 │
│ Fontes: auth.html │
╰───────────────────────╯
Sinta-se à vontade para abrir Issues ou enviar Pull Requests.
Este projeto está sob a licença MIT.