Un gabarit de prompt bien conçu a : une section de prompt système (constante — définit le comportement, les règles et le format de sortie), une section de contexte (variable — remplie avec des documents récupérés, l'historique de l'utilisateur ou d'autres données), et une section d'entrée utilisateur (variable — la demande réelle de l'utilisateur). Le prompt système reste le même à travers toutes les requêtes. Le contexte change en fonction de ce qui est pertinent. L'entrée utilisateur change à chaque fois.
En production, les gabarits de prompt nécessitent : le contrôle de version (suivre les changements, revenir en arrière si la qualité baisse), les tests A/B (comparer les variations de gabarits), la validation des variables (s'assurer que les champs requis sont remplis, que les entrées sont dans les limites), et le parsing de sortie (extraire des données structurées des réponses du modèle). Des frameworks comme LangChain, Promptfoo et Braintrust fournissent des outils pour la gestion de gabarits, mais même un système simple de fichiers de gabarits + contrôle de version aide beaucoup.
Erreurs courantes : des gabarits trop complexes qui essaient de gérer tous les cas (mieux vaut avoir plusieurs gabarits ciblés), des gabarits qui incluent du contexte inutile (gaspillage de tokens et confusion du modèle), coder en dur des informations qui changent (utilise des variables), et ne pas tester les gabarits contre des cas limites (entrées inhabituelles, entrées adverses, champs vides). Les meilleurs gabarits sont aussi simples que possible tout en produisant de façon fiable la sortie dont tu as besoin.