Insight Generator

Un analyste IA pour les feuilles de calcul des équipes finance

Insight Generator est une application web qui transforme les fichiers Excel et CSV, le quotidien des équipes finance, en données propres, en tableaux croisés dynamiques façon Excel, en graphiques et en analyses rédigées. Les analystes importent un classeur, le nettoient et le restructurent, construisent des pivots et posent leurs questions à un assistant en langage courant. Chaque chiffre d’une réponse vient d’une requête réellement exécutée sur leurs données.

Contexte
Natixis, Groupe BPCE. Paris, 2026
Rôle
Data Scientist, GenAI
Utilisateurs
Équipes finance et reporting
Interface
Français et anglais
Stack
Python 3.13, FastAPI, pandas, DuckDB, ChromaDB, SQLAlchemy, JavaScript vanilla

L’exemple déroulé repose sur des données synthétiques.

Pourquoi le construire

Dans une équipe finance, la clôture mensuelle repose encore sur des feuilles de calcul. Les fichiers arrivent de systèmes différents, avec des formats de nombres français et anglais, des périodes écrites de cinq façons, des erreurs Excel et des lignes de total mêlées aux données. Les analystes les nettoient à la main, reconstruisent les mêmes tableaux croisés chaque mois, puis réécrivent le commentaire dans Word, PowerPoint ou un e-mail.

Un chatbot généraliste ne règle pas le problème : on ne peut pas lui faire confiance sur les chiffres. Insight Generator confie au modèle de langage la planification et l’explication, et laisse chaque calcul à un moteur de base de données.

Les deux tours de verre inclinées des Tours Duo à Paris, la plus haute portant l’enseigne Groupe BPCE, au-dessus des voies ferrées.
Tours Duo, Paris 13e, siège de Natixis et du Groupe BPCE.

Comment ça marche

Chaque fichier est lu, normalisé, contrôlé et versionné avant toute analyse. Suivez un export de bout en bout.

Un classeur, de l’import à une table propre
Classeur .xlsx, .xls, .csv… Sonder le contenu pas l’extension Message clair mot de passe requis Lire la feuille saute les préambules Normaliser montants, dates, codes Rapport qualité #N/A, totaux, doublons Version 1 changements versionnés Classeur .xlsx, .xls, .csv… Sonder le contenu pas l’extension Message clair mot de passe requis Lire la feuille saute les préambules Normaliser montants, dates, codes Rapport qualité #N/A, totaux, doublons Version 1 changements versionnés
  • Entrée ou sortie
  • Code
  • Stockage
  • Contrôle
  1. Classeur Un export de clôture mensuelle enregistré en .xls, qui est en réalité un tableau HTML.
  2. Sonder le contenu Ce sont les octets qui choisissent le lecteur : vrai Excel, tableau HTML, SpreadsheetML 2003, CSV ou JSON.
  3. Lire la feuille Choisit la feuille, saute le préambule de rapport au-dessus de l’en-tête, signale les feuilles masquées et les feuilles graphiques.
  4. Normaliser « 1 234,56 € » devient 1234.56, « T1 2025 » devient 2025-Q1, et le code de compte « 0100 » reste du texte.
  5. Rapport qualité Signale les #N/A et #REF!, les devises mélangées et les lignes qui ressemblent à des totaux, et confronte la ligne Total du fichier à la somme recalculée.
  6. Version 1 Enregistré comme version 1. Ensuite, chaque filtre, renommage ou colonne calculée crée une nouvelle version, annulable et auditable.

L’assistant calcule, il ne devine pas

L’assistant est un agent qui travaille sur toutes les tables d’une session. Il ne répond pas de mémoire : il écrit du SQL, l’exécute sur DuckDB, construit des pivots et trace des graphiques, y compris des graphiques en cascade (bridge), puis explique ce que montrent les résultats.

Des macros SQL propres à la finance (fiscal_year, fiscal_quarter et fiscal_period, avec un début d’exercice configurable) ramènent les cumuls depuis le début de l’exercice et les comparaisons avec N-1 à une seule ligne de SQL. Les questions suggérées s’adaptent aux données : budget contre réalisé, écarts, bridges.

Une question, de l’analyste à la réponse
Analyste pose une question Base documentaire modèles, exemples Agent planifie, puis explique Outils SQL, pivots, graphiques Réponse chiffres, graphique Tables de session DuckDB, versionnées Analyste pose une question Base documentaire modèles, exemples Agent planifie, puis explique Outils SQL, pivots, graphiques Réponse chiffres, graphique Tables de session DuckDB, versionnées
  • Entrée ou sortie
  • Appel LLM
  • Code
  • Stockage
  1. Analyste « Comment le chiffre d’affaires du T1 2025 se compare-t-il au budget, par région ? »
  2. Agent Décide que les chiffres doivent venir d’une requête, pas de sa mémoire, et écrit le SQL avec les macros fiscal_year() et fiscal_quarter().
  3. Outils run_sql s’exécute sur DuckDB, sur les tables de la session : quatre lignes, réalisé contre budget, par région.
  4. Agent Lit le résultat et demande un graphique en cascade.
  5. Outils waterfall_chart trace le budget, les quatre écarts régionaux et le réalisé, à partir de ces mêmes lignes.
  6. Agent Rédige le commentaire à partir des chiffres qu’on lui a remis, rien d’autre.
  7. Réponse 13,34 M€ pour un budget de 13,75 M€, soit 411 k€ (3,0 %) de moins ; le Sud et l’Ouest expliquent l’essentiel de l’écart. Un clic l’exporte vers Excel, Word ou PowerPoint.

La même question, vue par la trace de l’agent, avec le SQL qu’il a écrit et le graphique qu’il a tracé :

  1. Question

    Comment le chiffre d’affaires du T1 2025 se compare-t-il au budget, par région ?

  2. Appel d’outil run_sql

    SELECT region,
           SUM(revenue)               AS actual,
           SUM(budget)                AS budget,
           SUM(revenue) - SUM(budget) AS variance
    FROM   sales
    WHERE  fiscal_year(order_date) = 2025
      AND  fiscal_quarter(order_date) = 1
    GROUP  BY region
    ORDER  BY variance;
  3. Résultat, en milliers d’euros

    region actual budget variance
    Sud 3 128 3 396 −268
    Ouest 2 890 3 011 −121
    Est 3 102 3 180 −78
    Nord 4 216 4 160 +56
    Total 13 336 13 747 −411
  4. Appel d’outil waterfall_chart

    Chiffre d’affaires T1 2025, du budget au réalisé par région (données synthétiques) Cascade d’un budget de 13 747 à un réalisé de 13 336 milliers d’euros : Sud −268, Ouest −121, Est −78, Nord +56. 13 747 Budget −268 Sud −121 Ouest −78 Est +56 Nord 13 336 Réalisé Milliers d’euros, l’axe commence à 13 200

    Sélectionnez une barre pour lire sa ligne.

    Chiffre d’affaires T1 2025, du budget au réalisé par région (données synthétiques) Cascade d’un budget de 13 747 à un réalisé de 13 336 milliers d’euros : Sud −268, Ouest −121, Est −78, Nord +56. 13 747 Budget −268 Sud −121 Ouest −78 Est +56 Nord 13 336 Réalisé Milliers d’euros, l’axe commence à 13 200

    Sélectionnez une barre pour lire sa ligne.

  5. Réponse

    Le chiffre d’affaires du T1 2025 s’établit à 13,34 M€ pour un budget de 13,75 M€, soit 411 k€ (3,0 %) de moins. Le Sud (−268 k€) et l’Ouest (−121 k€) expliquent l’essentiel de l’écart ; l’Est est en retrait de 78 k€ et le Nord termine 56 k€ au-dessus.

Une exécution illustrative sur données synthétiques : une question, deux appels d’outils, un graphique et une réponse dont tous les chiffres viennent du résultat de la requête.

Le contexte apporté par les documents

Les utilisateurs peuvent ajouter des documents à une base documentaire privée : Word, PowerPoint, PDF (mise en page conservée), feuilles de calcul, pages HTML et e-mails (.eml et .msg d’Outlook). Ils sont indexés dans ChromaDB, puis retrouvés par l’assistant et par l’onglet d’analyse (RAG). Chaque document appartient à son propriétaire. Un document peut aussi recevoir l’un de ces trois types :

