Exemple d'ingénierie des prompts pour les développeurs

Exemples concrets de prompt engineering pour développeurs : prompts reproductibles, sortie JSON et schémas d'intégration pour déployer des fonctionnalités LLM fiables.

Share
Exemple d'ingénierie des prompts pour les développeurs

Exemples concrets de prompt engineering pour développeurs : prompts reproductibles, sortie JSON et schémas d'intégration pour déployer des fonctionnalités LLM fiables.

Copy&Prompt TEAM · Publié 2026-08-09 · Mise à jour 2026-08-09

Réponse rapide : Le prompt engineering consiste à rédiger des entrées structurées et reproductibles qui font que les LLM se comportent de manière prévisible. Pour les développeurs, cela signifie traiter les prompts comme du code : les versionner, les tester et exiger une sortie structurée (JSON ou schéma) afin que les systèmes en aval puissent consommer les résultats de façon déterministe.

Ce que signifie le prompt engineering pour les développeurs

Le prompt engineering consiste à concevoir des entrées afin qu'un modèle de langage retourne des sorties structurées et prévisibles qui s'intègrent au code. Vous écrivez un prompt comme une signature de fonction. Cela réduit le parsing fragile, corrige la dérive et permet aux tests d'asserter le comportement.

Définition : un system prompt définit le rôle du modèle. Un task prompt décrit le travail à effectuer. Les contraintes limitent le format et le contenu. Utilisez ces trois éléments de manière cohérente. Pour la lisibilité machine, préférez le JSON ou un format strict basé sur des délimiteurs.

Preuves et citations : GPT-4 proposait des variantes de contexte 8k et 32k tokens (OpenAI, 2023). OpenAI documente le rôle system comme un type de message séparé dans les API (OpenAI docs, 2024) : "system messages set behaviours." La documentation d'Anthropic énumère des patterns de sécurité et d'utilisation d'outils pour les prompts système et utilisateur (Anthropic, 2024).

Observation de l'équipe Copy&Prompt : dans nos tests d'intégration, les prompts exigeant un JSON strict ont réduit les échecs de parsing de manière notable lorsqu'ils étaient versionnés et validés au runtime (observation août 2026).

Un cadre en 5 étapes (avec prompts copiables)

Utilisez un modèle en cinq parties pour chaque prompt de production. Chaque bloc de prompt ci-dessous est copiable tel quel et validé pour un LLM. Chaque bloc est annoté et estampillé modèle.

Étape 1 — Rôle : définir le rôle system et assistant

Role: System assistant that acts as a strict JSON generator and code reviewer.
Context: You are used inside a CI step. The consumer expects valid JSON matching a schema.
Task: Given an input code snippet, return a JSON object with keys: "issue", "line", "severity", "fix".
Constraints:
- Ne pas inclure de commentaires en dehors du JSON.
- N'utiliser que les clés définies.
Output format: JSON with the schema:
{"issue": "string","line": integer,"severity": "low|medium|high","fix": "string"}

Annotation : ce rôle au niveau système contraint la sortie à du JSON uniquement. Validé sur GPT-4 (observation août 2026). À utiliser lorsqu'une pipeline automatisée analysera les réponses.

Étape 2 — Contexte : fournir des données minimales mais suffisantes

Role: Assistant as above.
Context: File: [FILENAME]; Language: [LANGUAGE]; Function: [FUNCTION_DESCRIPTION].
Task: Analyze the snippet between markers and report up to three issues in the specified JSON schema.
Constraints:
- N'analyser que le code entre les marqueurs <<>> et <<>>.
- Retourner exactement un tableau JSON nommé "issues".
Output format:
{"issues":[{"issue":"string","line":int,"severity":"low|medium|high","fix":"string"}]}

Annotation : les marqueurs empêchent le modèle d'halluciner en dehors du snippet fourni. Validé sur GPT-4 (août 2026). Remplacez les variables entre crochets avant l'envoi.

Étape 3 — Tâche : demander une action mesurable

Role: Assistant as strict JSON generator.
Context: Test case ID: [CASE_ID]. Specification: [BRIEF_SPEC].
Task: Produce a unit-test skeleton in the format below and a short explanation field "why".
Constraints:
- La sortie doit être un objet JSON avec les clés "test_code" et "why".
- Le code de test doit être un bloc de code [TEST_FRAMEWORK] valide, sous forme de chaîne.
Output format:
{"test_code":"string","why":"string"}

