← voltar ao portfólio

// estudo de caso · projeto pessoal

Controle Financeiro com IA

API que lê a nota fiscal pelo QR Code da NFC-e, organiza os gastos e usa um LLM para produzir um relatório mensal com análise e sugestões. Nasceu de uma coceira pessoal: saber pra onde o dinheiro vai sem digitar nada.

Papel: projeto pessoal, ponta a ponta Stack: Python · FastAPI · Firestore · Gemini Código: repo em revisão para abertura

O problema

Todo app de finanças pessoais morre no mesmo ponto: a digitação. Você usa por duas semanas, esquece de lançar três compras, os números param de bater, e aí não faz mais sentido continuar. O gargalo nunca foi a análise — foi a entrada de dados.

Só que toda nota fiscal de consumidor no Brasil já vem com um QR Code que aponta para os dados estruturados da compra. A informação existe. Só não estava sendo usada.

O que foi construído

Onde a IA ajuda de verdade — e onde não

Este projeto foi bom pra calibrar isso. O LLM é excelente pra transformar uma lista de transações numa leitura que faz sentido pra um humano: agrupar por padrão, notar o que fugiu do normal, escrever num tom útil.

O que ele não deve fazer é somar. Cálculo é determinístico e tem que ser código — não porque o modelo erre sempre, mas porque quando errar você não tem como saber. A divisão que eu adotei:

É a mesma lógica do Vibe Coding aplicada ao produto: a IA acelera a parte interpretativa, mas o número que aparece na tela sai de código auditável.

O que eu precisei saber para construir isso

FastAPI e tipagem em Python Schemas explícitos deixaram de ser burocracia e viraram a primeira linha de defesa contra dado malformado entrando no sistema.
modelagem NoSQL Firestore não é tabela. Modelar pensando em como o dado vai ser lido, e não em como ele se relaciona, exigiu desaprender o reflexo relacional.
prompt como parte do sistema O prompt do relatório é código: versionado, testado com entradas reais, e modificado com o mesmo cuidado de uma função. Prompt improvisado quebra em silêncio.
a fronteira determinístico × probabilístico Decidir explicitamente o que é cálculo e o que é interpretação. Foi a decisão de arquitetura mais importante do projeto.
gestão de segredo Chave de API não entra no repositório. Aprendi que isso vale para o histórico também — um commit antigo com credencial continua público para sempre, mesmo depois de removida do arquivo atual.

Próximo passo

Falar sobre IA aplicada