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

Quand un prompt suffit

Après cette leçon: Je peux montrer qu’un prompt ne règle pas un problème avant d’avoir recours à l’entraînement.

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

Essayer un prompt avant d’entraîner

Adapter un modèle, c’est changer le modèle lui-même avec vos propres exemples. Cela coûte du temps, des données et de l’attention. Beaucoup de problèmes qui semblent l’exiger se règlent avec un meilleur prompt.

Une équipe qui entraîne d’abord et teste un prompt ensuite paie souvent une correction dont elle n’avait pas besoin.

À la fin de cette leçon

Remarque

Je peux montrer qu’un prompt ne règle pas un problème avant d’avoir recours à l’entraînement.

Mots clés

MotCe que ça veut dire
Référenceles résultats obtenus avant tout changement
Casune entrée dont on connaît la bonne réponse
Taux de réussitele pourcentage de cas bien traités
Adapterchanger un modèle avec vos propres exemples
Objectifle taux de réussite qui vous satisfait

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

Commencer par une référence

Écrivez d’abord une série de cas. Un cas est une entrée avec la réponse voulue. Lancez votre prompt actuel sur chaque cas et comptez les réussites.

Ce compte est la référence. Sans elle, vous ne pouvez pas dire qu’un changement a aidé. Gardez les cas fixes, pour que chaque essai suivant reste équitable.

Exemple : un tri de messages de clients

Genre de messageCasRéussis au départRéussis avec le meilleur prompt
facturation222
livraison212
remboursement202
ton200
total83 (37 %)6 (75 %)

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

Que peut régler un prompt ?

Un prompt peut régler une consigne manquante, un exemple manquant ou une mauvaise forme de réponse. Il coûte peu et s’annule en une seconde.

Il peine quand le modèle doit suivre un style jamais montré, ou connaître des faits que la fenêtre ne peut pas contenir. L’adaptation vaut alors la peine. Le module 79 enseigne le prompt lui-même.

Une erreur courante

Attention

Beaucoup pensent qu’une mauvaise réponse prouve que le modèle doit être entraîné. Souvent, le prompt n’a jamais dit ce qu’on voulait. Vérifiez le prompt et quelques exemples d’abord, et n’entraînez que si un test équitable ne montre aucun vrai progrès.

Écrire l’assistant 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\";' '// Les jetons d’une réponse, ou null si elle n’en donne pas.' 'function compter(donnees, nom) {' '  return donnees.usage && typeof donnees.usage[nom] === \"number\" ? donnees.usage[nom] : null;' '}' > 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’assistant du modèle, partie 2

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' '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 || 100 }),' '      signal: AbortSignal.timeout(30000),' '    });' '    if (res.ok === false) throw new Error(\"statut \" + res.status);' '    const d = await res.json();' '    return { texte: d.choices[0].message.content, entree: compter(d, \"prompt_tokens\"), sortie: compter(d, \"completion_tokens\"), enregistre: false };' '  } catch (erreur) {' '    console.log(\"Échantillon enregistré : aucun modèle n’a répondu (\" + erreur.message + \").\");' '    return { texte: echantillon, entree: null, sortie: null, enregistre: true };' '  }' '}' '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 le rapport de départ, partie 1

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { demander } = require(\"./model\");' '// Résultats enregistrés : 1 veut dire que le tri a mis le message dans le bon tas.' 'const genres = [\"facturation\", \"facturation\", \"livraison\", \"livraison\", \"remboursement\", \"remboursement\", \"ton\", \"ton\"];' 'const depart = [1, 1, 1, 0, 0, 0, 0, 0];' 'const ameliore = [1, 1, 1, 1, 1, 1, 0, 0];' > adapt1.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 rapport de départ, partie 2

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function taux(liste) {' '  let bons = 0;' '  for (const r of liste) bons = bons + r;' '  return Math.floor((bons * 100) / liste.length);' '}' 'function echecs(liste) {' '  const sortie = [];' '  liste.forEach(function (r, i) {' '    if (r === 0 && sortie.includes(genres[i]) === false) sortie.push(genres[i]);' '  });' '  return sortie;' '}' >> adapt1.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 rapport de départ, partie 3

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  console.log(\"séries enregistrées, 8 cas\");' '  console.log(\"départ \" + taux(depart) + \" %, échecs restants : \" + echecs(depart).join(\", \"));' '  console.log(\"meilleur prompt \" + taux(ameliore) + \" %, échecs restants : \" + echecs(ameliore).join(\", \"));' '  const q = \"En une phrase, un prompt peut-il apprendre à un modèle un style maison qu’il n’a jamais vu ?\";' '  const echantillon = \"Un prompt peut montrer quelques exemples du style, mais il ne change pas ce que le modèle fait par défaut.\";' '  const reponse = await demander([{ role: \"user\", content: q }], echantillon, 60);' '  console.log(\"le modèle dit : \" + reponse.texte);' '}' 'main();' >> adapt1.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.

Lancer le rapport de départ

Commande
docker exec -w /home/node/project agent node adapt1.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.

Les résultats sont enregistrés, pas en direct

Les deux listes de résultats sont enregistrées et écrites dans le script. Aucun modèle ne les produit : tous les étudiants voient donc les mêmes nombres. Seule la dernière ligne appelle le modèle du labo, et sans modèle elle affiche un Échantillon enregistré.

À 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.