Projet de laboratoire

Excubia — un produit de veille sur les IA, mis en production en trois semaines

Veille de réputation sur les modèles d'IA, projet interneFrance

Excubia — veille de réputation sur les modèles d'IA

En bref

Excubia interroge huit modèles d'intelligence artificielle sur ce qu'ils racontent d'une entreprise, fait analyser chaque réponse par un modèle juge, et publie un bulletin daté : score de réputation, citations à risque reproduites mot pour mot, part de voix face aux concurrents et plan d'action à cocher. Ce n'est pas une commande client : c'est le terrain sur lequel nous avons mis en production ce qu'un site vitrine ne demande jamais — des appels aux modèles qui tournent en tâche de fond, des analyses planifiées qui se déclenchent sans personne, un abonnement récurrent qui décide de droits d'accès, et des données personnelles à effacer sur demande. Contrairement à notre autre projet de laboratoire, celui-ci n'a pas été éteint après son audit de coûts : il tourne, il facture et il envoie ses bulletins.

Client
Excubia
Zone
France
Délai
Mis en production en 22 jours
Le contexte

Le problème à résoudre

Depuis deux ans, une part croissante des recherches ne passe plus par une page de résultats mais par une conversation avec un modèle. Nos clients commencent à poser la question, et elle est légitime : est-ce que ChatGPT parle de moi, et qu'est-ce qu'il en dit ? Personne ne peut y répondre de mémoire. Les modèles ne donnent pas deux fois la même réponse, ils ne se souviennent pas d'une conversation à l'autre, et ce qu'ils affirment d'une entreprise n'est vérifiable qu'en le leur demandant, souvent, et en gardant une trace. Construire l'outil qui mesure était donc la seule façon d'avoir un avis fondé. C'était aussi l'occasion de nous confronter à une catégorie de contraintes que nos projets clients ne présentent presque jamais : un produit facturé au mois doit tourner tout seul, dépendre d'API tierces payées à l'appel sans que la facture dérape, faire dépendre des droits d'accès d'un paiement récurrent, et savoir effacer un compte entièrement quand on le lui demande.

La réalisation

Ce que nous avons construit

Les décisions structurantes du projet Excubia.

Des questions générées à partir du métier, pas un formulaire à remplir

Le produit ne demande pas à l'utilisateur d'écrire ses questions : il lit le site de l'entreprise, en déduit l'activité, la zone d'intervention et les concurrents plausibles, puis génère le panel — de trente questions sur la formule d'entrée à trois cents sur la plus haute. Notoriété, avis, comparatifs, recommandations, mises en cause. C'est là que se joue la qualité du produit : un outil d'analyse ne vaut pas par le modèle qu'il interroge, mais par la pertinence de ce qu'il lui demande. Le même raisonnement s'applique à n'importe quel tableau de bord métier — la valeur est dans les questions, pas dans la technologie qui les pose.

Huit modèles interrogés, un modèle juge qui classe

ChatGPT, Claude, Gemini, Perplexity, Mistral, Grok, DeepSeek et Llama sont interrogés selon la formule souscrite, tous via un fournisseur unique pour n'avoir qu'une clé à gérer. Leurs réponses ne sont pas lues par un humain : un modèle juge les classe en présence, tonalité et risque, dans un format strict imposé par un schéma construit selon le métier de l'entreprise — un cabinet d'avocats et une clinique n'ont pas les mêmes critères. La réponse à analyser est encadrée par des délimiteurs explicites, avec instruction d'ignorer toute consigne qu'elle contiendrait : un texte produit par un tiers ne doit jamais pouvoir donner des ordres au système qui l'examine.

Le plafond des dix minutes, contourné par un travail qui se replanifie

Sur la formule la plus haute, une analyse représente près de cinq mille appels réseau — trois cents questions, huit modèles, plus le jugement de chaque réponse. Or une tâche de fond est arrêtée d'office au bout de dix minutes. Le moteur découpe donc le panel en lots dimensionnés selon le nombre de modèles actifs, les traite en parallèle dans une réserve de connexions bornée, et se replanifie lui-même tant qu'il reste des questions. Aucune analyse ne dépasse la limite, quel que soit le volume. Le motif se transpose tel quel à un import de catalogue, une synchronisation de stock ou un envoi massif chez un client.

Ce qu'un flou d'affichage ne protège pas

Les fonctionnalités réservées aux formules supérieures étaient masquées par un flou et un cadenas, comme on le voit partout. Sauf que le flou est une propriété d'affichage : la donnée, elle, partait quand même dans la page et se lisait en deux clics dans les outils du navigateur. La correction a consisté à la retirer côté serveur, sur toutes les requêtes qui renvoient un bulletin — et il a fallu une deuxième passe pour découvrir qu'un champ ajouté plus tard fuyait encore par les liens de partage public. C'est la leçon la plus directement réutilisable du projet : une fonctionnalité payante se protège là où la donnée est produite, jamais là où elle est affichée.

Mesurer ce qui a changé depuis la dernière fois

Un score isolé n'apprend rien. Chaque analyse est donc comparée à une photographie de la précédente : ce qui s'est amélioré, ce qui s'est dégradé, quel modèle a changé d'avis et sur quelle question. Ces photographies vivent dans une table séparée plutôt que sur le document du bulletin — sinon chaque affichage de la liste des bulletins aurait traîné derrière lui l'intégralité des comparaisons. Seul le résumé chiffré, régressions en tête, est attaché au bulletin. Un produit d'analyse ne vaut que par ce qu'il permet de comparer dans le temps, et le stockage doit être conçu pour ça dès le départ.

Le paiement décide des droits, la panne n'en décide pas

Deux garde-fous appris à la dure. Le premier : la formule d'un client est relue sur le prix effectivement facturé, pas sur l'étiquette posée au moment du premier paiement — sinon un client qui monte de formule depuis son espace de facturation continue d'être servi comme avant tout en payant davantage. Le second : une analyse interrompue par un déploiement restait bloquée indéfiniment, et le garde-fou anti-doublon empêchait alors d'en relancer une. Un contrôle horaire clôt désormais les analyses figées, et le démarrage se répare lui-même. Sur un produit qui tourne sans surveillance, ce n'est pas la panne qui coûte cher, c'est l'état bloqué qu'elle laisse derrière elle.

Le bulletin comme document, pas comme écran

Le bulletin existe en page consultable, en PDF à l'identité du client avec ses polices embarquées, en export tableur, et sous forme de lien de partage public que l'on peut révoquer. Il part par email dès qu'il est prêt, avec le PDF joint, et une alerte immédiate se déclenche si une information fausse apparaît ou si le score chute d'au moins dix points. Un livrable qui arrive dans la boîte mail est lu ; un écran sur lequel il faut penser à retourner ne l'est pas. C'est vrai d'un rapport de veille comme d'un tableau de bord de gestion.

Une machine à contenu qui refuse de publier du vide

Le produit se réfère lui-même : articles de fond, pages piliers à adresses propres, et pages générées par métier et par ville. Ces dernières passent par un contrôle qui refuse la publication tant que la donnée réelle manque — et à ce jour, aucune page ville n'est publiée, parce que les relevés qui les rendraient utiles n'existent pas encore. C'est volontaire. Une page générée sans matière est une page vide de plus, et les moteurs comme les lecteurs le sanctionnent. Le contenu programmatique ne vaut que s'il s'interdit à lui-même de publier quand il n'a rien à dire.

Le poste de coût n'était pas celui qu'on croyait

L'intuition dit que le coût d'un produit branché sur des IA, ce sont les appels aux modèles. C'est faux : ils comptent pour une fraction. Le poste dominant est l'API tierce qui observe ce que les moteurs citent réellement, et surtout la fréquence à laquelle on la déclenche. Un client qui relançait une analyse tous les jours coûtait davantage que son abonnement ne rapportait. La correction n'a pas été d'optimiser le code mais de retirer le bouton : les analyses suivent désormais la cadence de la formule, et le déclenchement manuel ne sert plus qu'à la toute première. La bonne question au cadrage n'est jamais « à quelle fréquence peut-on rafraîchir » mais « à quelle fréquence l'utilisateur voit-il la différence ».

Stack technique

Next.js 16React 19TypeScriptTailwind CSS 4Convex (région UE)ClerkStripeOpenRouterDataForSEOResendReact PDFVercel
En images

Le livrable

Quelques écrans de Excubia, dans l'ordre du parcours.

Carte de couverture d'Excubia : une entreprise et trois concurrents, notés modèle par modèle
Le cœur du bulletin : qui est cité, par quel modèle, et à quelle hauteur — l'entreprise sur la première ligne, ses concurrents en dessous. En regard, ce qui a bougé depuis l'édition précédente et les actions dont l'effet a été constaté.
Les trois formules d'abonnement d'Excubia et le nombre de modèles surveillés par palier
Trois formules qui se distinguent par la profondeur du panel et le nombre de modèles interrogés — quatre, six puis huit. Le palier détermine ce que l'abonné reçoit, et la donnée réservée est retirée côté serveur, pas seulement masquée à l'écran.
Article pilier d'Excubia sur la visibilité dans les IA, avec sommaire et réponse courte en tête
Le produit se réfère lui-même : articles piliers à adresses propres, réponse courte extractible en ouverture, sommaire ancré et mention explicite de l'assistance par IA. Le contenu est stocké en base et régénéré à la demande, pas figé au moment du build.
Le suivi

Depuis la livraison

Vingt-deux jours entre le premier commit et le dernier, dont onze de construction intensive. Voici les étapes qui comptent, y compris celles qui ont consisté à réparer une décision.

3 juillet 2026

Le socle et le moteur d'analyse

Landing, espace client, moteur d'interrogation des modèles et paiement. Tout passe par un fournisseur unique de modèles, sur une base de données réactive hébergée dans l'Union européenne.

4 juillet 2026

Le produit change de nom

Le nom initial entrait en collision avec un média et un autre outil du même secteur, tous deux installés dans les résultats de recherche. Renommer coûte une journée au premier jour, et bien davantage au premier client.

4 juillet 2026

Le bulletin devient un document

PDF à l'identité du client, export tableur, envoi par email, lien de partage révocable. Le produit cesse d'être un écran à consulter pour devenir un livrable qui arrive.

5 juillet 2026

Le modèle qui échouait en silence

L'identifiant d'un des modèles avait été retiré par le fournisseur. Comme un modèle défaillant est ignoré sans erreur — c'est ce qui rend le produit robuste — il avait purement disparu des bulletins sans que rien ne le signale. La tolérance aux pannes masque les pannes : il faut la doubler d'une alerte.

6 juillet 2026

Nom de domaine, mesure d'audience et structuration

Mise en ligne sur son domaine, mesure d'audience en mode consentement avec signaux publicitaires refusés par défaut, données structurées, plan du site et fichier d'instructions pour les robots d'IA.

8 juillet 2026

La machine à contenu

Blog de fond, pages piliers à adresses propres pour éviter qu'elles se concurrencent entre elles, et génération par métier et par ville sous contrôle anti-page-vide.

13 juillet 2026

Mise en service commerciale

Paiement réel activé, envoi d'emails opérationnel, espace d'administration, et analyses passées en automatique à la cadence de chaque formule après l'audit de coûts.

25 juillet 2026

Un plan du site qui ne ment pas

Les dates de dernière modification ont été retirées des pages qui n'en ont pas de réelle. Une date recalculée à chaque régénération n'informe personne et décrédibilise toutes les autres.

FAQ

Questions fréquentes — Excubia

Parce que certaines compétences ne s'acquièrent qu'en production. Faire tourner des appels à des modèles d'IA en tâche de fond, encaisser un abonnement récurrent qui ouvre et ferme des droits, planifier des travaux qui s'exécutent sans personne, effacer un compte entièrement sur demande : rien de tout cela ne s'apprend sur une application de démonstration. Le faire sur un projet interne signifie que le client ne paie pas notre apprentissage. C'est aussi pourquoi Excubia ne figure pas parmi nos références commerciales : ce n'est pas une commande, et le présenter comme telle serait malhonnête.

Vingt-deux jours ici, dont onze de construction intensive, pour un produit complet : espace client, moteur d'analyse, paiement récurrent, envoi d'emails, exports PDF et tableur, pages publiques et espace d'administration. Mais un produit mis en production n'est pas un produit installé : il n'a ni historique d'exploitation, ni charge éprouvée, ni support organisé. Sur un projet client, ce sont ces trois points qui séparent une mise en ligne d'un service qu'on peut promettre — et c'est là que passe la différence de budget.

Oui, à condition d'accepter que les tâches de fond aient une durée maximale. La nôtre est de dix minutes, et une analyse complète demande bien davantage. La solution n'est pas d'augmenter la limite mais de concevoir le traitement pour qu'il se découpe : le travail traite un lot, enregistre son avancement, puis se replanifie lui-même là où il s'était arrêté. Le résultat tient sans aucun serveur à maintenir, et le même motif sert pour un import de catalogue ou une synchronisation nocturne chez un client.

En retirant la donnée côté serveur, jamais en la masquant à l'affichage. Un module flouté avec un cadenas reste parfaitement lisible dans les outils du navigateur : la donnée a déjà été envoyée. Sur Excubia, les éléments réservés aux formules supérieures sont retirés de la réponse elle-même, sur toutes les voies d'accès — y compris les liens de partage public, qui sont exactement le genre de porte dérobée qu'on oublie. Les formules inférieures voient un exemple fictif, explicitement annoncé comme tel.

Moins que ce qu'on imagine du côté des modèles, beaucoup plus du côté des services d'observation tiers et de la fréquence des travaux planifiés. Sur Excubia, l'API qui relève ce que les moteurs citent réellement pèse plusieurs fois le coût de tous les appels aux modèles réunis, et un déclenchement manuel quotidien suffisait à rendre un abonnement déficitaire. L'arbitrage se tranche au cadrage, pas sur la facture : on décide de la fréquence en fonction de ce que l'utilisateur perçoit réellement, et le coût suit.

Portfolio

D'autres projets livrés

Un projet du même ordre ?

Premier rendez-vous gratuit et sans engagement, devis sous 24 heures.BecauseTimeCounts intervient partout en France.