Menu

Modèles de prompts : exemples et méthode

Un modèle de prompt est un prompt déjà testé, avec des champs pour les parties qui changent à chaque fois. Copiez des modèles prêts à remplir, puis transformez votre meilleur prompt en modèle en cinq étapes.

Chaque prompt de cette page se modifie, puis s'ouvre dans ChatGPT, Claude ou une autre application d'IA.

Un modèle de prompt est un prompt à trous. Le texte fixe contient tout ce que vous avez appris pour obtenir une bonne réponse à un type de tâche : le rôle, le format, les limites. Les champs contiennent ce qui change à chaque fois : le sujet, le langage, le texte à traiter. Remplir trois champs va plus vite qu'écrire un prompt, et vous obtenez des réponses de qualité et de forme constantes.

Le modèle ci-dessous explique n'importe quelle notion de programmation à votre niveau. Tapez vos propres valeurs dans les champs, désactivez une partie pour voir ce qu'elle apporte, puis copiez-le ou ouvrez-le dans une application de chat.

Expliquer une notion à mon niveau
Fill in
Parts
Tu es un tuteur patient pour des programmeurs autodidactes.
Explique les closures en JavaScript.
Je connais déjà les variables, les fonctions et les tableaux. J'apprends le mieux avec un petit exemple que je peux exécuter moi-même.
Réponds en trois parties avec des intitulés en gras : l'idée en une phrase, un court exemple de code avec un commentaire sur la ligne clé, et une erreur fréquente.
Reste sous les 150 mots. Si tu as besoin d'un terme que je n'ai pas cité comme connu, explique-le en quelques mots.
Try it
Example replyReplies vary between models and runs.

L'idée : une closure est une fonction qui se souvient des variables de l'endroit où elle a été créée, même après la fin de l'exécution de la fonction extérieure.

Exemple :

function makeCounter() {
  let count = 0;
  return function () {
    count += 1; // still sees count from makeCounter
    return count;
  };
}

const next = makeCounter();
console.log(next()); // 1
console.log(next()); // 2

Erreur fréquente : s'attendre à ce que deux compteurs partagent un même total. Chaque appel à makeCounter() crée un nouveau count, donc chaque compteur garde le sien.

Ce qui fait un bon modèle

Un modèle ne vaut que le prompt dont il vient : le texte fixe doit donc être un prompt que vous avez déjà exécuté et apprécié. Trois choix séparent un modèle utile d'un formulaire qui produit plus vite des réponses médiocres.

Ne laissez en blanc que ce qui change. Si vous voulez toujours une réponse de moins de 150 mots, écrivez 150 dans le texte fixe. Chaque champ est une décision à reprendre à chaque utilisation, et un modèle à dix champs se remplit plus lentement qu'un prompt écrit de zéro.

Donnez à chaque champ un nom clair et une valeur par défaut sensée. {{acquis}} vous dit quoi taper ; {{x}}, non. Une valeur par défaut montre le type de valeur attendu et permet de lancer le modèle une fois sans rien taper.

Un modèle par tâche. Un modèle qui explique des notions, relit du code et écrit des questions de quiz selon un champ fait les trois moins bien que trois modèles distincts. Plus le texte fixe est précis, plus il peut en dire sur le format et le niveau d'exigence.

Les six éléments de comment écrire un prompt forment une bonne liste de contrôle pour le texte fixe : rôle, tâche, contexte, entrée, format, contraintes. Les champs tombent en général dans la tâche, le contexte et l'entrée.

Exemples de modèles de prompts

Ces trois modèles couvrent des tâches courantes du quotidien. Chacun a des champs nommés à remplir. Pour une collection plus large de prompts prêts à l'emploi, voir exemples de prompts.

Résumer pour un lecteur précis
Fill in
Résume le texte situé entre les balises <text> pour un responsable qui a deux minutes. Utilise au maximum 3 puces. Commence par toute décision ou action que le lecteur doit prendre, et laisse de côté le contexte dont il n'a pas besoin. <text> Collez le texte ici </text>
Try it
Écrire une petite fonction
Fill in
Écris une fonction Python qui prend une liste de nombres et renvoie la médiane. Utilise des annotations de type si le langage en a. Si l'entrée est vide, lève une ValueError. Après la fonction, ajoute trois exemples d'appel avec leur résultat attendu en commentaire. Renvoie uniquement le code.
Try it
Example replyReplies vary between models and runs.
def median(numbers: list[float]) -> float:
    if not numbers:
        raise ValueError("median() needs at least one number")
    ordered = sorted(numbers)
    middle = len(ordered) // 2
    if len(ordered) % 2 == 1:
        return ordered[middle]
    return (ordered[middle - 1] + ordered[middle]) / 2


# median([3, 1, 2])     returns 2
# median([4, 1, 3, 2])  returns 2.5
# median([])            raises ValueError
Répondre à un message
Fill in
Écris une réponse au message situé entre les balises <message>. Objectif : décliner poliment et proposer plutôt une date le mois prochain. Ton : amical et bref. Reste sous les 80 mots et n'ajoute aucun fait qui ne figure ni dans le message ni dans l'objectif. <message> Bonjour ! Seriez-vous disponible pour faire une courte présentation de votre projet à notre meetup du 14 ? </message>
Try it
Example replyReplies vary between models and runs.

