Skip to content

henriqueribeiro-code/FinBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FinBot - Seu Assistente Financeiro Pessoal

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.

Funcionalidades

  • Chat Inteligente: Converse com o assistente financeiro (alimentado pelo modelo gpt-4o-mini via 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.

Arquitetura e Tecnologias

  • 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.

📂 Estrutura do Projeto

├── 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)

1. 📋 Pré-requisitos

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 uma OPENROUTER_API_KEY.

About

FinBot is a financial assistant that uses AI to help with financial predictability throughout the month and year.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages