Cadrer une fonction d’IA
Une note de cadrage est le court document qui dit ce que la fonction doit faire et comment vous saurez qu’elle marche. Elle compte, car une fonction d’IA mal cadrée peut sembler finie et échouer devant les clients.
Dans ce module, la médiathèque inventée des Tilleuls demande un assistant d’aide. Son premier courriel dit : « Pouvez-vous faire un chatbot qui répond sur les horaires et les amendes ? Il doit être bien. »
À la fin de cette leçon
Remarque
Je peux transformer une demande en exigences et en moyen de savoir si cela marche.
Mots clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Note de cadrage | le court document qui dit quoi construire | |
| Exigence | une chose que la fonction doit faire ou respecter | |
| Limite | un chiffre que la fonction ne doit pas dépasser | 40 mots au plus |
| Mesure | un chiffre qui dit si les réponses sont bonnes | |
| Repli | ce que les gens reçoivent quand la fonction ne répond pas |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Une demande n’est pas une note de cadrage
Une demande dit ce que quelqu’un veut. Elle ne dit pas qui s’en sert, ce qu’elle ne doit jamais faire, ni quand elle est finie.
Pour la transformer, posez les questions qu’elle laisse ouvertes. Posez-les avant de construire, car chaque réponse change ce que vous construisez.
Exemple : la demande de la médiathèque
| La demande dit | La question laissée ouverte |
|---|---|
| Un chatbot | Qui demande, et sur quelle page ? |
| Horaires et amendes | Quelles autres questions viendront ? |
| Il doit être bien | Combien d’erreurs acceptons-nous ? |
| Rien sur la taille | Quelle longueur de réponse ? |
| Rien sur l’argent | Combien peut coûter un jour d’usage ? |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Une mesure du bien est un chiffre
« Bien » est une opinion. « 9 réponses sur 10 contiennent le bon chiffre » est une mesure : deux personnes peuvent la vérifier et s’accorder.
Une mesure demande des questions de test et une règle qui note chaque réponse. Vous les construisez à la leçon suivante. Pour l’instant, la note doit seulement dire quel sera le chiffre.
Limites, coût, confidentialité et repli
Quatre autres parties sont souvent oubliées. Une limite, comme 40 mots. Un plafond de coût pour un jour. Une règle de confidentialité qui dit ce qui n’est jamais gardé. Un repli pour le jour où le modèle ne répond pas.
Ajoutez un responsable, une personne qui décide quand les chiffres ne sont pas tenus.
Une erreur fréquente
Attention
Beaucoup pensent que le modèle rendra clair un cadrage flou. Ce n’est pas le cas. Si personne ne peut dire quelle réponse est fausse, personne ne peut dire quand la fonction marche. Écrivez le chiffre avant de construire.
Écrire le vérificateur de note, partie 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const fs = require(\"fs\");' '// La demande telle que la médiathèque l’a envoyée, découpée en parties.' 'const note = {' ' utilisateurs: \"Les adhérents qui posent des questions sur les horaires et les amendes\",' ' taches: \"Répondre aux questions à partir de la fiche des faits\",' ' limites: \"Les réponses doivent être courtes\",' ' mesure: \"Les réponses doivent être bonnes\",' ' cout: \"\",' '};' 'fs.writeFileSync(\"note.json\", JSON.stringify(note, null, 1));' > note.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 vérificateur de note, partie 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const REQUISES = [\"utilisateurs\", \"taches\", \"limites\", \"mesure\", \"cout\", \"confidentialite\", \"repli\", \"responsable\"];' 'const AVEC_CHIFFRE = [\"limites\", \"mesure\", \"cout\"];' 'const manquantes = [];' 'const floues = [];' 'for (const partie of REQUISES) {' ' const texte = (note[partie] || \"\").trim();' ' if (texte === \"\") manquantes.push(partie);' ' else if (AVEC_CHIFFRE.includes(partie) && /[0-9]/.test(texte) === false) floues.push(partie);' '}' 'console.log(\"Parties manquantes :\", manquantes.join(\", \"));' 'console.log(\"Parties sans chiffre :\", floues.join(\", \"));' 'console.log(manquantes.length + floues.length === 0 ? \"La note de cadrage est prête.\" : \"La note de cadrage n’est pas prête.\");' >> note.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.
Vérifier la note de la médiathèque
docker exec -w /home/node/project agent node note.jsAffiché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
| Ligne | Ce qu’elle dit |
|---|---|
| Parties manquantes | cout, confidentialite, repli, responsable |
| Parties sans chiffre | limites, mesure |
| Dernière ligne | La note de cadrage n’est pas prête. |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.