Construire un torréfacteur financier IA que les gens veulent réellement utiliser
Laissez-moi vous montrer comment créer le conseiller financier le plus brutalement honnête que vous ayez jamais rencontré : une IA qui ne se soucie pas de vos sentiments.
J'aime construire des choses que les gens utilisent réellement. C'est pourquoi je voulais créer un projet de didacticiel qui enseignerait aux développeurs comment créer des applications d'IA que les gens aiment réellement utiliser. Car soyons honnêtes, la plupart des tutoriels d’IA sont des calculatrices et des chatbots ennuyeux.
Le projet ? Finance Roaster : les utilisateurs téléchargent leur relevé bancaire et se font torréfier par GPT-4 avec un humour sauvage et plein d'esprit.
Ce tutoriel vous apprendra :
Comment traiter les relevés bancaires CSV et PDF
Comment concevoir des invites d'IA pour l'humour et la personnalité
Comment créer une UI/UX partageable et digne d'un virus
Comment créer une application IA en moins de 100 lignes de Python
À la fin de ce guide, vous disposerez d'une application entièrement fonctionnelle que vous pourrez déployer ce week-end.
La psychologie : pourquoi ce concept de projet fonctionne
Avant de plonger dans le code, expliquons pourquoi cela constitue un si bon projet de didacticiel.
Les applications de budgétisation traditionnelles sont ennuyeuses. Ils vous montrent des diagrammes circulaires et vous disent de « réduire les dépenses discrétionnaires ». Pas vraiment digne d’être partagé.
Mais une IA qui dit : « 87 $ chez Foods Co pour du chou frisé biologique ? Votre portefeuille est aussi flétri que ce chou frisé le sera dans trois jours » ? C'est mémorable. C’est le genre de fonctionnalité qui donne envie aux gens de tester votre application.
Trois principes qui rendent ce projet intéressant :
L'humour rend les tâches ennuyeuses amusantes - Les gens évitent de vérifier leurs finances parce que c'est pénible. L’ajout d’humour change cette dynamique.
Hautement partageable : lorsque vous créez quelque chose d'amusant, les gens veulent naturellement le montrer à leurs amis. Cela vous apprend les mécanismes de la viralité.
Apprentissage pratique - Vous apprendrez le téléchargement de fichiers, l'ingénierie des invites d'IA et la création d'interfaces utilisateur claires, toutes des compétences transférables.
La pile technologique (parfaite pour l'apprentissage)
J'ai délibérément choisi une pile simple que les débutants peuvent comprendre tout en étant prête pour la production.
Ce que nous utiliserons :
Backend : Flask (Python) - 100 lignes de code
Moteur AI : GPT-4o-mini d'OpenAI (0,15 $ par million de jetons)
Traitement des fichiers : Pandas pour CSV, pdfplumber pour les relevés PDF
Frontend : page HTML unique avec Tailwind CSS
Coût par demande : ~0,01 $
Pourquoi cette pile est parfaite pour apprendre :
Aucune complexité de déploiement (fonctionne localement ou sur un seul serveur)
Temps de réponse inférieurs à 3 secondes
Vous apprend la gestion des fichiers, l'intégration de l'IA et la conception d'une interface utilisateur moderne
Facilement extensible (ajoutez des fonctionnalités à mesure que vous en apprenez davantage)
Partie 1 : Faire comprendre à l'IA l'argent (la partie facile)
Premier défi : Comment apprendre à une IA à rôtir les dépenses de quelqu'un ?
Étape 1 : Extraire les données de transaction
La plupart des banques exportent les relevés au format CSV ou PDF. Voici la logique d'extraction :
importer des pandas en tant que pd importer pdfplombier depuis openai importer OpenAI def process_csv(file): """Extraire le résumé des dépenses du relevé bancaire CSV""" df = pd.read_csv(file) # Trouver la colonne de montant (les banques utilisent des noms différents) montant_col = next( (col pour col dans df.columns le cas échéant (kw dans col.lower() pour kw dans ['montant', 'débit', 'spent'])), df.columns[-1] # Dernière colonne par défaut) # Convertir en numérique, gérer les symboles monétaires df[amount_col] = pd.to_numeric( df[amount_col].astype(str).str.replace('$', '').str.replace(',', ''), erreurs='coerce' ) # Calculer le résumé total_spent = df[montant_col].abs().sum() top_expenses = df.nlargest(5, montant_col) return { 'total_spent' : f"${total_spent:,.2f}", 'top_expenses' : top_expenses.to_dict('records') }La gestion des PDF est plus délicate car les banques formatent les relevés différemment. Solution? Utilisez pdfplumber pour l'extraction de texte, puis laissez GPT-4 l'analyser :
def extract_transactions_from_pdf(pdf_text): """Utiliser l'IA comme analyseur de secours pour les PDF complexes""" réponse = client.chat.completions.create( model="gpt-4o-mini", messages=[{ "role": "system", "content": "Extraire les transactions : Date | Description | Montant" }, { "role": "user", "content": pdf_text[:4000] # Limiter le...
[Courte citation de 8% de l'article original]