Back to deblo
deblo

Observabilité : tracer chaque appel LLM en production

AILog trace chaque appel LLM. SystemSetting permet la configuration sans redéploiement. ExerciseResult mesure l'apprentissage. Le tableau de bord admin derrière la route masquée.

Juste A. Gnimavo (Thales) & Claude | March 26, 2026 3 min deblo
EN/ FR/ ES
debloobservabilitéailogadminmonitoringsuivi-coûts

On ne peut pas améliorer ce qu'on ne peut pas mesurer. C'est vrai pour tout produit logiciel, mais c'est particulièrement vrai pour les produits IA où le comportement principal -- ce que le modèle dit, combien de temps il prend, combien il coûte -- est fondamentalement non déterministe.

Nous journalisons tout. Chaque appel API LLM. Chaque invocation d'outil. Chaque mouvement de crédit. Chaque résultat d'exercice. Chaque action admin.

Le modèle AILog

Au centre de notre système d'observabilité se trouve la table AILog. Elle enregistre chaque appel API LLM via OpenRouter : model_used, has_images, input_tokens, output_tokens, response_time_ms et error.

Pour un seul message utilisateur qui déclenche 3 itérations d'outils (boucle agentique), nous créons 3 entrées AILog -- une par appel LLM. Cette granularité nous permet d'analyser le comportement par itération.

Le tableau de bord admin

Le tableau de bord admin à /admin-7f3a9c2d/ fournit une vue en temps réel de la santé de la plateforme : nouveaux utilisateurs et utilisateurs actifs, répartition élève/professionnel, conversations et messages totaux, revenus, répartition par classe et matière, sessions vocales. Le hash dans l'URL (7f3a9c2d) rend l'URL admin indevinable.

Configuration dynamique : SystemSetting

Un store clé-valeur simple avec des valeurs encodées en JSON qui nous permet de changer le comportement de la plateforme sans déployer de code :

  • root_prompt : le prompt système pour le mode élève
  • llm_model : le nom du modèle pour les conversations texte
  • credit_costs : les coûts en crédits par action
  • maintenance_mode : un booléen qui retourne une page de maintenance

ExerciseResult : analytique d'apprentissage

Pour une plateforme éducative, la métrique la plus importante n'est pas la latence ou le coût -- c'est si les élèves apprennent. Le modèle ExerciseResult suit les résultats individuels de quiz : matière, classe, difficulté, sujet et si la réponse était correcte.

Le CreditLedger comme piste d'audit

Chaque mouvement de crédit est journalisé dans le CreditLedger. Ce n'est pas juste du suivi financier -- c'est une piste d'audit complète de l'économie de la plateforme.

Suivi des coûts

La métrique d'observabilité la plus critique pour un produit IA est le coût. La table AILog nous permet de calculer les coûts exacts par modèle, par jour, et de repérer les anomalies immédiatement.

Nous n'utilisons pas d'outil de suivi de coûts dédié comme Helicone ou Langfuse. À notre échelle actuelle, la table AILog et de simples agrégations SQL nous donnent tout ce dont nous avons besoin.

Ce que nous surveillons quotidiennement

Chaque matin : nouveaux utilisateurs, conversations actives, revenus, coûts LLM, taux d'erreur et latence. L'observabilité pour les produits IA est fondamentalement différente de celle des logiciels traditionnels : le comportement est stochastique, donc il faut une journalisation plus granulaire et plus de revue humaine.

Nous avons construit cette observabilité dès le premier jour. La table AILog était l'un des premiers modèles créés, avant même d'avoir une interface de chat fonctionnelle. Parce que sans observabilité, construire avec des LLM signifie brûler de l'argent et dégrader la qualité sans même le savoir.


Ceci est l'article 20 de 20 dans la série « Comment nous avons construit Deblo.ai ». Merci de nous avoir suivis.

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Thales & Claude thales

Treize agents, quarante-trois minutes : la première session Workflow de Claude Fable 5, et ce qu'un script d'orchestration déterministe change aux builds multi-agents

Un prompt, treize agents, quarante-trois minutes : la première session de production avec Claude Fable 5 et l'outil Workflow de Claude Code a livré un site web de production complet de sept pages plus un endpoint backend de capture de leads, en un seul commit. Le carnet de bord : le script d'orchestration déterministe, le patron d'injection de contrat entre les phases, l'économie par agent du fan-out parallèle, et le suspense de la limite de session que le journal de reprise a transformé en non-événement.

23 min Jun 12, 2026
claude-fable-5claude-codeworkflow-toolmulti-agent +10
Thales & Claude casp

La porte a détecté sa propre dérive : une journée dans CASP avec Claude Fable 5

Nous avons confié au modèle Claude le plus autonome à ce jour les clés de CASP — le CLI open source qui garde les agents de code IA honnêtes face à git — avec l'autorité de rejeter notre propre roadmap. Il a rejeté cinq choses, trouvé deux vrais bugs dans le validateur en le dogfoodant, les a corrigés sous une porte à deux auditeurs, et a laissé casp check entièrement vert sur son propre dépôt pour la première fois. CASP 0.3.0 en est le résultat.

16 min Jun 10, 2026
caspzerosuiteworkflowai-cto +9
Thales & Claude zerosuite

La transplantation du CASP : comment la discipline des six fichiers est passée de Conductor à un ERP transport anti-fraude, ce que la compétence /next ajoute quand l'opérateur tape juste « next », et pourquoi le coût d'une dérive du CASP grimpe quand le projet, c'est l'argent des autres

La discipline du CASP qui a piloté trente-cinq sessions de Conductor est agnostique au produit. Le carnet de bord de sa transplantation sur KASSIA, un ERP transport anti-fraude pour un exploitant de flotte en Côte d'Ivoire : ce qui a migré, ce qui n'a pas migré (le validateur sur mesure — et ce que son absence coûte), ce que la compétence /next ajoute quand l'opérateur tape un seul mot, et là où le CASP s'arrête — le bug de déploiement qu'il ne pouvait pas voir parce qu'il enregistre l'intention, pas la réalité de l'infrastructure.

23 min Jun 8, 2026
kassiaerp-kassia-transport-logistiquezerosuiteCASP +15