Um agent inteligente local que:
- đ Consulta seus documentos (RAG)
- đ Chama APIs e endpoints
- đ Manipula arquivos
- đ Debugga e resolve problemas
- đ Itera automaticamente para açÔes complexas
# macOS
brew install ollama
# Ou faça download em: https://ollama.aiollama pull mistral
ollama pull nomic-embed-text # Para embeddingsollama serve
# Roda em http://localhost:11434pip install -r requirements.txtModo com query direta:
python main.py "Qual Ă© o status da API de usuĂĄrios?"Modo interativo:
python main.pyVocĂȘ: Como autenticar na API?
Agent: [consulta docs] â Responde com informaçÔes dos documentos
VocĂȘ: Busque os dados do usuĂĄrio ID 123 em https://api.example.com/users/123
Agent: [chama endpoint] â [processa JSON] â Exibe resultado
VocĂȘ: Recebi erro 401 ao chamar a API, o que fazer?
Agent: [busca docs] â [analisa erro] â Sugere soluçÔes
VocĂȘ: Faça uma requisição GET para https://api.example.com/data e salve o resultado em output.json
Agent: [chama API] â [valida JSON] â [salva arquivo] â Confirma
tale/
âââ requirements.txt # DependĂȘncias Python
âââ main.py # CLI principal
âââ agent.py # LĂłgica do agent
âââ rag.py # Processamento de documentos
âââ tools.py # Tools/Actions disponĂveis
âââ docs/ # Seus documentos (criar esta pasta)
â âââ api.md # Documentação de API
â âââ guide.pdf # Guias
â âââ ...
âââ vector_store/ # Ăndice FAISS (criado automaticamente)
- Crie uma pasta
./docs/ - Adicione seus arquivos (PDF, TXT, MD, DOCX)
- Execute o agent - ele carregarĂĄ automaticamente
mkdir -p docs
cp seu-documento.pdf docs/
python main.py "pergunta sobre seu documento"Abra tools.py e crie uma nova classe:
class MyTool:
@staticmethod
def my_action(param1: str) -> ToolResult:
"""Descrição da ação"""
try:
# Sua lĂłgica aqui
return ToolResult(success=True, data=resultado)
except Exception as e:
return ToolResult(success=False, data=None, error=str(e))Depois registre em TOOLS:
TOOLS = {
...
"mytool": MyTool,
}Use no agent:
<tool>{"tool": "mytool", "action": "my_action", "param1": "valor"}</tool>
agent = Agent(model_name="neural-chat") # ou "llama2", "orca", etc# Em rag.py, método chunk_documents()
agent.doc_processor.chunk_documents(
chunk_size=2000, # Tamanho dos chunks
chunk_overlap=400 # Sobreposição
)agent.max_iterations = 20 # PadrĂŁo: 10# Ollama nĂŁo estĂĄ rodando, execute:
ollama serve# Baixe o modelo:
ollama pull mistral
ollama pull nomic-embed-text# Verificar pasta docs/
ls -la docs/
# Se vazia, criar exemplos:
python main.py # Cria exemplos automaticamente- Reduza
chunk_sizeemrag.py - Use modelo mais leve:
ollama pull phi(2GB) - Reduza
kemsearch():k=2em vez dek=3
- â Tudo roda localmente
- â Nenhum dado Ă© enviado para cloud
- â Controle total sobre documentos
â ïž Proteja sua pastadocs/e.env(se usar)
- Integração com mais modelos locais
- Cache de embeddings
- Web UI com Streamlit
- Logging e auditoria
- Suporte a banco de dados (SQLite)
- Agentes especializados (finance, devops, etc)
Desenvolvido com â€ïž para automação local