Go to file
João Pedro Toledo Goncalves f69b990fa5 fix(audit): Apply critical audit fixes (Phase 6)
**Porque foi feita essa alteração?**
Resolução de múltiplos problemas críticos identificados na auditoria de código (Fase 6):
1.  **Correção Crítica de Dependência**: Criação de inancial_client.py para resolver ImportError e renomeação do mock antigo.
2.  **Busca Semântica**: Substituição de mock embeddings (SHA256) por implementação real usando OllamaClient no RAG e Memória Episódica.
3.  **Segurança e Compliance**: Implementação de persistência de AuditLog no PostgreSQL via TicketPipeline.
4.  **Segurança**: Refatoração de Config e DatabaseManager para uso compulsório de SecretsManager.
5.  **Performance**: Otimização de consultas N+1 no ZabbixConnector.
6.  **Limpeza**: Remoção de domínios hardcoded em alidators.py.

**Quais testes foram feitos?**
- Execução do script src.deployment.homologation para validar integridade dos módulos (passou sem erros de importação).
- Verificação estática das chamadas de método corrigidas.

**A alteração gerou um novo teste que precisa ser implementado no pipeline de testes?**
Sim. É necessário implementar testes de integração para garantir que:
1.  Os logs de auditoria estão sendo gravados no banco.
2.  Os embeddings estão sendo gerados corretamente pelo Ollama (não retornam lista vazia).
2026-02-01 13:06:26 -03:00
.gemini fix(audit): Apply critical audit fixes (Phase 6) 2026-02-01 13:06:26 -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(audit): Apply critical audit fixes (Phase 6) 2026-02-01 13:06:26 -03:00
tests feat: Fase 5 Completa - Implantação e Monitoramento 2026-02-01 12:37:00 -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.