Porque foi feita essa alteração? - Nova funcionalidade: Sistema de aprendizado contínuo para o Arthur - RAGIngestionPipeline: Ingestão de documentação técnica com sanitização - FeedbackParser: Detecção de resolução/reabertura de tickets - EpisodicMemory: Armazenamento de lições aprendidas e antipadrões Quais testes foram feitos? - 130+ testes unitários com pytest (todos passando) - Testes de chunking e sanitização de documentos - Testes de detecção de feedback (sentimento, satisfação) - Testes de memória episódica (lessons, antipatterns) A alteração gerou um novo teste que precisa ser implementado no pipeline? - Sim. Novos: test_rag_pipeline.py, test_feedback_parser.py, test_episodic_memory.py |
||
|---|---|---|
| .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.