Skip to Content
IAPrompts LLM

Prompts LLM — Techniques & bonnes pratiques

Maîtriser les prompts, c’est multiplier la qualité des réponses sans changer de modèle. Ce guide couvre la structure, les techniques avancées et les pièges courants pour Claude, GPT, Gemini et consorts.

Structure d’un prompt efficace

Un bon prompt suit une structure en 4 blocs. Plus les blocs sont explicites, moins le modèle a à deviner.

BlocRôleExemple
RôleDéfinir l’expertise du modèleTu es un architecte logiciel senior spécialisé en systèmes distribués.
ContexteDonner le backgroundNous construisons un service de file d'attente de messages en Python.
TâcheDécrire l’action attendueGénère le code de base pour un worker utilisant asyncio et RabbitMQ.
Format de sortieContrôler la formeRéponds avec du code commenté suivi d'un tableau récapitulatif des dépendances.

Règle n°1 : un prompt sans rôle produit des réponses génériques. Un prompt avec un rôle produit des réponses ciblées.

Techniques avancées

Few-shot — Donner des exemples

Fournir 2 à 4 exemples d’entrée/sortie avant la requête principale. Le modèle imite le pattern.

Extrait de conversation : Entrée : "Je suis fatigué." Sortie : {"emotion": "négative", "intensite": 0.7} Entrée : "Cette nouvelle fonctionnalité est incroyable !" Sortie : {"emotion": "positive", "intensite": 0.95} Entrée : "Le server est en down." Sortie :

Utiliser le few-shot quand le format de sortie doit être strict (JSON, tableau, liste structurée).

Chain-of-thought — Demander le raisonnement

Forcer le modèle à expliciter sa démarche avant de donner la réponse finale.

Résous ce problème étape par étape. Explique ton raisonnement pour chaque étape avant de donner la réponse finale. Problème : Un train part de Paris à 80 km/h. Un autre part de Lyon (460 km) à 120 km/h dans la direction opposée. Quand se croisent-ils ?

Efficace pour les problèmes de logique, mathématiques ou de débogage. Moins utile pour les tâches créatives ou de résumé.

System prompts — Instructions persistantes

Dans les API (OpenAI, Claude, etc.), le system message définit le comportement global de la session.

# Exemple OpenAI messages = [ { "role": "system", "content": "Tu es un assistant de dialogue. Tu réponds en français. " "Tu cites toujours tes sources quand tu donnes un fait." }, {"role": "user", "content": "Explique-moi le théorème de Pythagore."} ]

Le system prompt persiste dans tout le contexte de la conversation. Il faut le garder concis : un system prompt de plus de 500 mots dilue l’attention du modèle.

Prompt chaining — Chaîner plusieurs appels

Au lieu d’un prompt monstre, découper le travail en étapes qui s’alimentent les unes les autres.

Étape 1 : extraire les entités du texte Étape 2 : vérifier chaque entité contre la base de connaissances Étape 3 : rédiger le résumé avec les résultats de l'étape 2

Chaque étape reçoit la sortie de la précédente. Plus fiable qu’un seul prompt complexe.

Exemples concrets

Génération de code

Rôle : Développeur backend senior Python. Contexte : Projet Flask avec SQLAlchemy et JWT. Tâche : Créer un endpoint POST /register qui valide l'email, hash le mot de passe avec bcrypt, et crée l'utilisateur en base. Format : Code complet avec docstrings, puis explication de 3 points clés en puces. Contraintes : Utiliser Flask 3.x, pas de framework d'auth externe.

Debugging

Rôle : Ingénieur DevOps senior. Contexte : Service Node.js en production sur Kubernetes. Tâche : Analyser le problème suivant et proposer une résolution. Log : 2024-01-15T10:23:45Z ERROR: ECONNREFUSED 127.0.0.1:5432 2024-01-15T10:23:45Z ERROR: Database connection pool exhausted 2024-01-15T10:24:00Z ERROR: Healthcheck failed Format : Cause racine → Solution immédiate → Prévention à long terme.

Refactoring

Rôle : Architecte logiciel. Contexte : Fonction de 300 lignes qui fait tout (lecture DB, transformation, envoi email, logging). Tâche : Proposer une refactoring en 3 fichiers avec une architecture claire. Format : Liste des fichiers créés, snippet de chaque fichier, puis diagramme de responsabilité en tableau.

Documentation

Rôle : Technical writer. Contexte : Bibliothèque Python interne pour gérer les permissions RBAC. Tâche : Écrire la documentation d'installation et d'utilisation pour des développeurs juniors. Format : Sections H2 avec codes d'exemple, tableau des arguments, section FAQ avec 5 questions. Ton : Simple, direct, sans jargon inutile.

Pièges courants

PiègeSymptômeSolution
Prompt trop vagueRéponse large, pas actionableAjouter du contexte, des contraintes, un format de sortie
Surcharge d’instructionsLe modèle omet des instructions secondairesSéparer en plusieurs prompts ou utiliser le prompt chaining
IncongruencesLe modèle ignore une consigne contradictoireRelire : les premières instructions priment souvent
Format non respectéLe JSON contient du markdown ou du texte supplémentairePréciser : Réponds uniquement avec du JSON, sans texte autour.
Hallucination de faitsLe modèle invente des APIs ou des commandesDemander de citer ses sources ou de dire “je ne sais pas”
Longueur excessiveLa réponse est coupée ou la qualité dégradeLimiter la longueur demandée : Réponds en moins de 200 mots.

Bonnes pratiques résumé

  • Spécifier un rôle pour ancrer le ton et l’expertise.
  • Fournir le contexte : le modèle ne sait rien de votre projet sauf ce que vous lui dites.
  • Demander le format explicitement (JSON, tableau, liste, code seul).
  • Donner des exemples (few-shot) pour les formats complexes.
  • Demander le raisonnement (chain-of-thought) pour les problèmes logiques.
  • Utiliser le system prompt pour les règles globales qui ne changent pas.
  • Découper les tâches complexes en chaîne de prompts simples.
  • Relire : aucun prompt ne garantit 100 % de précision. Toujours vérifier les faits.

Tester ses prompts itérativement. Le premier jet est rarement le meilleur.