Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Trouver la cause d’un incident d’IA

Après cette leçon: Je peux trouver ce qui a mal tourné à partir de la trace et des journaux.

Leçon de 60 min5 commandesLab agent de code IA : utiliser opencode pour expliquer et corriger du code, et vérifier son travail

Trouver la cause d’un incident d’IA

Un incident est un moment où une fonction coûte plus, ou répond moins bien, que ce que la note de cadrage permet. Vous en trouvez la cause dans les traces écrites : un journal des coûts pour savoir quand et combien, une trace pour savoir où.

L’assistant de la médiathèque est en ligne depuis une semaine. À midi, l’alerte de coût se déclenche. Personne n’a changé le modèle : qu’est-ce qui a changé ?

À la fin de cette leçon

Remarque

Je peux trouver ce qui a mal tourné à partir de la trace et des journaux.

Mots clés

MotCe que ça veut direExemple
Incidentun moment où la fonction rompt sa note de cadrage
Journal des coûtsun relevé de ce que chaque heure a coûté
Traceles étapes qu’une requête a traversées
Étapeun pas d’une trace, avec sa duréemodele
Tentativeun appel au modèle pour une requête

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Chaque trace répond à une question

Demandez-vous d’abord quelle trace peut répondre à ce que vous cherchez. Ne lisez pas tout.

Le journal des coûts dit quand et combien. Une trace dit où sont passés le temps et les appels dans une requête. La liste des événements, comme un déploiement, dit ce qui a changé.

Exemple : trois traces écrites

Trace écriteElle répond àElle ne dit pas
Journal des coûtsQuelles heures coûtent plusPourquoi elles coûtent plus
TraceCe qu’une requête a faitÀ quel point c’est courant
Liste d’événementsCe qui a changé, et quandSi cela a compté

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Quand, où, puis pourquoi

Cherchez d’abord quand : les heures qui dépassent la limite. Puis où : la trace d’une requête de ces heures. Enfin pourquoi : une cause qui explique les deux.

Testez la cause. Si elle est vraie, le journal doit montrer autre chose aussi. Une cause qui ne prédit rien est une supposition.

Une erreur fréquente

Attention

Beaucoup pensent qu’un pic de coût veut dire plus d’utilisateurs. Regardez aussi les requêtes. Si les requêtes restent stables et que les tentatives montent, chaque requête coûte plus. Le trafic n’a pas grandi.

Écrire le lecteur d’incident, partie 1

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const fs = require(\"fs\");' '// Requêtes et tentatives auprès du modèle par heure. Une tentative coûte 5. L’alerte est à 1500 l’heure.' 'const HEURES = [[\"08\", 120, 126], [\"09\", 150, 158], [\"10\", 140, 149], [\"11\", 160, 520], [\"12\", 155, 310], [\"13\", 150, 160], [\"14\", 145, 152]];' 'const LIMITE = 1500;' 'const journal = HEURES.map(function (h) {' '  return { heure: h[0], requetes: h[1], tentatives: h[2], cout: h[2] * 5 };' '});' 'fs.writeFileSync(\"journal-couts.json\", JSON.stringify(journal, null, 1));' > incident.js"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Écrire le lecteur d’incident, partie 2

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' '// Une requête, r481, une question sur les amendes, vue en étapes.' 'const TRACE = [' '  { etape: \"lire_fiche\", tentative: 0, ms: 4, longueur: 0 },' '  { etape: \"modele\", tentative: 1, ms: 900, longueur: 52 },' '  { etape: \"modele\", tentative: 2, ms: 880, longueur: 51 },' '  { etape: \"modele\", tentative: 3, ms: 910, longueur: 55 },' '  { etape: \"modele\", tentative: 4, ms: 890, longueur: 53 },' '  { etape: \"modele\", tentative: 5, ms: 905, longueur: 54 },' '  { etape: \"envoyer_derniere\", tentative: 5, ms: 1, longueur: 54 },' '];' 'fs.writeFileSync(\"trace-r481.json\", JSON.stringify(TRACE, null, 1));' >> incident.js"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Écrire le lecteur d’incident, partie 3

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'console.log(\"heure requêtes tentatives par-requête coût\");' 'for (const h of journal) {' '  const rapport = (h.tentatives / h.requetes).toFixed(2);' '  console.log(h.heure + \":00\", h.requetes, h.tentatives, rapport, h.cout, h.cout > LIMITE ? \"DÉPASSÉ\" : \"ok\");' '}' >> incident.js"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Écrire le lecteur d’incident, partie 4

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'for (const t of TRACE) {' '  console.log(t.etape, t.tentative, t.ms + \" ms\", \"longueur \" + t.longueur, t.longueur > 40 ? \"trop long\" : \"\");' '}' 'const essais = TRACE.filter(function (t) { return t.etape === \"modele\"; }).length;' 'console.log(\"Tentatives du modèle pour r481 :\", essais);' >> incident.js"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Lire le journal et la trace

Commande
docker exec -w /home/node/project agent node incident.js

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Ce que le Run affiche

PartieCe qu’elle montre
08:00 à 10:00Environ 1,05 tentative par requête, coût 630 à 790
11:003,25 tentatives par requête, coût 2600, DÉPASSÉ
12:002,00 tentatives par requête, coût 1550, DÉPASSÉ
13:00 et 14:00Retour à environ 1,05, coût sous 1500
Trace de r481Cinq étapes du modèle, chaque longueur au-delà de 40

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

À propos de ce labo et de sa source: Lab agent de code IA : utiliser opencode pour expliquer et corriger du code, et vérifier son travail

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.