Skip to content

vianaxx/PyRequests-RAG-Agent

Repository files navigation

🤖 PyRequests RAG Agent

Python Milvus Ollama Rich LangSmith

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.

✨ Funcionalidades

  • 🕷️ Crawler Integrado: Sistema de ingestão próprio (Python puro) que baixa a documentação oficial recursivamente.
  • 🧠 Busca Semântica: Utiliza Sentence-Transformers para 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).

🛠️ Tecnologias Utilizadas

  • 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

📂 Estrutura do Projeto

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

🚀 Como Executar

1. Pré-requisitos

2. Instalação

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.txt

3. Configuração (.env)

Crie 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-Agent

Dica: Você pode copiar o arquivo de exemplo: cp .env.example .env

4. Executando o Agente

python main.py

📸 Exemplo de Uso

┌────────────────────────────────────────┐
│ 🤖 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 │
          ╰───────────────────────╯

🤝 Contribuição

Sinta-se à vontade para abrir Issues ou enviar Pull Requests.

📄 Licença

Este projeto está sob a licença MIT.

About

Um Agente de Inteligência Artificial baseado em RAG (Retrieval-Augmented Generation) projetado para responder perguntas técnicas sobre a biblioteca Python requests.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages