69 lines
4.1 KiB
Markdown
69 lines
4.1 KiB
Markdown
# PRD - Product Requirements Document
|
|
## Agente de IA para Classificação de Transações Bancárias
|
|
|
|
### 1. Visão Geral
|
|
Este documento define os requisitos para o desenvolvimento de um Agente de Inteligência Artificial especializado na classificação de transações bancárias. O sistema operará exclusivamente via API, consumindo dados já tratados e utilizando técnicas de RAG (Retrieval-Augmented Generation) para sugerir classificações com base em histórico prévio, priorizando eficiência em ambientes com restrição de hardware (CPU-only).
|
|
|
|
### 2. Objetivos do Produto
|
|
- **Classificação Inteligente:** Categorizar transações com base na descrição, utilizando similaridade (RAG) e inferência de modelo local.
|
|
- **Eficiência de Recurso:** Operar com baixo consumo de RAM e exclusivamente em CPU.
|
|
- **Desacoplamento:** Interação exclusiva via API, sem interface direta com usuário final.
|
|
- **Autonomia:** Processamento assíncrono sem bloqueio aguardando feedback humano imediato.
|
|
|
|
### 3. Escopo
|
|
#### 3.1 Incluso
|
|
- Integração via API para recebimento de dados de transações (já parseados).
|
|
- Busca de transações similares em base vetorial (RAG).
|
|
- Motor de inferência utilizando LLM Local (Llama 3).
|
|
- Cálculo de taxa de acerto e confiança.
|
|
- Mecanismo de feedback diferido (Human-in-the-loop passivo).
|
|
|
|
#### 3.2 Não Incluso
|
|
- Leitura ou parsing de arquivos (OFX, CSV, PDF, Excel).
|
|
- OCR ou extração de dados de imagens.
|
|
- Interface de usuário direta para o agente (o agente é um backend service).
|
|
- Bloqueio de execução por espera humana.
|
|
|
|
### 4. Funcionalidades Principais
|
|
|
|
#### 4.1 Interface de Entrada
|
|
- O agente não processa arquivos. Ele expõe endpoints ou consome filas onde recebe objetos JSON contendo os dados da transação (ID, Descrição, Valor, Data, metadados).
|
|
|
|
#### 4.2 Motor de Classificação (Core AI - RAG + LLM Local)
|
|
- **Estratégia:**
|
|
1. Recebe a descrição da transação.
|
|
2. Consulta banco vetorial para encontrar transações passadas similares já classificadas (pelo agente ou humanos).
|
|
3. LLM (Llama 3) analisa a descrição atual + exemplos recuperados (Contexto).
|
|
4. Define a Categoria e Subcategoria.
|
|
- **Resources:** Otimizado para rodar localmente limitando uso de RAM.
|
|
|
|
#### 4.3 Métricas e Feedback
|
|
- **Dashboard de Métricas:** Exposição de dados sobre taxa de acerto e confiança do modelo.
|
|
- **Feedback Loop:** O sistema deve permitir que uma aplicação externa envie a correção de uma classificação. Essa correção é salva no banco para refinar futuras buscas RAG.
|
|
|
|
### 5. Requisitos Não Funcionais
|
|
- **Hardware:** Execução exclusiva em CPU. Mínimo consumo de RAM plausível.
|
|
- **Privacidade:** Dados processados localmente. Sem envio para APIs externas (OpenAI/Anthropic).
|
|
- **Latência:** Foco em throughput, aceitável latência de inferência local desde que não trave a aplicação chamadora.
|
|
|
|
### 6. Stack Tecnológica Definida
|
|
- **Linguagem:** Python (Versão travada: 3.12.1).
|
|
- **Framework:** A definir (LangChain ou implementação customizada leve).
|
|
- **LLM:** Llama 3 (versão otimizada para CPU/Local, ex: GGUF/Ollama se aplicável).
|
|
- **Base de Dados:**
|
|
- **Relacional:** PostgreSQL (para dados estruturados, logs, ponteiros).
|
|
- **Vetorial:** Solução integrada ou leve para RAG, indexando descrições e classificações históricas.
|
|
|
|
### 7. Fluxo de Execução
|
|
1. **Trigger:** Aplicação externa envia transação via API para o Agente.
|
|
2. **Retrieval:** Agente busca no VectorDB as "Top-K" transações mais parecidas semanticamente com a atual.
|
|
3. **Inference:** Prompt montado com a Transação Atual + Exemplos Recuperados é enviado ao Llama 3 Local.
|
|
4. **Result:** Agente retorna a classificação sugerida + Score de Confiança.
|
|
5. **Human Review (Assíncrono):** Através da aplicação principal, o usuário valida.
|
|
6. **Learning:** Se houve correção, a aplicação notifica o Agente/Banco para atualizar o "Golden Record" usado no RAG.
|
|
|
|
### 8. Próximos Passos
|
|
- [ ] Definir a versão exata do Llama 3 e método de quantização para CPU.
|
|
- [ ] Modelar o schema do banco de dados (Tabela de Transações vs Tabela de Embeddings).
|
|
- [ ] Configurar ambiente Python 3.12 travado.
|