L'Art du Prompt Engineering
Source : L’art du prompting selon Lee Boonstra — Tech Lead chez Google
Quick Win
Section intitulée « Quick Win »Décris le prompt engineering sous forme de haiku en français.La Structure d’un Prompt Parfait
Section intitulée « La Structure d’un Prompt Parfait »Un prompt n’est pas une simple phrase. Pour structurer vos prompts, on va utiliser des techniques de prompting — des frameworks mnémoniques. La méthode ACTIF de Matthieu Corthesy (actif.numedu.org) propose un cadre simple et efficace :
| Élément | Description | Exemple |
|---|---|---|
| Action | L’objectif, ce que vous voulez | ”Rédige un article de blog” |
| Contexte | Les informations de fond | ”Mon entreprise vend des chaussures éco-responsables” |
| Tonalité | Le style, l’ambiance | ”Ton professionnel mais accessible” |
| Identité | Le rôle de l’IA | ”Tu es un expert en marketing digital” |
| Format | La structure de sortie | ”Article de 500 mots avec 3 sections” |
Exemple complet :
[Identité] Tu es un expert en marketing digital spécialisé dans l'éco-responsabilité.[Action] Rédige un article de blog pour promouvoir notre nouvelle collection.[Contexte] Mon entreprise vend des chaussures fabriquées à partir de matériaux recyclés.[Tonalité] Utilise un ton professionnel mais accessible, engageant.[Format] Article de 500 mots avec introduction, 3 bénéfices clés, et conclusion.Ressource : Guide complet de la méthode ACTIF
Les bonnes pratiques
Section intitulée « Les bonnes pratiques »- Le prompt doit être clair et précis : le choix des mots est essentiel
- Le prompt inclut un contexte, des informations de fond pertinentes
- Le prompt définit la sortie attendue, via un template par exemple
- Le prompt définit la profondeur de raisonnement et de réflexion
Un guide complet pour approfondir le sujet : promptingguide.ai
Les types de prompt
Section intitulée « Les types de prompt »Il existe deux types de prompts : le System Prompt et le User Prompt.
- Le System Prompt définit le rôle du modèle et les règles à respecter. C’est l’instruction invisible, définie par le développeur, qui conditionne le modèle avant même que l’utilisateur ne parle.
- Le User Prompt définit la demande de l’utilisateur — ce que vous tapez dans le chat.
Pour des exemples de system prompts :
Au final, les deux prompts sont concaténés pour former le prompt final :
[CONTEXTE TOTAL = Limite technique (ex: 128K tokens)]│├── 📜 SYSTEM PROMPT│ (Instructions permanentes : rôle, style, règles)│├── ❓ USER PROMPT│ (Requête actuelle)│└── 💬 OUTPUT (Réponse générée en cours, token par token)La Contrainte Critique : La Fenêtre de Contexte
Section intitulée « La Contrainte Critique : La Fenêtre de Contexte »Une limite de “capacité d’attention”
Section intitulée « Une limite de “capacité d’attention” »Imaginez la Context Window comme la “mémoire vive” du modèle à un instant T : le nombre maximum d’informations (mesuré en tokens) que l’IA peut traiter en une seule fois.
Ce “budget” de tokens est partagé entre trois éléments :
- Votre entrée (Prompt) : Ce que vous demandez
- La sortie (Output) : Ce que l’IA répond
- L’historique : Tous les messages précédents de la conversation
L’évolution des modèles
Section intitulée « L’évolution des modèles »La taille de cette fenêtre varie selon les modèles. Par exemple, GPT-4 Turbo possède une fenêtre de 128K tokens — l’équivalent d’un livre de 300 pages (votre prompt + l’historique + sa réponse) traité comme un seul bloc cohérent.
Pourquoi cette notion est cruciale ?
Section intitulée « Pourquoi cette notion est cruciale ? »- Contexte trop court : L’IA “oublie” le début de la conversation → perte d’informations
- Contexte trop long : Le modèle se noie, confond les instructions contradictoires (“bruit”), et son adhérence diminue
Le problème du contexte trop court
Section intitulée « Le problème du contexte trop court »Si ta fenêtre est petite (disons 4K tokens), au bout de quelques échanges, le modèle doit “éjecter” les premiers messages pour faire de la place.
Exemple concret : Tu commences par “Je suis végétarien et allergique aux noix”. Après 10 échanges, tu demandes “Qu’est-ce que je pourrais cuisiner ce soir ?” → L’IA te propose un poulet aux noix de cajou.
Le problème du contexte trop long (le plus subtil)
Section intitulée « Le problème du contexte trop long (le plus subtil) »Même avec une grande fenêtre (128K tokens), tout n’est pas rose. Imagine qu’on te donne un livre de 300 pages à lire, puis qu’on te pose une question sur un détail de la page 47.
Pour le modèle :
- Le “bruit” : plus il y a d’informations, plus certaines peuvent se contredire ou diluer l’importance de tes instructions principales
- L’adhérence qui diminue : le modèle “perd le fil” et accorde moins d’attention à tes consignes initiales noyées dans la masse
L’adhérence au prompt
Section intitulée « L’adhérence au prompt »Les 3 signes d’une mauvaise adhérence
Section intitulée « Les 3 signes d’une mauvaise adhérence »1. Le Hors-Sujet (Incompréhension globale) — L’IA n’a pas compris la nature même de la tâche.
- ❌ La réponse est totalement à côté de la plaque
- 💡 Vous demandez de traduire un texte, et le modèle vous en fait un résumé
2. L’Oubli de Contrainte (Dérapage contextuel) — L’IA comprend la tâche principale mais ignore les détails techniques.
- ❌ Le fond est bon, mais la forme est fausse
- 💡 Vous demandez du code en TypeScript, et le modèle vous répond en Python
3. Le “Radotage” ou l’Hallucination (Incohérence interne) — L’IA tourne en rond ou invente des faits.
- ❌ Elle répète une erreur que vous venez de signaler
- 💡 Vous demandez de corriger un bug spécifique, et l’IA vous renvoie le code avec exactement le même bug
Le Mode Discussion : L’illusion de la mémoire
Section intitulée « Le Mode Discussion : L’illusion de la mémoire »Nous sommes habitués à discuter avec ChatGPT comme avec un humain. Mais attention, c’est une illusion technique.
Comment ça marche vraiment ?
L’IA n’a pas de mémoire persistante d’une phrase à l’autre. À chaque nouvelle question, le système renvoie tout l’historique de la conversation + votre nouvelle question. C’est comme si, pour chaque réplique d’un film, on obligeait l’acteur à relire tout le scénario depuis le début avant de parler.
Le piège de la longueur
| Situation | Conséquence |
|---|---|
| Contexte trop court | Le système coupe le début de la conversation. L’IA oublie les consignes initiales. |
| Contexte trop long | L’IA se noie dans trop d’informations, d’erreurs passées ou de contradictions → hallucinations. |
Quand utiliser le mode discussion ?
Malgré ses défauts, la conversation est excellente pour deux cas précis :
-
La “Recherche Google” (Tâche simple) — Je veux une réponse factuelle et rapide. L’historique n’a pas d’importance.
- Exemple : “Quel est le débit du Rhône ?” → Réponse immédiate, fin de la discussion.
-
L’Exploration (Découverte) — Je veux dégrossir un sujet inconnu. L’historique est utile car l’IA se souvient du contexte général.
- Exemple : “Je connais Python, explique-moi les différences avec Scala.” Puis : “Et pour les bases de données ?” (L’IA sait qu’on parle toujours de Scala vs Python).
L’édition sur place (mode document)
Section intitulée « L’édition sur place (mode document) »Exemple 1 — Email pour une augmentation :
Version 1 du prompt : Écris-moi un email professionnel pour demander une augmentation.
Itération 1 : Le ton est trop agressif → Ajouter "sur un ton diplomate"
Itération 2 : Il manque du contexte → Ajouter "Je suis dans l'entreprise depuis 3 ans, j'ai géré 2 projets majeurs"
Itération 3 : Préciser le format → Ajouter "Maximum 150 mots, avec une phrase d'accroche percutante"
Prompt final : Écris-moi un email professionnel de maximum 150 mots, sur un ton diplomate, pour demander une augmentation. Contexte : je suis dans l'entreprise depuis 3 ans et j'ai géré 2 projets majeurs. Commence par une phrase d'accroche percutante.Exemple 2 — Microservice Go :
Génère le code source complet d'un microservice Go.
Le microservice doit :1. Gérer les alertes client (id_client, niveau_priorite, date_reception...)2. Utiliser PostgreSQL pour la persistance3. Utiliser Kafka pour la messagerie asynchrone4. Intégrer Redis pour le cache5. Implémenter une authentification OIDC6. Exposer une API RESTful (CRUD)7. Suivre une architecture en couches (handler, service, repository, model)
Itérations possibles : "Utilise le framework Gin plutôt que Echo" "Ajoute un middleware de logging" "Renomme la variable alerteClient en clientAlert"Pourquoi cette approche est puissante ?
| Avantage | Explication |
|---|---|
| Reproductibilité | Tu peux réutiliser ton prompt perfectionné pour des besoins similaires |
| Partage | Tu peux le transmettre à des collègues comme un “template” |
| Variabilisation | Tu peux créer des “trous” à remplir : [NOM_PROJET], [LANGAGE], etc. |
| Meilleure adhérence | L’IA a tout le contexte d’un coup, pas de risque d’oubli |
Le multi-fenêtres (approche modulaire)
Section intitulée « Le multi-fenêtres (approche modulaire) »Exemple 1 — Organiser un voyage :
| Chat | Type | Objectif |
|---|---|---|
| Chat 1 | Exploration | Définir les destinations possibles selon mon budget |
| Chat 2 | Exploration | Rechercher les meilleures périodes pour partir |
| Chat 3 | Exploration | Comparer les options de transport |
| Chat 4 | Rédaction | Créer mon itinéraire jour par jour |
| Chat 5 | Rédaction | Rédiger ma checklist de bagages |
| Chat 6 | Rédaction | Écrire les emails de réservation |
Comment ça fonctionne : tu demandes une synthèse dans le Chat 1, puis tu la colles dans le Chat 4 pour que l’IA construise l’itinéraire avec ces informations.
Exemple 2 — Créer un microservice :
| Chat | Type | Objectif |
|---|---|---|
| Chat 1 | Exploration | Besoins clients et fonctionnalités attendues |
| Chat 2 | Exploration | Technologies et dépendances |
| Chat 3 | Exploration | Architecture logicielle et technique |
| Chat 4 | Exploration | Rédaction de prompts réutilisables |
| Chat 5 | Rédaction | Contrat de service OpenAPI |
| Chat 6 | Rédaction | Code source de la librairie Go |
| Chat 7 | Rédaction | Code source du microservice HTTP |
| Chat 8 | Rédaction | Tests unitaires |
| Chat 9 | Rédaction | Tests d’intégration |
| Chat 10 | Rédaction | Pipeline CI/CD |
┌─────────────┐ Synthèse ┌─────────────┐│ Chat 1 │ ──────────────► │ Chat 5 ││ Exploration │ "Voici les │ Rédaction ││ (besoins) │ besoins..." │ (OpenAPI) │└─────────────┘ └─────────────┘
┌─────────────┐ Code source ┌─────────────┐│ Chat 7 │ ──────────────► │ Chat 8 ││ Rédaction │ "Voici le │ Rédaction ││ (code) │ code à tester" │ (tests) │└─────────────┘ └─────────────┘En pratique :
- Dans les chats d’exploration → tu demandes des synthèses à copier ailleurs
- Dans les chats de rédaction → tu colles le contexte nécessaire (code, specs, décisions)
| Avantages | Limites actuelles |
|---|---|
| Pas de mélange entre les contextes | Beaucoup d’onglets à gérer manuellement |
| Chaque chat reste focalisé | Copier-coller entre fenêtres = fastidieux |
| Idéal pour les projets complexes | Obtenir des formats précis (JSON, YAML) reste difficile |
| Approche méthodique et structurée | Faire respecter des normes de code demande de l’insistance |