diff --git a/.gemini/PRD_Classificacao_Bancaria.md b/.gemini/PRD_Classificacao_Bancaria.md new file mode 100644 index 0000000..fa22ca8 --- /dev/null +++ b/.gemini/PRD_Classificacao_Bancaria.md @@ -0,0 +1,75 @@ +# 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 análise, categorização e classificação de transações bancárias. O objetivo é automatizar o processo de conciliação financeira, transformando dados brutos de extratos em informações organizadas e acionáveis. + +### 2. Objetivos do Produto +- **Automação:** Reduzir em 90% o trabalho manual de classificação de lançamentos financeiros. +- **Precisão:** Alcançar uma taxa de assertividade superior a 95% na categorização automática. +- **Inteligência:** Identificar padrões de recorrência e anomalias (possíveis fraudes ou erros). +- **Escalabilidade:** Capaz de processar milhares de transações em segundos. + +### 3. Escopo +#### 3.1 Incluso +- Leitura de extratos bancários em formatos padrão (OFX, CSV, Excel, PDF). +- Processamento de Linguagem Natural (NLP) para entender descrições de transações (ex: "IFOOD *BR" -> "Alimentação"). +- Aprendizado contínuo com feedback do usuário. +- Geração de relatórios categorizados. + +#### 3.2 Não Incluso (nesta fase) +- Integração direta via API bancária (Open Finance) - *Fase 2*. +- Execução de pagamentos ou transferências. +- Gestão de fluxo de caixa (Dashboard financeiro complexo). + +### 4. Funcionalidades Principais + +#### 4.1 Ingestão de Dados +O sistema deve aceitar arquivos de upload contendo extratos bancários. +- **Entrada:** Arquivos .csv, .xlsx, .ofx. +- **Processamento:** Normalização de datas, valores e descrições. + +#### 4.2 Motor de Classificação (Core AI) +O agente deve analisar a descrição da transação e atribuir uma: +1. **Categoria Principal** (ex: Despesas Administrativas). +2. **Sub-categoria** (ex: Material de Escritório). +3. **Tags** opcionais (ex: #reembolsavel, #projeto-alpha). + +Exemplos de mapeamento: +- `UBER DO BRASIL` -> Transporte +- `AWS EMEA` -> Infraestrutura / Cloud +- `PAGTO ELETRON COBRANCA` -> Tarifas Bancárias + +#### 4.3 Detecção de Padrões e Anomalias +- **Vencimentos Recorrentes:** Identificar pagamentos que se repetem mensalmente. +- **Anomalias:** Alertar sobre valores muito acima da média para um determinado fornecedor. + +#### 4.4 Interface de Correção (Human-in-the-loop) +O sistema deve apresentar as classificações com um "Score de Confiança". +- Baixa confiança (< 70%): Solicitar revisão manual. +- Alta confiança (> 90%): Aprovação automática (configurável). + +### 5. Requisitos Não Funcionais +- **Privacidade:** Dados sensíveis devem ser anonimizados antes de serem processados por LLMs externos, se aplicável. +- **Performance:** Tempo de resposta < 2 segundos por transação em lote. +- **Portabilidade:** Deve rodar localmente ou em container Docker. + +### 6. Stack Tecnológica Sugerida +- **Linguagem:** Python 3.10+ +- **Framework de Agentes:** CrewAI, LangChain ou Phidata. +- **LLM:** OpenAI GPT-4o, Anthropic Claude 3.5 Sonnet (para raciocínio complexo) ou modelos locais (Llama 3, Mistral) para privacidade. +- **Base de Dados:** PostgreSQL ou SQLite para armazenamento estruturado; ChromaDB ou Qdrant para busca semântica (RAG) de históricos de classificação. + +### 7. Fluxo de Execução (High-Level) +1. **Input:** Usuário envia `extrato.csv`. +2. **Parser:** Script converte para JSON padronizado. +3. **Agent:** + - Consulta base vetorial para ver se já classificou algo similar antes (Few-Shot Learning). + - Se não, usa LLM para inferir categoria baseada na descrição. +4. **Output:** JSON/CSV enriquecido com colunas `Categoria`, `Subcategoria` e `Confiança`. +5. **Feedback:** Usuário corrige/valida e o sistema salva o exemplo para futuro fine-tuning/RAG. + +### 8. Próximos Passos +- [ ] Definir a taxonomia padrão de categorias (Plano de Contas). +- [ ] Criar dataset de validação (Golden Dataset). +- [ ] Implementar MVP com script Python simples e chamada de API LLM.