Bonjour, merci pour l'invitation, je suis content que vous ayez pensé à moi ! Malheureusement, je ne suis pas disponible le 14. Une date le mois prochain vous conviendrait-elle ? Je serais ravi de présenter le projet à ce moment-là.

Bien à vous, [Votre nom]

Les balises autour du texte collé ont une raison d'être. Le texte rempli peut contenir des phrases qui ressemblent à des consignes, et les délimiteurs évitent que le modèle confonde les consignes de votre modèle avec le contenu qu'il doit traiter.

Comment construire votre propre modèle

  1. Partez d'un prompt qui a marché. Reprenez une conversation où la réponse était bonne, et rassemblez la version finale du prompt, y compris les corrections ajoutées dans les messages suivants. Ces corrections sont la partie la plus précieuse, car elles règlent ce que la première version ratait.
  2. Repérez ce qui changerait la prochaine fois. Relisez le prompt et soulignez chaque mot que vous modifieriez pour la prochaine utilisation. Ce sont en général deux à quatre éléments : un sujet, un public, une longueur, une entrée collée.
  3. Remplacez chacun par un champ nommé. Écrivez le champ comme votre outil l'attend, par exemple [public] pour un prompt collé à la main ou {public} pour du code.
  4. Testez avec trois remplissages différents. Un cas typique, une entrée très courte ou très longue, et un cas inhabituel. Si l'un d'eux échoue, c'est que le texte fixe suppose encore quelque chose de la première utilisation. Changez une phrase à la fois, comme expliqué dans itérer sur un prompt.
  5. Enregistrez-le là où vous le retrouverez. Un fichier de notes, un expanseur de texte ou un gestionnaire d'extraits font l'affaire. Un modèle qu'il faut chercher est un modèle que vous cesserez d'utiliser.

Les modèles dans le code

Dans un programme, un modèle est une chaîne avec des champs nommés. La méthode str.format() de Python les remplit :

SUMMARY_TEMPLATE = """Summarize the text inside the <text> tags for {audience}.
Use at most {bullets} bullet points and lead with any action the reader must take.

<text>
{text}
</text>"""

with open("notes.txt", encoding="utf-8") as f:
    meeting_notes = f.read()

prompt = SUMMARY_TEMPLATE.format(
    audience="a manager who has two minutes",
    bullets=3,
    text=meeting_notes,
)

Avec str.format(), chaque accolade littérale du modèle doit être doublée ({{ et }}), ce qui compte quand le modèle contient un exemple JSON. Les accolades présentes dans les valeurs passées, comme du code dans meeting_notes, n'ont pas besoin d'échappement. Certaines bibliothèques pour créer des applications d'IA ont leurs propres classes de modèles, mais elles font le même travail qu'une chaîne de format, avec des fonctions en plus autour.

Quand les valeurs viennent des utilisateurs, n'oubliez pas que le modèle envoie leur texte au modèle d'IA. Gardez-le entre des délimiteurs, et ne donnez pas au modèle des outils ou des données qu'une entrée malveillante pourrait détourner.

Modèle de prompt ou prompt système

Un modèle de prompt et un prompt système règlent des problèmes différents. Le prompt système contient les règles valables pour chaque message d'une conversation ou d'une application : le personnage, le ton, ce que l'assistant ne doit jamais faire. Un modèle de prompt contient une tâche avec des champs. Dans une application, on utilise souvent les deux : un prompt système fixe qui pose les règles de base, et un modèle qui construit chaque message utilisateur.

Questions fréquentes

Qu'est-ce qu'un modèle de prompt ?

Un modèle de prompt (prompt template) est un prompt réutilisable avec des emplacements, comme [sujet] ou {langage}, pour les parties qui changent d'une utilisation à l'autre. Le texte fixe contient les consignes que vous avez déjà testées ; vous remplissez les champs à chaque fois au lieu de réécrire le prompt de zéro.

Comment créer mon propre modèle de prompt ?

Partez d'un prompt qui vous a déjà donné une bonne réponse. Repérez les mots que vous changeriez pour la prochaine utilisation, remplacez chacun par un champ nommé, et testez le modèle avec trois remplissages différents, dont un cas inhabituel. Gardez telles quelles les consignes qui ont rendu la première réponse bonne.

Où enregistrer mes modèles de prompts ?

Là où vous pouvez les copier rapidement : un fichier de notes, un expanseur de texte ou un gestionnaire d'extraits. Les applications de chat ont aussi des emplacements pour le texte réutilisé, comme les instructions personnalisées et les instructions de projet, mais ils conviennent mieux aux règles valables pour chaque message qu'aux tâches ponctuelles à trous.

Comment utiliser un modèle de prompt en Python ?

Stockez le modèle dans une chaîne avec des champs nommés et remplissez-la avec str.format() ou une f-string. Avec str.format(), doublez chaque accolade littérale du modèle ({{ et }}), par exemple quand le modèle contient un exemple JSON. Placez le texte fourni par l'utilisateur entre des délimiteurs pour qu'il reste séparé des consignes.

Coddy programming languages illustration

Apprendre à coder avec Coddy

COMMENCER