Prompt Engineering pour Débutants
Principe fondamental
Section intitulée « Principe fondamental »Un LLM ne lit pas dans vos pensées. Plus votre prompt est clair et précis, meilleure sera la réponse.
Les 4 composants d’un bon prompt
Section intitulée « Les 4 composants d’un bon prompt »1. Le Contexte
Section intitulée « 1. Le Contexte »Donnez les informations nécessaires pour comprendre votre situation.
| Mauvais | Bon |
|---|---|
| ”Corrige ce bug" | "API REST en Node.js/Express. Erreur 500 sur /users quand…" |
| "Explique Docker" | "Je connais les VMs mais pas Docker. Explique-moi la différence…“ |
2. L’Instruction
Section intitulée « 2. L’Instruction »Soyez spécifique sur ce que vous voulez.
| Vague | Précis |
|---|---|
| ”Aide-moi avec ce code" | "Refactorise cette fonction pour améliorer la lisibilité" |
| "Optimise ce code" | "Optimise ce code pour réduire la complexité temporelle” |
3. Le Format
Section intitulée « 3. Le Format »Indiquez comment vous voulez la réponse : bullet points, tableau comparatif, code commenté, limité à N lignes…
4. Les Exemples (Few-shot)
Section intitulée « 4. Les Exemples (Few-shot) »Montrez ce que vous attendez :
"Génère des messages de commit conventionnels.
Exemples :- Ajout d'un bouton → feat(ui): add submit button to login form- Correction d'un bug → fix(auth): resolve token expiration issue
Maintenant génère pour : Ajout de la validation email"Techniques essentielles
Section intitulée « Techniques essentielles »Chain-of-Thought
Section intitulée « Chain-of-Thought »Demandez de raisonner étape par étape pour les problèmes complexes.
"Mon conteneur Docker ne démarre pas.1. Analyse les causes possibles2. Pour chaque cause, indique comment la diagnostiquer3. Propose des solutions pour chaque diagnostic"Role Prompting
Section intitulée « Role Prompting »Assignez un rôle pour orienter les réponses.
"Tu es un architecte logiciel senior avec 15 ans d'expérienceen systèmes distribués. Analyse cette architecture et identifieles points faibles en production."| Rôle | Effet |
|---|---|
| ”Expert en sécurité” | Focus vulnérabilités |
| ”Code reviewer strict” | Plus critique et détaillé |
| ”Technical writer” | Documentation claire |
Contraintes explicites
Section intitulée « Contraintes explicites »Ajoutez des contraintes pour affiner la réponse.
"Écris une fonction Python qui valide une adresse email.
Contraintes :- Pas de regex complexe- Maximum 10 lignes- Gère les erreurs avec des exceptions- Compatible Python 3.9+"Exemples pratiques
Section intitulée « Exemples pratiques »Débugger du code
Section intitulée « Débugger du code »**Environnement :** Node.js 20, Express**Code :** [coller le code]**Erreur :** [message d'erreur complet]**Déjà essayé :** vérifier les imports, redémarrer le serveur**Question :** Quelle est la cause probable et comment corriger ?Générer du code
Section intitulée « Générer du code »"Écris une fonction TypeScript qui trie un tableau d'objets Userpar date d'inscription (createdAt: Date).
Interface : { id: string, name: string, createdAt: Date }
Exigences :- Tri décroissant (plus récent en premier)- Fonction pure- Typage strict"Erreurs courantes
Section intitulée « Erreurs courantes »| Erreur | Correction |
|---|---|
| Prompt trop vague (“aide-moi”) | Précisez le contexte, la techno, le résultat attendu |
| Trop d’infos inutiles avant la question | Allez droit au but, donnez le contexte pertinent |
| Attendre que le LLM devine (“optimise”) | Précisez l’axe d’optimisation (vitesse ? mémoire ? lisibilité ?) |
| Copier-coller sans comprendre | Demandez d’expliquer avant d’exécuter |