
### Le cauchemar quotidien qui vous empêche de dormir
Chaque fin de mois, vous vous retrouvez face à un tableau Excel qui ressemble à un champ de mines : des colonnes qui débordent, des formules qui se contredisent, des dépenses que vous ne retrouvez nulle part. Vous avez beau télécharger des applis de finances personnelles, elles vous demandent toujours de saisir manuellement chaque transaction, de catégoriser à la main, puis de faire des rapports qui ne parlent à personne. Le résultat ? Vous perdez plus de temps à gérer votre budget qu’à travailler, à profiter de vos loisirs ou à investir.
Le vrai problème n’est pas le manque d’outils, c’est le manque d’automatisation intelligente. Vous avez besoin d’un système qui comprend le contexte de chaque dépense, qui s’adapte à vos habitudes et qui vous propose des actions concrètes sans que vous ayez à cliquer sur « Ajouter une ligne ». C’est là que la plupart des solutions traditionnelles se plantent : elles sont statiques, elles ne savent pas lire vos mails, vos messages Slack ou vos factures PDF, et elles ne peuvent pas anticiper vos besoins.
### La solution secrète : BudgetGPT, l’assistant IA qui parle votre langue financière
Imaginez un assistant qui, dès que vous recevez un mail de facture ou que votre compte bancaire vous envoie un relevé, analyse le texte, extrait le montant, la catégorie et le contexte, puis l’intègre automatiquement dans votre tableau de bord budgétaire. Ce n’est pas de la magie, c’est du **prompt engineering** couplé à l’API d’OpenAI, le tout hébergé dans un workspace Notion ou un tableau Airtable.
**BudgetGPT** (nom de travail, vous pouvez le renommer) est un petit script Python qui :
1. **Scrape** vos e‑mails (via IMAP) ou vos notifications bancaires (via API).
2. **Analyse** chaque texte avec GPT‑4, en lui demandant de déterminer la catégorie (loyer, courses, transport, loisirs…) et le caractère récurrent ou ponctuel.
3. **Envoie** le résultat vers une base de données NoSQL (Baserow, Notion ou même Google Sheets) via leurs API respectives.
4. **Déclenche** des alertes intelligentes : « Votre abonnement Netflix dépasse votre budget mensuel », ou « Vous avez dépensé 30 % de votre budget loisirs en une semaine ».
Le plus fort, c’est que vous pouvez interroger le système en langage naturel : « Quel était mon total dépenses énergie ce trimestre ? » et GPT‑4 vous répond instantanément, en se basant sur les données déjà structurées.
### Implémentation en 5 minutes chrono : le guide pas à pas
> **Prérequis** : un compte OpenAI avec clé API, un compte Notion (ou Baserow), et un accès IMAP à votre boîte mail. Tout cela est gratuit à petite échelle.
#### Étape 1 – Créez votre base de données budgétaire
– Ouvrez Notion, créez une nouvelle page et choisissez « Table – Full‑page ».
– Ajoutez les colonnes suivantes : `Date`, `Montant (€)`, `Catégorie`, `Description`, `Source`.
– Copiez l’URL de la page, vous en aurez besoin pour l’API.
#### Étape 2 – Installez les dépendances Python
Ouvrez votre terminal et tapez :
pip install openai imapclient python-dotenv notion-client#### Étape 3 – Configurez vos variables d’environnement
Dans le même dossier, créez un fichier `.env` :
OPENAI_API_KEY=sk-XXXXXXXXXXXXXXXXXXXX
IMAP_HOST=imap.gmail.com
IMAP_USER=votre.email@gmail.com
IMAP_PASS=votre_mdp_app
NOTION_TOKEN=secret_XXXXXXXXXXXXXXXXXXXX
NOTION_DATABASE_URL=https://www.notion.so/xxxxxxx> Astuce : utilisez un mot de passe d’application si vous êtes sur Gmail.
#### Étape 4 – Le script qui fait tout le travail
import os
import email
from imapclient import IMAPClient
import openai
from notion_client import Client
from dotenv import load_dotenv
load_dotenv()
# Initialisation
openai.api_key = os.getenv("OPENAI_API_KEY")
notion = Client(auth=os.getenv("NOTION_TOKEN"))
IMAP_HOST = os.getenv("IMAP_HOST")
IMAP_USER = os.getenv("IMAP_USER")
IMAP_PASS = os.getenv("IMAP_PASS")
DATABASE_URL = os.getenv("NOTION_DATABASE_URL")
def fetch_unseen_emails():
with IMAPClient(IMAP_HOST) as client:
client.login(IMAP_USER, IMAP_PASS)
client.select_folder('INBOX')
messages = client.search(['UNSEEN'])
for uid, message_data in client.fetch(messages, ['RFC822']).items():
msg = email.message_from_bytes(message_data[b'RFC822'])
yield msg
def extract_text(msg):
if msg.is_multipart():
for part in msg.walk():
if part.get_content_type() == 'text/plain':
return part.get_payload(decode=True).decode()
else:
return msg.get_payload(decode=True).decode()
return ""
def classify_expense(text):
prompt = f\"\"\"You are a financial assistant. Extract the following information from the email text:
- Amount (in euros, numeric)
- Category (e.g., rent, groceries, transport, subscription, entertainment, utilities)
- Description (short)
Return a JSON object with keys: amount, category, description.
Email text:
\"\"\"{text}\"\"\"
\"\"\"
response = openai.ChatCompletion.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}],
temperature=0
)
return eval(response.choices[0].message.content.strip())
def add_to_notion(entry):
notion.pages.create(
parent={"database_id": DATABASE_URL.split("/")[-1]},
properties={
"Date": {"date": {"start": entry["date"]}},
"Montant (€)": {"number": entry["amount"]},
"Catégorie": {"select": {"name": entry["category"]}},
"Description": {"rich_text": [{"text": {"content": entry["description"]}}]},
"Source": {"url": entry["source"]},
},
)
def main():
for msg in fetch_unseen_emails():
body = extract_text(msg)
if not body:
continue
data = classify_expense(body)
entry = {
"date": msg["Date"],
"amount": data["amount"],
"category": data["category"],
"description": data["description"],
"source": msg["From"]
}
add_to_notion(entry)
if __name__ == "__main__":
main()Ce script :
1. Récupère les e‑mails non lus.
2. En extrait le texte brut.
3. Pose la bonne question à GPT‑4 : « Quel est le montant ? Quelle catégorie ? ».
4. Crée une ligne dans votre tableau Notion.
#### Étape 5 – Automatisez le tout
– Sur votre ordinateur, créez une tâche cron (Linux/macOS) ou un planificateur Windows qui lance le script toutes les 15 minutes.
– Vous avez maintenant un flux continu qui alimente votre budget sans aucune saisie manuelle.
> **Bonus** : ajoutez une petite fonction qui, chaque dimanche, interroge Notion avec GPT‑4 pour générer un résumé « Points forts du mois », puis vous l’envoie par Slack ou par mail. Vous avez ainsi une revue budgétaire automatisée.
### Pourquoi ce hack dépasse les solutions classiques
– **Apprentissage continu** : chaque nouvelle dépense enrichit le prompt, GPT‑4 s’ajuste aux particularités de votre jargon (ex. « facture EDF », « ticket Uber »).
– **Multicanal** : pas seulement les e‑mails ; vous pouvez brancher l’API de votre banque, vos notifications Stripe, ou même vos messages WhatsApp.
– **Aucune saisie** : le temps passé à rentrer des lignes disparaît, vous libérant des heures chaque trimestre.
– **Visibilité instantanée** : Notion (ou Airtable) vous permet de créer des vues filtrées, des graphiques, et des alertes en temps réel.
En bref, vous avez transformé un processus fastidieux en un **assistant virtuel** qui travaille 24/7 pour vous.
### Les limites à connaître et comment les contourner
| Limite | Solution |
|——–|———-|
| **Coût de l’API OpenAI** (tokens) | Limitez les appels aux e‑mails uniquement, ou utilisez le modèle `gpt-4o-mini` qui est très économique. |
| **Confidentialité des données** | Stockez les e‑mails sur un serveur local, ne partagez jamais votre clé API, et utilisez le chiffrement du disque. |
| **Erreurs de classification** | Enrichissez le prompt avec des exemples spécifiques à votre situation ; vous pouvez même entraîner un petit modèle de classification avec `OpenAI Fine‑tuning` si besoin. |
| **Gestion des pièces jointes PDF** | Ajoutez une étape OCR (ex. `pytesseract`) avant le prompt pour extraire le texte des factures. |
### En pratique, que change ce hack dans votre quotidien ?
– Vous savez exactement où chaque euro a été dépensé, sans effort.
– Vous recevez des alertes proactives avant même que le dépassement ne se produise.
– Vous pouvez planifier vos économies ou vos investissements en vous basant sur des données fiables et à jour.
– Vous gagnez du temps, vous réduisez le stress, et vous avez enfin le contrôle total sur votre argent.
—
## 🛒 Le matériel recommandé
