O FinBot é um assistente financeiro inteligente que ajuda você a gerenciar despesas, analisar cupons fiscais com visão computacional e visualizar seus gastos através de um dashboard interativo. Desenvolvido para o finalização do curso de capacitação IA generativa e visão computacional da Vertex.
- Chat Inteligente: Converse com o assistente financeiro (alimentado pelo modelo
gpt-4o-minivia OpenRouter) para registrar transações manuais, pedir relatórios ou consultar saldos. - Visão Computacional para Recibos: Faça o upload de imagens de cupons fiscais e o bot extrairá automaticamente o valor, o estabelecimento e a data utilizando o modelo
gpt-4o. - Dashboard e Relatórios: Acesse a aba "Dashboard" para visualizar um gráfico de barras das suas despesas por categoria e uma tabela com o histórico detalhado de transações.
- Memória de Contexto: O agente lembra das últimas interações da sua sessão para fornecer respostas mais fluidas e contextuais.
- Banco de Dados Local: Utiliza SQLite para armazenar as transações (receitas e despesas) e a memória do agente de forma leve e rápida.
- Backend: FastAPI para a construção da API REST (
/api/chat,/api/dashboard,/api/transactions). - Frontend: Gradio para a interface web amigável com abas (Chat e Dashboard).
- Agente de IA: Framework Agno integrado com a API da OpenAI/OpenRouter.
- Dados e ORM: SQLAlchemy e Pydantic para validação e persistência de dados.
- Análise de Dados: Pandas e Matplotlib para a geração dos gráficos e tabelas do dashboard.
├── src/
│ ├── backend.py # Define os endpoints da API (Chat, Dashboard, Transações)
│ ├── frontend.py # Interface do usuário construída com Gradio
│ ├── database.py # Configuração de conexão com o banco de dados SQLite
│ ├── models.py # Modelos Pydantic e SQLAlchemy
│ ├── agent/
│ │ ├── core.py # Configuração do agente Agno, comportamento e memória
│ │ └── tools.py # Ferramentas do agente (registrar, ver saldo, analisar imagens)
├── data/ # Diretório criado automaticamente para armazenar o finance.db
├── init_db.py # Script para inicializar e criar as tabelas no banco de dados
├── main.py # Script principal que inicia o Backend e o Frontend
├── requirements.txt # Lista de dependências do projeto
└── .env # Variáveis de ambiente (não versionado)
Antes de começar, você precisará ter as seguintes ferramentas e contas configuradas:
- Python 3.10+: A linguagem base do projeto (recomenda-se a versão 3.10 ou superior para garantir total compatibilidade com os frameworks utilizados).
- Git: Para clonar o repositório localmente na sua máquina.
- PIP (Gerenciador de pacotes): Normalmente já vem instalado junto com o Python, será usado para instalar as dependências.
- Chave de API (OpenRouter): O assistente utiliza o modelo
gpt-4o-mini. Você precisará criar uma conta gratuita no OpenRouter e gerar umaOPENROUTER_API_KEY.