Annotation : ce pattern transforme le modèle en machine à produire du code que votre CI peut compiler ou lint. Validé sur Claude Opus (Anthropic), observation juin 2025.

Étape 4 — Contraintes : limiter la créativité quand nécessaire

Listez toujours les contraintes. Une phrase ambiguë invite à la variabilité. Décomposez les contraintes en puces et donnez des critères d'acceptation explicites.

Étape 5 — Format de sortie : schéma et validation

Fournissez un JSON Schema dans le prompt quand c'est possible. Les consommateurs doivent valider la réponse avec une bibliothèque JSON Schema. Si la validation échoue, faites échouer le build plutôt que d'analyser heuristiquement.

Exemples appliqués : génération de code, tests et extraction structurée

Chaque exemple ci-dessous contient un prompt, le schéma de sortie attendu et une note d'intégration. Utilisez-les comme modèles en production.

Exemple A — Générer une interface TypeScript à partir d'un JSON

Role: Assistant that converts JSON to TypeScript interfaces.
Context: Input JSON is between markers.
Task: Return a TypeScript interface named [INTERFACE_NAME] that matches the JSON exactly.
Constraints:
- Pas d'explications ; ne retourner que le code de l'interface.
- Utiliser "readonly" pour les propriétés de premier niveau.
Output format: single code block string containing TypeScript interface.

Note d'intégration : passez la sortie dans un compilateur TypeScript ou ts-morph pour confirmer les types. Utilisez ceci dans des pipelines de génération de code.

Exemple B — Extraire des données structurées à partir de logs

Role: Log parser assistant that outputs CSV rows as JSON.
Context: Log lines between markers.
Task: For each error log, return an object with keys: "timestamp","service","level","message".
Constraints:
- Retourner un tableau JSON nommé "rows".
- Les timestamps doivent être au format ISO8601.
Output format:
{"rows":[{"timestamp":"string","service":"string","level":"string","message":"string"}]}

Note d'intégration : vous pouvez pipeliner ce JSON vers de l'analytics ou de l'alerte. Validez les timestamps et ignorez les lignes qui ne passent pas les règles de parsing.

Exemple C — Demander au modèle de produire une CLI contrôlée par JSON

Role: Assistant that outputs CLI command definitions in JSON.
Context: Shell functions and options in [SHELL_TYPE].
Task: For each command produce {"cmd":"string","flags":[{"name":"-f","type":"boolean","desc":"string"}],"example":"string"}.
Constraints:
- Pas de texte additionnel.
Output format:
{"commands":[{"cmd":"string","flags":[{"name":"string","type":"string","desc":"string"}],"example":"string"}]}

Note d'intégration : utilisez le JSON pour générer des pages d'aide ou des specs d'auto-complétion. Si le modèle retourne du JSON invalide, réessayez avec le même prompt mais une température plus basse.

Tableau comparatif : styles de prompt et résultats

Style de prompt Quand l'utiliser Format de sortie Avantages Inconvénients
Libre Exploration, brainstorming Texte brut Itération rapide Non déterministe ; difficile à parser
Protégé par délimiteurs Analyse de petits snippets Texte délimité + JSON Réduit l'hallucination Nécessite des marqueurs stricts
Imposé par schéma Intégrations en production JSON selon un schéma Déterministe ; validation facile Moins flexible ; prompts plus longs

Erreurs courantes → Pourquoi elles échouent → Correction

  • Erreur : Demander la « meilleure » refactorisation du code. Pourquoi : « Meilleur » est subjectif et dépend des contraintes. Correction : Définir des métriques mesurables comme budget temps d'exécution ou mémoire.
  • Erreur : Pas de schéma de sortie. Pourquoi : Les parseurs échouent sur du texte incohérent. Correction : Exiger du JSON et valider avant usage en aval.
  • Erreur : Stocker les prompts dans des apps de notes. Pourquoi : Les prompts dérivent et se perdent. Correction : Versionner les prompts dans un dépôt ou une bibliothèque de prompts avec contrôle d'accès.
  • Erreur : S'appuyer sur un seul réglage de température. Pourquoi : Différentes tâches demandent des degrés de randomness différents. Correction : Paramétrer la température et le seed dans la requête.

Ce que le prompt engineering ne résout pas

Le prompt engineering ne peut pas corriger des données d'entraînement de mauvaise qualité ni éliminer complètement les hallucinations des modèles. Il réduit les erreurs de surface, mais ne garantit pas l'exactitude factuelle. Pour des faits à enjeux élevés, combinez les prompts avec une génération augmentée par récupération (RAG) et des étapes de vérification.

De plus, le prompt engineering ne remplace pas les tests. Vous devez toujours avoir des tests unitaires, d'intégration et de contrat pour attraper les cas limites que les modèles manquent.

Mise à l'échelle : stocker, versionner, partager

Quand vous avez beaucoup de prompts, traitez-les comme du code. Mettez les prompts dans le même repo, ajoutez des tests et versionnez-les. Stockez les prompts canoniques dans une bibliothèque gérée pour que les ingénieurs puissent les récupérer de façon fiable.

Copy&Prompt est une bibliothèque de prompts qui vous permet d'optimiser, stocker, partager et copier des prompts en un clic sur ChatGPT, Claude, Gemini, DeepSeek, Lovable et Midjourney.

Étapes pratiques pour mettre les prompts à l'échelle :

  1. Stocker les prompts en fichiers .prompt avec des métadonnées : modèle, date_validée, propriétaire, tests.
  2. Écrire un petit harness qui exécute chaque prompt sur des entrées d'exemple et affirme la validité du schéma.
  3. Ajouter des checks CI qui échouent en cas de dérive de schéma ou de dépassement de tokens au-delà de seuils.
  4. Exposer les prompts via une API interne pour la découvrabilité et l'audit.

Questions fréquemment posées

Quelle est la manière la plus simple d'obtenir un JSON déterministe depuis un modèle ?

Demandez uniquement du JSON, incluez un schéma strict dans le prompt et réglez la température à 0 ou proche de zéro. Ajoutez une étape de validation dans votre pipeline. Si le modèle retourne du JSON invalide, réessayez avec l'instruction forcée « return valid JSON » ou une étape automatique de réparation qui supprime les tokens non-JSON.

Comment tester les prompts automatiquement ?

Écrivez des tests unitaires qui appellent le bac à sable LLM avec des entrées fixes et vérifient que la réponse parsée correspond au schéma JSON. Utilisez des réponses enregistrées (fichiers golden) pour des tests hors ligne. Faites échouer le CI lorsque les sorties changent de manière inattendue.

Quels modèles sont les meilleurs pour une sortie structurée ?

Privilégiez les modèles avec un rôle system documenté et un comportement stable. Par exemple, le rôle system de GPT-4 et le rôle assistant d'Anthropic Claude sont documentés. Choisissez un modèle avec une fenêtre de contexte suffisante pour votre tâche et estampillez le comportement du modèle dans les tests.

Comment gérer la dérive des prompts au fil du temps ?

Versionnez chaque prompt. Enregistrez les sorties du modèle et relancez périodiquement les tests golden. Si les sorties changent après une mise à jour du modèle, créez une variante revue du prompt, enregistrez le changement et migrez avec un plan de déploiement.

Quand devrais-je utiliser la génération augmentée par récupération (RAG) ?

Utilisez la RAG lorsque vous avez besoin de faits à jour ou que vous devez citer des documents internes. La RAG réduit les hallucinations en fournissant du texte source. Exigez toujours du modèle qu'il retourne des citations structurées et validez ces références de manière programmatique.


Points clés et étape suivante

  • Traitez les prompts comme du code : versionnez-les, testez-les et stockez-les dans un dépôt ou une bibliothèque de prompts.
  • Privilégiez une sortie imposée par schéma (JSON) pour toute pipeline automatisée. Validez chaque réponse.
  • Utilisez des rôles explicites, des marqueurs stricts et des contraintes pour réduire les hallucinations et la dérive.
  • Paramétrez les réglages du modèle (température, max tokens) et testez sur plusieurs modèles si nécessaire.
  • Pour mettre à l'échelle, ajoutez des checks CI, une responsabilité et la découvrabilité des actifs de prompts.

Étape suivante : choisissez une pipeline critique qui dépend de texte libre, convertissez-la en prompts avec schéma et ajoutez un test CI qui valide les sorties.

Une fois que vous aurez quinze prompts qui fonctionnent réellement, le problème change : la récupération et la réutilisation deviennent le goulot d'étranglement.

Améliorez vos résultats IA dès aujourd'hui — Créez de meilleurs prompts et obtenez des réponses plus précises avec Copy&Prompt. https://copyandprompt.com/

Copy&Prompt →