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

Les motifs de prompt qui marchent

Après cette leçon: Je peux utiliser exprès un petit ensemble de motifs de prompt.

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

Un motif est une petite forme à réutiliser

Un motif de prompt est une forme de prompt qu’on emploie exprès, parce qu’elle règle un problème connu. La persona, le gabarit, la critique suivie d’une réécriture et les règles d’abord en sont quatre.

Nommer un motif permet à une équipe de parler des prompts et de les tester. « Celui-ci utilise les règles d’abord » est une phrase sur laquelle on peut agir.

À la fin de cette leçon

Remarque

Je peux utiliser exprès un petit ensemble de motifs de prompt.

Mots clés

MotCe que ça veut direExemple
Motifune forme de prompt avec un usage connu
Personaun rôle que l’on demande au modèle de jouer
Gabaritun prompt avec des trous à remplir
Emplacementun trou dans un gabarit{{prenom}}
Critiqueune liste de ce qui ne va pas
Contrainteune règle que la réponse doit respecter

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

Que font les quatre motifs ?

Une persona fixe un rôle et une voix. Un gabarit a des trous que le code remplit, donc chaque prompt a la même forme. La critique et réécriture demande au modèle de trouver les défauts, puis de les corriger. Les règles d’abord placent les règles avant la tâche pour qu’on ne les oublie pas.

Les motifs se combinent. Un gabarit peut commencer par des règles.

Quatre motifs et ce que chacun règle

MotifIndice dans le promptIl règle
PersonaCommencez par « Vous êtes » ou « Agissez comme »Une voix qui dérive
GabaritDes trous comme {{prenom}}Des prompts tous différents
Critique et réécritureDemande les deux étapesUn premier jet laissé tel quel
Règles d’abordCommencez par « Règles : » ou « Limites : »Des règles perdues à la fin

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

É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 détecteur de motifs, partie 1

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { demander } = require(\"./model\");' 'const prompts = [' '  \"Vous êtes un professeur de maths patient. Expliquez les fractions.\",' '  \"Règles : moins de 20 mots. Pas de jargon.\nTâche : explique les marées.\",' '  \"Écrivez un mot à {{prenom}} au sujet de {{sujet}}.\",' '  \"Critiquez ce paragraphe, puis réécrivez-le.\",' '  \"Expliquez les marées.\",' '];' > motifs4.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 détecteur de motifs, partie 2

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function motifDe(p) {' '  const bas = p.toLowerCase();' '  if (bas.includes(\"critique\") && bas.includes(\"réécri\")) return \"critique et réécriture\";' '  if (p.startsWith(\"Règles :\") || p.startsWith(\"Limites :\") || p.startsWith(\"Contraintes :\")) return \"règles d’abord\";' '  if (p.includes(\"{{\") && p.includes(\"}}\")) return \"gabarit\";' '  if (p.startsWith(\"Vous êtes \") || p.startsWith(\"Agissez comme \")) return \"persona\";' '  return \"simple\";' '}' 'function remplir(g, valeurs) {' '  let texte = g;' '  for (const cle of Object.keys(valeurs)) texte = texte.split(\"{{\" + cle + \"}}\").join(valeurs[cle]);' '  return texte;' '}' >> motifs4.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 détecteur de motifs, partie 3

Commande
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  prompts.forEach(function (p, i) { console.log((i + 1) + \" : \" + motifDe(p)); });' '  const rempli = remplir(prompts[2], { prenom: \"Mina\", sujet: \"la sortie scolaire\" });' '  console.log(\"rempli : \" + rempli);' '  const reponse = await demander([{ role: \"user\", content: rempli }], \"Chère Mina, la sortie scolaire part à neuf heures.\", 50);' '  console.log(\"modèle : \" + reponse.texte);' '}' 'main();' >> motifs4.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 et nommer les motifs

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

Cinq lignes nomment le motif de chaque prompt : persona, règles d’abord, gabarit, critique et réécriture, simple. Les tests se font dans un ordre fixe, donc un prompt qui a deux indices prend le premier qui convient.

Ensuite, le Run remplit le gabarit et l’envoie. La dernière ligne est une courte réponse. Sans modèle, un Échantillon enregistré s’affiche d’abord.

Une erreur courante

Attention

Beaucoup pensent qu’une persona rend un modèle plus exact. Un rôle fixe la voix et le niveau de détail. Il n’ajoute pas de faits que le modèle n’a pas. Utilisez une persona pour le ton, et des limites et des exemples pour l’exactitude.

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