Optimiser vos Prompts avec le Prompt Engineering
Mise à jour :
Pour rappel, ce guide s’inscrit dans notre série sur la création d’applications intelligentes en Python. Il pose les fondements du prompt engineering, une compétence essentielle pour tout développeur travaillant avec les grands modèles de langage (LLM).
Dans les prochains guides, nous mettrons ces principes en pratique pour construire un chatbot avancé basé sur la Retrieval-Augmented Generation (RAG). Cette approche combine la puissance des LLMs avec des bases de connaissances personnalisées pour créer des assistants intelligents capables de répondre avec précision et contexte.
Mais avant de plonger dans le code, maîtrisons d’abord l’art et la science des prompts efficaces - la clé pour transformer un modèle générique en un outil parfaitement adapté à vos besoins spécifiques.
Fondamentaux du prompt engineering
Le prompt engineering (ou ingénierie des invites) est l’art de formuler des requêtes optimisées pour obtenir les résultats les plus pertinents et contrôlés d’un modèle d’intelligence artificielle, comme GPT. Comprendre ses fondations, c’est poser les bases d’un dialogue productif avec les IA modernes.
Qu’est-ce qu’un prompt ?
Un prompt est tout simplement le texte que vous envoyez à un modèle d’IA pour obtenir une réponse. Cela peut aller d’une simple question à une instruction complexe combinant contexte, format de sortie, style et rôles.
Exemple simple :"Quels sont les pays limitrophes de la France ?"
Exemple plus structuré :"Agis comme un professeur de géographie. Fais une liste numérotée des pays limitrophes de la France avec une brève description de chacun."
Pourquoi l’engineering est-il nécessaire ?
Parce qu’un prompt mal rédigé produit souvent des résultats vagues, incorrects, ou hors sujet. Les grands modèles de langage sont puissants, mais aussi sensibles à la formulation :
- Trop court : la réponse risque d’être imprécise
- Trop flou : l’IA doit deviner vos intentions (et ce n’est pas une voyante)
- Trop chargé : il y a un risque de confusion ou de dépassement de contexte
Contextes et rôles : prompts basés sur rôle, style, tâche
L’art du prompt engineering ne se limite pas à formuler des questions claires. Il s’agit aussi de créer le bon contexte pour orienter le modèle vers le type de réponse souhaité. En définissant un rôle, un style, ou une tâche spécifique, vous transformez une IA généraliste en assistant spécialisé.
Prompts basés sur rôle (Persona)
Attribuer un rôle ou une personnalité au modèle améliore significativement la cohérence et la pertinence des réponses. Cette technique, appelée role prompting ou persona prompting, consiste à demander à l’IA d’adopter l’expertise et le point de vue d’un professionnel spécialisé.
Exemples de rôles efficaces :
Rôle technique :"Tu es un architecte logiciel senior avec 10 ans d'expérience en microservices. Analyse cette architecture et propose des améliorations."
Rôle créatif :"Tu es un rédacteur publicitaire spécialisé dans le marketing digital. Crée un slogan accrocheur pour cette startup de livraison écologique."
Rôle pédagogique :"Tu es un professeur de mathématiques qui explique les concepts complexes avec des analogies simples. Explique les dérivées à un élève de terminale."
Avantages du role prompting :
- Expertise contextuelle : le modèle adapte son vocabulaire et ses références
- Cohérence tonale : maintien d’un style professionnel approprié
- Pertinence accrue : réponses alignées sur les attentes du domaine
Prompts basés sur style et ton
Le style et le ton influencent directement la façon dont l’information est présentée. Selon votre audience et vos objectifs, vous pouvez demander des réponses formelles, décontractées, techniques, ou vulgarisées.
Variations de style pour la même information :
Style académique :"Rédigez une analyse formelle des implications économiques du télétravail, avec références et structure argumentée."
Style décontracté :"Explique-moi les avantages et inconvénients du télétravail comme si on discutait autour d'un café."
Style technique :"Fournissez une évaluation détaillée des métriques de productivité en télétravail, avec données quantitatives."
Style narratif :"Raconte l'évolution du télétravail depuis 2020 comme une histoire avec ses rebondissements et ses conséquences."
Modifiateurs de ton utiles :
- Pédagogique : “Explique simplement”, “comme à un débutant”
- Professionnel : “En respectant les codes de l’entreprise”
- Créatif : “Avec originalité”, “de manière innovante”
- Pragmatique : “Concrètement”, “avec des exemples pratiques”
Prompts basés sur tâche spécifique
Définir explicitement la tâche à accomplir cadre l’intervention du modèle et améliore la qualité du résultat. Cette approche est particulièrement efficace pour les workflows répétitifs ou les processus standardisés.
Exemples de tâches structurées :
Tâche d'analyse :"Analysez ce code Python et identifiez : 1) les potentiels bugs, 2) les optimisations possibles, 3) les bonnes pratiques manquantes."
Tâche de synthèse :"Résumez ce rapport de 20 pages en : 1) 3 points clés, 2) 2 recommandations prioritaires, 3) 1 risque majeur."
Tâche de transformation :"Convertissez ces données brutes en : 1) tableau structuré, 2) graphique descriptif, 3) insights métier."
Structure recommandée pour les tâches :
- Verbe d’action clair : analyser, résumer, transformer, comparer
- Périmètre défini : quelles données, quel format, quelles contraintes
- Livrables attendus : format de sortie, éléments obligatoires
- Critères de qualité : précision, exhaustivité, objectivité
Combinaison rôle + style + tâche
La vraie puissance vient de la combinaison de ces trois dimensions. En mêlant rôle, style, et tâche, vous obtenez des prompts extrêmement précis et efficaces.
Prompt combiné efficace :"Tu es un consultant en transformation digitale [RÔLE]Adopte un ton professionnel mais accessible [STYLE]Analyse cette stratégie IT et propose un plan d'action en 5 étapes concrètes avec budget estimatif [TÂCHE]"
Autre exemple :"Tu es un chef de projet agile expérimenté [RÔLE]Utilise un style direct et orienté solution [STYLE]Diagnostique les dysfonctionnements de cette équipe et propose 3 rituels pour améliorer la collaboration [TÂCHE]"
Cette approche combinée garantit des réponses à la fois expertes, appropriées au contexte, et parfaitement cadrées sur vos besoins spécifiques.
Techniques de formulation : zero-shot, one-shot, few-shot
Mais le prompt engineering n’est pas qu’une question de syntaxe. C’est aussi une question de stratégie. Comment formuler vos requêtes pour maximiser la pertinence des réponses ? C’est là qu’entrent en jeu les techniques de shot prompting.
Le shot prompting consiste à fournir des exemples dans le prompt pour orienter la réponse du modèle. On distingue trois approches principales :
-
Zero-shot : sans filet : Le zero-shot prompting consiste à poser une requête sans fournir d’exemple au modèle. On se repose entièrement sur ses capacités générales pour comprendre et répondre.
Prompt :"Écris une courte biographie d’Alan Turing."Avantage : rapide, direct, bon pour des tâches simples.Limite : le modèle peut mal interpréter des consignes floues ou complexes.Astuce : Pour les tâches structurées ou critiques, le zero-shot peut manquer de précision.
-
One-shot : un exemple pour la route :
Ici, on fournit un seul exemple dans le prompt pour orienter la réponse. Cela aide l’IA à comprendre le format, le ton ou la logique attendue.
Prompt :"Exemple :Q : Quelle est la capitale de l’Italie ?R : RomeMaintenant à vous :Q : Quelle est la capitale de l’Espagne ?R :"C’est comme montrer à l’IA comment danser une fois… et espérer qu’elle enchaîne le bon pas.
-
Few-shot : le juste milieu :
On fournit plusieurs exemples, souvent 2 à 5, pour solidifier le pattern.
Prompt :Q : Quelle est la capitale du Japon ?R : TokyoQ : Quelle est la capitale de l’Allemagne ?R : BerlinQ : Quelle est la capitale du Brésil ?R :Idéal pour entraîner le modèle à suivre un style ou une logique particulière (format de résumé, réponses techniques, etc.). Mais attention, chaque exemple grignote du contexte, donc ça ne scale pas à l’infini.
Quand utiliser quoi ?
Type | Idéal pour… | Risques |
---|---|---|
Zero-shot | Tâches simples, réponses génériques | Ambiguïté |
One-shot | Format ou ton particulier | Trop léger |
Few-shot | Structure spécifique, logique complexe | Dépassement du contexte |
Chaîne de pensée (Chain‑of‑Thought)
La chaîne de pensée (Chain‑of‑Thought, ou CoT) est une technique qui encourage les modèles de langage à expliciter les étapes intermédiaires de leur raisonnement avant d’énoncer la réponse finale. Cette approche améliore précision, transparence et fiabilité, surtout pour les tâches complexes.
Principe et mise en œuvre
Les modèles LLM décomposent un problème complexe en sous-étapes logiques exprimées clairement. Il existe deux approches principales :
Zero‑shot CoT : Ajouter des phrases comme “Commençons par raisonner étape par étape” pour déclencher le raisonnement. Simple, mais moins performant.
Few‑shot CoT : Fournir plusieurs exemples formatés en question + raisonnement + réponse. Plus efficace avec des gains de performance jusqu’à +28 % sur certaines tâches mathématiques.
Auxquels on peut ajouter des variantes spécialisées :
- Plan-and-Solve prompting : diviser le problème en sous-tâches, puis résoudre étape par étape
- Contrastive CoT : mélange d’exemples corrects et incorrects pour éviter les erreurs
- Tabular CoT : format structuré pour les conversations longues
Avantages et limites
Points forts : Décomposition logique claire, transparence des résultats, très efficace pour les tâches de raisonnement complexe.
Inconvénients : Coût en tokens élevé (plus cher et lent), risque de biais ou hallucinations dans la chaîne, efficacité variable selon le modèle.
Exemple pratique
Q : Si j'ai 5 billes, j'en donne 3, puis j'en trouve 4, combien en ai‑je ?Raisonnement :‑ J'avais 5 billes.‑ J'en donne 3 → il en reste 2.‑ J'en trouve 4 de plus → total = 2 + 4 = 6.Réponse : 6.
Q : Vous commencez avec 8 euros, dépensez 5, et recevez 10. Combien vous reste-t-il ?Raisonnement :
‑ Je commence avec 8 euros.‑ Je dépense 5 euros → il me reste 8 – 5 = 3 euros.‑ Je reçois 10 euros → total = 3 + 10 = 13 euros.
Réponse : 13 euros.
Cette forme guide le modèle à répondre de manière structurée et logique, tout en anticipant le bon format de sortie.
Catalogues et patterns de prompts réutilisables
Le catalogue de prompt patterns (inspiré du modèle de Vanderbilt University) propose des modèles réutilisables, analogues aux design patterns en génie logiciel, pour structurer efficacement des prompts adaptés à des cas d’usage variés (arXiv ↗). Ces patterns permettent de créer des prompts plus fiables, traçables, et modulaires — particulièrement essentiels dans des contextes réglementés ou d’entreprise (LinkedIn ↗, researchguides.library.vanderbilt.edu ↗).
Principales catégories de patterns
Selon les travaux de Vanderbilt et les synthèses récentes, on distingue six catégories principales :
- Input Semantics : structurer l’entrée (contextes, contraintes, rôles).
- Output Customization : définir format/style de sortie.
- Error Identification : détecter et corriger les erreurs dans la sortie générée.
- Prompt Improvement : affiner les questions, reformuler la demande.
- Interaction : guider une séquence de dialogue ou poser des questions de suivi.
- Context Control : gérer la mémoire conversationnelle ou le contexte client (prompthub.us ↗).
Exemples de prompt patterns utiles
-
Persona Pattern : définir l’IA comme un expert pour faciliter la cohérence stylistique et le ton.
Agis comme un nutritionniste vétéran avec 15 ans d'expérience.Analyse mes rapports de santé suivants et donne-moi des recommandations personnalisées : [données] -
Question Refinement Pattern : l’IA propose une version améliorée de votre question et demande confirmation. Utile pour guider la rigueur des échanges.
À partir de maintenant, chaque fois que je pose une question, propose une version plus précise et complète, puis demande-moi si je souhaite utiliser cette version améliorée.Exemple :Moi : "Comment améliorer mon site web ?"Toi : "Je peux reformuler votre question de manière plus spécifique : 'Quels sont les 3 principaux axes d'amélioration pour optimiser l'expérience utilisateur et le référencement SEO de mon site e-commerce ?' Souhaitez-vous que je réponde à cette version plus détaillée ?" -
Output Automater Pattern : génère automatiquement du code ou des scripts pour automatiser les suggestions. Parfait pour les workflows dev ou DevOps.
Tu es un expert DevOps. Chaque fois que tu suggères une modification de configuration ou une optimisation, génère aussi un script Python ou Bash pour l'automatiser.Exemple : si tu recommandes de configurer un cache Redis, fournis le script d'installation et de configuration correspondant. -
Visualization Generator Pattern : demander une visualisation graphique à partir d’un texte donné.
Transforme les données ou processus que je te décris en diagramme Mermaid ou ASCII.Exemple : si je décris un workflow, génère un diagramme de flux. Si je donne des statistiques, crée un graphique simple en ASCII ou du code pour Matplotlib.
Comment organiser son catalogue personnel
- Identifier les besoins récurrents : traduction, QA, résumé, génération graphique, validation.
- Choisir le pattern adapté dans les catégories ci-dessus.
- Standardiser la structure : objectif + contexte + format + style + exemple si besoin.
- Tester différents patterns combinés : on peut enchaîner Persona + Output Customization + Error Identification, etc.
- Conserver les templates dans une bibliothèque pour réemploi : fichiers JSON, Markdown, ou base de prompts (prompthub.us ↗).
Avantages et limites
Les catalogues de patterns offrent une scalabilité remarquable : chaque nouveau cas d’usage devient simple à paramétrer à partir d’un pattern fiable. Ils garantissent également une robustesse accrue en réduisant les hallucinations et en assurant plus de cohérence entre les différents usages. La traçabilité constitue un autre atout majeur, facilitant l’audit des prompts utilisés et la maintenance du système. Enfin, leur adaptabilité permet de combiner ou modifier chaque pattern selon le contexte métier spécifique.
Cependant, l’utilisation excessive de patterns peut rendre les sorties rigides et peu créatives. Il faut aussi surveiller le coût en tokens car certains patterns ajoutent du texte supplémentaire qui augmente la facture des API. Enfin, les patterns nécessitent une validation et un ajustement réguliers, car l’évolution des modèles peut modifier leur efficacité.
Prompt Engineering appliqué au RAG
Le Retrieval-Augmented Generation (RAG) est une approche qui améliore les réponses des LLMs en les enrichissant avec des informations externes. Cette méthode est particulièrement utile pour créer des assistants capables de répondre à des questions sur des données spécifiques, des documents techniques ou des informations non présentes dans l’entraînement du modèle.
Comprendre le RAG
Un système RAG fonctionne en trois grandes étapes :
- Récupération : recherche d’informations pertinentes dans une base de connaissances
- Contextualization : insertion des informations dans le prompt
- Génération : production d’une réponse basée sur ce contexte enrichi
L’efficacité de chaque étape dépend fortement de la qualité des prompts utilisés.
Optimiser les prompts pour le RAG
La conception de prompts pour les systèmes RAG diffère des prompts classiques. Le modèle doit être guidé pour :
- Interpréter correctement les informations récupérées
- Distinguer ce qui provient du contexte et ce qui relève de ses connaissances générales
- Citer ses sources de manière appropriée
- Gérer les incertitudes ou les contradictions dans les documents
Un prompt RAG efficace définit clairement ces règles de comportement.
Structure d’un prompt RAG efficace
Voici la structure typique d’un prompt RAG, illustrée avec le modèle Mistral :
Vous êtes un assistant expert en [domaine]. Utilisez uniquement les informations fournies dans le contexte ci-dessous pour répondre aux questions. Si la réponse ne se trouve pas dans le contexte, indiquez-le clairement sans inventer d'information.
CONTEXTE:{contexte récupéré}
QUESTION:{question de l'utilisateur}
INSTRUCTIONS:- Répondez de manière concise et précise- Citez explicitement les parties du contexte qui soutiennent votre réponse- Si différentes sources dans le contexte se contredisent, signalez-le- N'utilisez pas vos connaissances préexistantes sur le sujet- Organisez votre réponse de manière logique avec une introduction, un développement et une conclusion
RÉPONSE:
Cette structure guide le modèle Mistral pour qu’il se comporte comme un assistant fiable, précis et transparent.
Adaptation à votre cas d’usage
Ces structures de prompts pour RAG doivent être adaptées selon :
- Le domaine spécifique (médical, juridique, technique…)
- La nature des documents (structurés, texte libre, mixtes…)
- Les attentes de l’utilisateur (réponses détaillées ou concises)
- Les caractéristiques du modèle (Mistral possède certains avantages pour les textes techniques)
Conclusion
Maîtriser le prompt engineering est aujourd’hui une compétence fondamentale pour tout développeur ou créateur d’applications basées sur les LLMs. Ce guide vous a fourni les clés pour passer de simples questions à des instructions structurées et efficaces.
En résumé, retenez ces principes essentiels :
- Clarté et Contexte : Un bon prompt commence par un objectif clair, un rôle défini (persona), un style adapté et une tâche précise. - Exemples Stratégiques : Les techniques comme le few-shot prompting et la chaîne de pensée (CoT) guident le modèle vers des raisonnements plus complexes et des résultats plus fiables. - Modularité et Scalabilité : Les prompt patterns offrent des structures réutilisables pour industrialiser vos développements et garantir leur robustesse. - Spécialisation avec RAG : Appliqué au Retrieval-Augmented Generation, le prompt engineering permet de créer des assistants experts, capables de puiser dans des connaissances spécifiques pour fournir des réponses précises et sourcées.
Le voyage ne s’arrête pas là. La prochaine étape consiste à mettre ces concepts en pratique. Dans notre prochain guide, nous construirons une application RAG complète en Python, en utilisant les techniques de prompt engineering que nous venons d’explorer.