Porque foi feita essa alteração? - Correção: o nome da branch estava incorreto no arquivo de configuração Quais testes foram feitos? - Verificação visual do arquivo A alteração gerou um novo teste que precisa ser implementado no pipeline? - Não |
||
|---|---|---|
| .gemini | ||
| docs | ||
| src | ||
| tests | ||
| .env.example | ||
| .gitignore | ||
| Dockerfile | ||
| README.md | ||
| docker-compose.yml | ||
| package-lock.json | ||
| pytest.ini | ||
| requirements.txt | ||
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:
- FastAPI (Python 3.12): Exposição da API REST de alta performance.
- Qdrant (Vector DB): Busca de transações similares ("few-shot learning" dinâmico).
- 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:
-
Suba apenas as dependências (Qdrant):
docker-compose up qdrant -d -
Instale as libs:
pip install -r requirements.txt -
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)
- Input: Recebe JSON da transação (
descricao,valorignorado,tipo). - Retrieval: Busca 5 exemplos similares no Qdrant.
- Inference: Llama 3.2 analisa a transação atual + exemplos.
- Validation: PydanticAI garante que a categoria retornada existe.
- Feedback: Transações validadas alimentam o treino futuro.