Go to file
João Pedro Toledo Goncalves 3ad3161519 Fix critical bugs from Deep Dive Audit (Phase 2)
**Porque foi feita essa alteração?**
Resolução de bugs críticos identificados na Segunda Passagem de Auditoria (Deep Dive):
1. 'rag_pipeline.py': Correção de SyntaxError (await em função síncrona) convertendo pipeline de ingestão para async.
2. 'pipeline.py': Remoção de campos duplicados na instanciação de 'AuditLog' que causavam erro de sintaxe/lógica.
3. 'zabbix_connector.py': Correção de query N+1 em 'get_neighbor_alerts' e adição de import faltante 'time'.
4. 'test_rag_pipeline.py': Atualização dos testes para suportar async e mocking correto do 'OllamaClient'.

**Quais testes foram feitos?**
- 'py_compile': Verificação de sintaxe em todos os arquivos modificados.
- 'flake8': Verificação de linting (apenas warnings de whitespace ignorados).
- 'pytest':
    - 'tests/test_rag_pipeline.py': Passou (13 testes).
    - 'tests/test_pipeline.py': Passou (6 testes).
    - 'tests/test_zabbix.py': Passou (9 testes).

**A alteração gerou um novo teste que precisa ser implementado no pipeline de testes?**
Sim, os testes do 'rag_pipeline' foram modernizados para 'asyncio' e devem ser mantidos no CI.
2026-02-01 14:44:02 -03:00
.gemini Fix critical bugs from Deep Dive Audit (Phase 2) 2026-02-01 14:44:02 -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 Fix critical bugs from Deep Dive Audit (Phase 2) 2026-02-01 14:44:02 -03:00
tests Fix critical bugs from Deep Dive Audit (Phase 2) 2026-02-01 14:44:02 -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
docker-compose.yml feat: Implementação da Fase 1 - Arquitetura de Dados do Agente Arthur 2026-02-01 11:52:07 -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: Implementação da Fase 1 - Arquitetura de Dados do Agente Arthur 2026-02-01 11:52:07 -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.