- problema
- Escrever “mercado 120 no débito ontem” é o jeito natural de lançar uma despesa, e interpretar isso pede um modelo de linguagem. Mandar a frase para uma API externa significaria mandar o extrato de alguém junto.
- escolha
- O modelo roda na própria máquina, pelo Ollama, e nenhuma chamada sai para fora.
- porquê
- A privacidade do dado é a razão de o programa ser local. Uma chamada externa no lançamento anularia a decisão inteira, e ninguém notaria.
FinControl
Uso pessoalControle financeiro que roda na sua máquina. Banco local, lançamento em linguagem natural por modelo local, backup cifrado.
Do interpretador de texto ao instalador.
- Roda na sua máquina
- Banco local em SQLite
- Lançamento em linguagem natural
- Backup cifrado
Um comando abre o programa e o navegador. O banco é um arquivo na sua máquina, e o lançamento pode ser escrito como você falaria — interpretado por um modelo que roda ali mesmo, sem chamada externa.
O backup é cifrado antes de sair, e só sai quando você manda. Os outros sistemas desta página são hospedados; este é local de propósito. Quando o dado é o seu extrato bancário, o servidor de outra pessoa é o lugar errado.
Decisões
O problema que apareceu, a escolha feita e a consequência que a justifica.
- problema
- Backup em nuvem resolve perder a máquina e cria outro problema: o extrato passa a estar no servidor de alguém.
- escolha
- Módulos anuais cifrados com AES-256 na máquina, antes de subir, e snapshots locais rotativos como primeira linha.
- porquê
- O que chega ao Drive é ilegível sem a chave, que nunca sai daqui. Restaurar continua sendo um comando.
Ficha técnica
Python 3.12 · Flask · SQLAlchemy · SQLite · Vue 3 · Pinia · Tailwind CSS · Vite · Ollama · AES-256