Modèle
Les règles et les champs à remplir d’un rapport. Demandez « fais le rapport selon le modèle » et l’assistant s’y conforme. Les exports Word et PowerPoint reprennent l’apparence du modèle, et les modèles de reporting Excel sont remplis cellule par cellule.
Exemple
Un ancien livrable (e-mail, PDF ou Word) à imiter. Les chiffres des exemples sont masqués avant que l’agent ne les lise, et tout ancien chiffre qui se retrouve dans une réponse est signalé.
Référentiel
Une table de correspondance, par exemple un plan de comptes ou des taux de change, que l’agent peut joindre en SQL.

Choix d’ingénierie

  • Le contenu choisit le parseur

    On inspecte le contenu des fichiers au lieu de se fier à leur extension : les exports du monde réel se chargent au lieu d’échouer.

  • Les chiffres viennent des requêtes

    Le modèle planifie et explique ; DuckDB et pandas calculent. Un chiffre dans une réponse peut toujours être rattaché à une requête.

  • Sous-totaux exacts

    Les sous-totaux sont recalculés à partir des lignes brutes, jamais additionnés depuis leurs enfants : les mesures non additives restent justes.

  • Chaque modification est une version

    L’annulation, la piste d’audit et le rejeu de clôture mensuelle reposent tous sur le même historique versionné.

  • Indépendant du modèle

    Fonctionne sur la plateforme d’IA générative interne de la banque ou sur n’importe quel endpoint compatible OpenAI, modèles locaux compris. Les fonctions LLM peuvent aussi être entièrement désactivées.

  • Sécurisé par défaut

    Authentification unique (OpenID Connect), rôles utilisateurs, journaux d’audit, gestion des prompts et documents réservés à leur propriétaire. Les raccourcis de développement sont refusés en production.

  • Testé comme un produit

    Les suites pytest (tests unitaires, d’intégration et de non-régression) tournent contre des doublures du SDK LLM et du stockage documentaire, avec une base temporaire par test. Des tests Node couvrent les traductions, les graphiques et la mise en page des pivots, et un classeur d’exemple est livré avec des questions de test et leurs réponses attendues.

Technologies

Backend
Python 3.13, FastAPI, pandas, DuckDB, SQLAlchemy (SQLite)
IA
agent LLM avec appel d’outils, RAG sur ChromaDB, embeddings Hugging Face locaux en option
Frontend
HTML, CSS et modules ES natifs servis par le backend, aucune étape de build, PivotTable.js
Exports
XLSX, CSV, DOCX, PDF, PPTX, EML
Qualité
pytest, node:test, questions de référence avec réponses attendues

Autres travaux GenAI chez BPCE & Natixis

  • Steering ALM Metrics

    Plateforme qui automatise le suivi et le reporting de la liquidité (LCR) à l’échelle du Groupe BPCE, construite et déployée avec les équipes Trésorerie, ALM et IT pour analyser de grands volumes de données de bilan et expliquer chaque variation. Un agent IA fondé sur un LLM répond aux questions des analystes en langage courant et creuse dans les données.

  • AAR (Accounting Analytical Review)

    Application qui fluidifie les revues trimestrielles des comptes sociaux et consolidés pour environ 200 entités de Natixis. Elle rédige un premier jet des analyses de variations significatives des comptes et des sections du rapport au Comité d’audit, que les réviseurs corrigent et valident. Utilisée par les équipes Contrôles permanents et Consolidation pour réduire le travail manuel et standardiser un processus sur lequel s’appuient les décisions de gestion et les audits.

  • Chatbot de politique T&E (APAC)

    Chatbot d’IA générative (LLM, RAG) pour la politique de déplacements et de frais de représentation (T&E) de la zone APAC. Il automatise les réponses aux questions des collaborateurs, en s’appuyant sur les règles officielles avec des liens vers les sources. Les administrateurs ajoutent des documents, définissent des règles sur mesure et consultent les retours depuis un dashboard dédié.

Voir tout mon parcours

Vous construisez quelque chose de similaire ?

J’échange volontiers sur les agents branchés sur des tableurs, le RAG pour les documents financiers, ou la façon de garder un LLM honnête avec les chiffres.