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

Concevoir une fonction d’IA en une page

Après cette leçon: Je peux écrire une conception d’une page pour une fonction adossée à un modèle.

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

Comment écrire une conception d’une page

Une conception d’une page dit comment une fonction adossée à un modèle va marcher et échouer, avant que quiconque la construise. Elle nomme la passerelle, la file, les évaluations, le budget, le repli et les règles de sécurité au même endroit. C’est important, car chacun de ces choix est bon marché sur le papier et coûteux à ajouter après coup.

Deux ingénieurs se souviennent chacun d’une limite de débit différente. La page de conception tranche, et un script peut la vérifier.

À la fin de cette leçon

Remarque

Je peux écrire une conception d’une page pour une fonction adossée à un modèle.

Mots-clés

MotCe que ça veut dire
Page de conceptionune page qui dit comment une fonction marche
Exigenceune affirmation que la conception doit satisfaire
Replice qui se passe quand un appel au modèle échoue
Budgetle plus qu’une fonction a le droit de dépenser
Évaluationun test de qualité sur des cas fixes

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

Six sections couvrent une fonction

Écrivez une courte section par sujet. Passerelle : clés, limites, choix du modèle. File : quels appels sont des tâches et comment les reprises sont bornées. Évaluations : les cas et la note de passage. Budget : la limite et ce qui se passe quand on l’atteint. Repli : ce que voit l’utilisateur quand un appel échoue. Sécurité : ce que le prompt peut contenir et ce qui est journalisé.

Une page oblige à choisir. Deux phrases par section suffisent.

Exemple travaillé : ce que chaque section doit dire

SectionUne exigence qu’elle satisfaitExpression à chercher
PasserelleLes appelants n’ont jamais la clé du fournisseurclé client
FileLe travail lent ne bloque pas une requêtetâche, reprise
ÉvaluationsUn changement se juge sur des cas fixescas, taux de réussite
BudgetLa dépense a un plafondplafond quotidien
RepliL’utilisateur obtient toujours quelque choseréponse simple
SécuritéLes données personnelles sont réduites et les journaux sûrsdonnées personnelles, journal

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

Un script peut vérifier une page de conception

Transformez chaque exigence en une section et quelques expressions qui doivent y figurer. Un court script lit la page et liste ce qui manque. Il ne peut pas juger si la conception est bonne. Il prouve seulement que la page a répondu à chaque question.

Lancez-le à la relecture, et gardez la page courte : une limite de mots est aussi une exigence.

Une erreur fréquente

Attention

Beaucoup pensent qu’une conception qui passe le script est une bonne conception. Le script vérifie qu’un sujet est mentionné, pas que le choix est juste. Passer est le début de la relecture, jamais sa fin.

Écrire l’aide du modèle, partie 1

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const base = process.env.AI_URL || \"http://ai:4000\";' 'async function demander(messages, echantillon, max) {' '  try {' '    const res = await fetch(base + \"/v1/chat/completions\", {' '      method: \"POST\",' '      headers: { \"content-type\": \"application/json\", authorization: \"Bearer lab\" },' '      body: JSON.stringify({ model: \"lab\", messages: messages, max_tokens: max || 200 }),' '      signal: AbortSignal.timeout(30000),' '    });' '    if (res.ok === false) throw new Error(\"statut \" + res.status);' '    return (await res.json()).choices[0].message.content;' > model.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 l’aide du modèle, partie 2

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' '  } catch (erreur) {' '    console.log(\"Échantillon enregistré : aucun modèle n’a répondu (\" + erreur.message + \").\");' '    const liste = [].concat(echantillon);' '    const tour = messages.filter(function (m) { return m.role === \"assistant\"; }).length;' '    return liste[Math.min(tour, liste.length - 1)];' '  }' '}' 'module.exports = { demander };' >> model.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 la vérification, partie 1

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' '// Une conception d’une page pour une fonction de résumé de tickets, inventée pour la leçon.' 'const conception = {' '  passerelle: \"Les appelants utilisent une clé client. La passerelle applique une limite de débit de 60 par minute et choisit le modèle.\",' '  file: \"Un résumé est une tâche. Un exécutant la lance et une reprise est bornée à trois essais.\",' '  evaluations: \"Quarante cas aux réponses connues. On compare le taux de réussite de chaque version du prompt.\",' '  budget: \"Un plafond quotidien par équipe. Au-delà, la fonction le dit et s’arrête.\",' '  repli: \"Si le modèle échoue, on essaie un second modèle, puis on montre les premières lignes du ticket.\",' '  securite: \"Les tickets peuvent contenir des données personnelles : le prompt ne reçoit que le nécessaire.\",' '};' > design.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 la vérification, partie 2

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const exigences = [' '  { id: \"E1\", section: \"passerelle\", mots: [\"clé client\", \"limite de débit\"] },' '  { id: \"E2\", section: \"file\", mots: [\"tâche\", \"reprise\"] },' '  { id: \"E3\", section: \"evaluations\", mots: [\"cas\", \"taux de réussite\"] },' '  { id: \"E4\", section: \"budget\", mots: [\"plafond quotidien\"] },' '  { id: \"E5\", section: \"repli\", mots: [\"réponse simple\"] },' '  { id: \"E6\", section: \"securite\", mots: [\"données personnelles\", \"journal\"] },' '];' >> design.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 la vérification, partie 3

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function verifier(d, liste, maxMots) {' '  const sortie = [];' '  liste.forEach(function (e) {' '    const texte = (d[e.section] || \"\").toLowerCase();' '    if (texte.trim() === \"\") { sortie.push(e.id + \" : pas de section \" + e.section); return; }' '    e.mots.forEach(function (m) { if (texte.indexOf(m) < 0) sortie.push(e.id + \" : manque \" + m); });' '  });' '  let n = 0;' '  for (const k in d) n += d[k].split(\" \").length;' '  if (n > maxMots) sortie.push(\"trop long : \" + n + \" mots\");' '  return sortie;' '}' 'const problemes = verifier(conception, exigences, 120);' 'problemes.forEach(function (p) { console.log(\"Problème :\", p); });' 'console.log(\"Exigences satisfaites :\", exigences.length - problemes.length, \"sur\", exigences.length);' >> design.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 page de conception

Commande
docker exec -w /home/node/project agent node design.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 Run n’a pas besoin de modèle

La vérification est du code simple sur du texte : elle ne fait aucun appel. L’aide est écrite pour les exercices suivants, et un Run qui appelle un modèle affiche un échantillon enregistré étiqueté quand aucun ne répond.

La conception est inventée. Une vraie conception nomme vos propres services et vos propres chiffres.

Une sortie possible

LigneCe qu’elle montre
Problème : E5 : manque réponse simpleLe repli ne dit jamais ce que voit l’utilisateur à la fin
Problème : E6 : manque journalLa section de sécurité ne dit rien des journaux
Exigences satisfaites : 4 sur 6Quatre sections ont répondu à chaque question

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.