Guides par modèle

Prompting pour ChatGPT et OpenAI : un guide pratique

Comment écrire des prompts pour ChatGPT et les modèles OpenAI. Rôles de message, modèles de raisonnement, sorties structurées, contexte long, décompte exact des tokens et erreurs courantes.

Traduit de l’original anglais. Le code, les prompts et les sorties de modèle restent en anglais.

Les fondamentaux du prompting valent pour tous les modèles. Ce guide couvre ce qui est propre aux modèles d’OpenAI, dans l’application ChatGPT comme par l’API, et les points où leur comportement devrait changer votre façon d’écrire.

Les noms et les limites des modèles changent souvent ; ce guide décrit donc des comportements stables d’une génération à l’autre. Consultez la documentation d’OpenAI pour la liste actuelle des modèles.

Deux familles qui demandent des prompts différents

OpenAI propose des modèles de chat généralistes et des modèles de raisonnement. La distinction compte plus que le nom du modèle.

Modèles de chat généralistes Modèles de raisonnement
Fonctionnement Répondent directement Réfléchissent en interne avant de répondre
Meilleur style de prompt Instructions explicites, pas à pas L’objectif, les contraintes et les critères de réussite
« Réfléchis pas à pas » Peut aider Inutile ; peut nuire
Exemples Souvent utiles À essayer d’abord sans
Coût et latence Plus faibles Plus élevés, réglables par l’effort de raisonnement

Une façon utile d’y penser : briefez un modèle de chat comme un junior compétent qui a besoin de la procédure, et un modèle de raisonnement comme un collègue senior qui a besoin de l’objectif.

Rôles de message

L’API prend des messages assortis de rôles. Les instructions de l’auteur de l’application vont dans le message système, que les API récentes d’OpenAI appellent message developer. L’entrée de l’utilisateur va dans les messages utilisateur. Le modèle donne la priorité aux instructions developer.

Placez les règles permanentes, le rôle et le format de sortie dans le message developer. Placez la tâche et ses données dans le message utilisateur. Voir les prompts système et le prompting par rôle.

Dans l’application ChatGPT, les instructions personnalisées et les instructions de projet jouent le rôle du message système.

Soyez littéral et explicite

Les modèles récents d’OpenAI suivent les instructions de près et à la lettre. Deux conséquences :

  • Ils font ce que vous dites, pas ce que vous avez sous-entendu. Si vous voulez des suggestions en plus de la correction demandée, demandez les deux.
  • Une seule phrase claire suffit généralement à corriger un comportement. Inutile de recourir aux majuscules ou à la répétition. Une emphase excessive peut faire sur-appliquer une règle.

Structurez avec du Markdown et des délimiteurs

Les modèles d’OpenAI gèrent bien les titres et listes Markdown pour organiser les instructions, et les balises de type XML pour envelopper les documents et les entrées.

## Task
Summarize the incident report for the on-call team.

## Requirements
- 5 bullet points.
- Include root cause, customer impact, and fix.

## Output format
A markdown list. No introduction.

<report>
{{report}}
</report>

Contexte long

Quand un prompt contient un gros document, placez les instructions au début et à la fin. Si vous ne pouvez les placer qu’une fois, mettez-les avant le document. Cela suit les propres recommandations d’OpenAI pour les prompts à contexte long.

Sorties structurées

Pour tout ce que votre code analyse, utilisez la fonction de sorties structurées (Structured Outputs) de l’API avec un JSON Schema en mode strict. La réponse est alors contrainte au schéma, ce qui supprime toute une classe d’échecs d’analyse.

  • Nommez et décrivez bien les champs : le modèle lit le schéma.
  • Utilisez des énumérations pour les ensembles de valeurs fixes.
  • Placez un champ de raisonnement avant le champ de résultat si vous voulez une explication.
  • Validez quand même : une réponse peut être coupée à la limite de sortie ou refusée.

Plus de détails dans les prompts de sortie structurée.

Appel de fonctions

Les outils sont définis par un nom, une description et un schéma de paramètres. La description est le prompt que le modèle utilise pour décider quand appeler l’outil ; dites donc ce qu’il fait, quand l’utiliser et ce qu’il renvoie. Le mode strict contraint les arguments au schéma. Voir les prompts pour agents IA.

Effort de raisonnement

Les modèles de raisonnement exposent un réglage de la quantité de réflexion à dépenser. Utilisez un effort faible pour l’extraction et la classification simples, et plus élevé pour l’analyse à plusieurs étapes et le code difficile. Ajuster ce réglage est plus efficace que d’ajouter des instructions de raisonnement au prompt.

Le décompte des tokens est exact

OpenAI publie ses tokeniseurs ; vous pouvez donc compter les tokens d’un prompt hors ligne et connaître le coût d’entrée avant l’envoi. PromptFlowEngine utilise ces tokeniseurs pour les modèles OpenAI et étiquette le résultat comme exact. Vérifiez un prompt dans l’espace de travail, ou voyez l’optimisation des tokens.

La mise en cache des prompts s’applique automatiquement aux préfixes de prompt répétés au-delà d’une longueur minimale ; placez donc le contenu stable en premier et le contenu variable en dernier.

Prompting dans l’application ChatGPT

  • Donnez le contexte une fois. Utilisez les instructions personnalisées ou un projet pour les préférences permanentes au lieu de les retaper.
  • Commencez un nouveau chat quand le sujet change. Les anciennes instructions persistent dans une longue conversation.
  • Joignez la matière. Téléversez le fichier au lieu de le décrire.
  • Demandez le format. Un tableau, une liste de contrôle ou une limite de mots.
  • Vérifiez la mémoire. Si des souvenirs enregistrés orientent les réponses d’une façon indésirable, relisez-les ou désactivez-les.
  • Ne collez pas de secrets. Les clés et les données clients dans un chat ont échappé à votre contrôle.

L’extension Chrome PromptFlowEngine fonctionne dans ChatGPT : elle analyse le brouillon dans la zone de prompt, restructure une demande brute et avertit lorsque le brouillon contient un identifiant.

Erreurs courantes avec les modèles OpenAI

Erreur Ce qui se passe Correction
Instructions pas à pas à un modèle de raisonnement Plus lent, pas meilleur Énoncez l’objectif et les contraintes
Demander du JSON uniquement en prose Sortie invalide occasionnelle Utilisez les sorties structurées
Instructions noyées sous un long document Instructions sous-pondérées Répétez-les après le document
Emphase sur chaque règle Règles sur-appliquées Énoncés simples ; expliquez la raison
Estimer les tokens par les caractères Budgets dépassés Comptez avec le tokeniseur

Optimiser un prompt ChatGPT

  1. Énoncez la tâche à la première ligne.
  2. Ajoutez le public, les contraintes et le format de sortie.
  3. Enveloppez la matière collée dans des balises.
  4. Retirez le remplissage et les répétitions.
  5. Testez sur des entrées réelles et comparez les versions.

L’optimiseur de prompts PromptFlowEngine réalise les étapes 3 et 4 et vérifie qu’aucune exigence n’a été perdue.

Comparez avec le guide de prompting pour Claude et le guide de prompting pour Gemini.

Passer à la pratique

Essayez avec l’outil « Optimiseur de prompts »

Réduisez les tokens et ajoutez de la structure, avec la preuve que chaque exigence est conservée. C’est gratuit, déterministe et sans compte.

Outils PromptFlowEngine associés