Go to file
João Pedro Toledo Goncalves 76271d7273 feat(telegram): Integração Telegram e otimizações para CPU
RESUMO:
Substituição do listener de Email (IMAP) por Bot do Telegram.
Correções de conectividade Ollama e timeout para inferência CPU.

ALTERAÇÕES:

1. NOVA INTEGRAÇÃO TELEGRAM:
   - Criado src/clients/telegram_client.py (TelegramListener)
   - Autenticação por ID de usuário (whitelist)
   - Comandos /start e processamento de mensagens de texto
   - Integração com Dispatcher para tickets via chat

2. CORREÇÕES OLLAMA:
   - OLLAMA_BASE_URL: localhost -> ollama (Docker network)
   - Timeout aumentado: 120s -> 300s (CPU inference lenta)
   - Contexto Specialist reduzido: 8192 -> 4096 tokens

3. HOMOLOGATION:
   - Substituído check de Email por check de Telegram
   - Usa httpx para validar token via /getMe

4. MOCK FINANCIAL CLIENT:
   - Adicionado get_tenant_by_email() method
   - Domínio 'telegram' adicionado ao tenant iT Guys

5. DATABASE CONNECTION:
   - URL-encode de credenciais no DSN (caracteres especiais)

PORQUE FOI FEITA ESSA ALTERAÇÃO?
- Email/IMAP: Problemas persistentes de autenticação com Exchange
- Telegram: Interface mais ágil para testes controlados
- Timeout: Modelo 8B em 4 cores CPU estourava 120s

QUAIS TESTES FORAM FEITOS?
- Homologação completa: 7/7 checks passando
- Teste direto OllamaClient.generate_triage(): OK
- Teste direto OllamaClient.generate_specialist(): OK
- Teste TriageAgent.process_ticket(): OK
- Teste via Telegram Bot: Mensagens recebidas e processadas

A ALTERAÇÃO GEROU NOVO TESTE?
Não. Scripts de debug criados em src/verification/ são auxiliares.
Pipeline existente (pytest) continua válido.
2026-02-02 15:22:10 -03:00
.gemini Fix regression tests and validate system stability (Phase 2 Audit) 2026-02-01 14:51:42 -03:00
docker feat: Fase 5 Completa - Implantação e Monitoramento 2026-02-01 12:37:00 -03:00
docs documentacao 2026-01-28 17:11:58 -03:00
src feat(telegram): Integração Telegram e otimizações para CPU 2026-02-02 15:22:10 -03:00
tests Fix regression tests and validate system stability (Phase 2 Audit) 2026-02-01 14:51:42 -03:00
.env.example feat: Implementação da Fase 1 - Arquitetura de Dados do Agente Arthur 2026-02-01 11:52:07 -03:00
.gitignore update .gitgnore 2026-01-08 22:48:00 -03:00
Dockerfile Commit changes from oxy worktree 2026-01-08 20:54:18 -03:00
README.md chore: cleanup repository for banking agent 2026-01-28 10:44:59 -03:00
agent_logs_tg.txt feat(telegram): Integração Telegram e otimizações para CPU 2026-02-02 15:22:10 -03:00
docker-compose.yml feat(telegram): Integração Telegram e otimizações para CPU 2026-02-02 15:22:10 -03:00
package-lock.json Commit changes from oxy worktree 2026-01-08 20:54:18 -03:00
pytest.ini feat: Implementação da Fase 1 - Arquitetura de Dados do Agente Arthur 2026-02-01 11:52:07 -03:00
requirements.txt feat(telegram): Integração Telegram e otimizações para CPU 2026-02-02 15:22:10 -03:00

README.md

Agente de Classificação Bancária (RAG + Llama 3.2)

Branch: iris-classificacao-bancaria

Este projeto implementa um Agente de IA especializado na classificação de transações bancárias via API. Ele utiliza uma arquitetura RAG (Retrieval-Augmented Generation) com modelos locais otimizados para execução em CPU.

🎯 Objetivo

Classificar transações financeiras (ex: Pix, TED, Boletos) em categorias contábeis padronizadas, utilizando descrições históricas e aprendizado por similaridade.

🏗 Arquitetura

O sistema é construído sobre três pilares principais:

  1. FastAPI (Python 3.12): Exposição da API REST de alta performance.
  2. Qdrant (Vector DB): Busca de transações similares ("few-shot learning" dinâmico).
  3. Llama 3.2 1B (GGUF): LLM Local quantizado (Q4_K_M) para inferência final.

Stack Tecnológica

  • Runtime: Python 3.12
  • IA Framework: PydanticAI (Validação e Orquestração)
  • Database: Qdrant (Vetorial)
  • Monitoramento: Logs Estruturados (Zabbix Ready)

🚀 Como Rodar

Pré-requisitos

  • Docker & Docker Compose
  • Python 3.12+ (Opcional, para rodar sem Docker)

1. Configuração

Copie o arquivo de exemplo e ajuste as variáveis (se necessário):

cp .env.example .env

2. Executando com Docker (Recomendado)

O comando abaixo sobe a API e o Banco Vetorial:

docker-compose up --build

A API estará disponível em: http://localhost:8000/docs

3. Executando Localmente (Dev)

Se preferir rodar o Python diretamente:

  1. Suba apenas as dependências (Qdrant):

    docker-compose up qdrant -d
    
  2. Instale as libs:

    pip install -r requirements.txt
    
  3. Rode a API:

    uvicorn src.main:app --reload
    

📁 Estrutura do Projeto

.
├── src/
│   ├── main.py           # Entrypoint da API
│   ├── config.py         # Configurações centralizadas
│   ├── core/             # Lógica do LLM e Vector Store
│   ├── models/           # Schemas Pydantic (Input/Output)
│   └── services/         # Regras de Negócio
├── docker-compose.yml    # Orquestração de Containers
├── requirements.txt      # Dependências Python
└── scripts/              # Utilitários de MLOps

🧠 pipeline RAG (Resumo)

  1. Input: Recebe JSON da transação (descricao, valor ignorado, tipo).
  2. Retrieval: Busca 5 exemplos similares no Qdrant.
  3. Inference: Llama 3.2 analisa a transação atual + exemplos.
  4. Validation: PydanticAI garante que a categoria retornada existe.
  5. Feedback: Transações validadas alimentam o treino futuro.