Les prompts
Expliquer par des expériences comparatives la structure d'un prompt, le few-shot, la réflexion avant la réponse, la sortie JSON, et enfin construire un petit outil pour tester des prompts en série.
Leçons
- 01À quoi ressemble un bon prompt
Une même demande d'aide confuse d'un utilisateur, traitée une fois avec un prompt écrit à la va-vite et une fois avec un prompt bien structuré, et les résultats comparés section par section. Le rôle de chaque bloc – identité, tâche, contexte, exigences, format de sortie.
35 minutes · Débutant - 02Donner des exemples : le few-shot
Classer des messages d'utilisateurs en quatre catégories – sans exemple, 18 bonnes réponses ; avec 4 exemples, 20. Comment choisir les exemples, combien en mettre, et quels effets secondaires ils entraînent.
30 minutes · Débutant - 03Faire réfléchir le modèle avant de répondre
6 questions pièges, 5 essais chacune – réponse directe, 21 justes ; raisonnement écrit d'abord, 29 justes ; mode réflexion activé, toutes justes. Pourquoi réfléchir avant de répondre aide, et combien cela coûte.
35 minutes · Débutant - 04Faire produire du JSON au modèle
Quand la réponse du modèle doit être traitée par un programme, il faut un JSON au format fiable. Le mode JSON, la validation avec Pydantic et la correction par le modèle en cas d'échec, puis l'appel d'outils en mode strict pour obtenir une sortie structurée conforme au schéma.
40 minutes · Débutant - 05Les prompts aussi se testent
Mettre les prompts dans des fichiers, préparer 30 cas de test, exécuter chacun 3 fois et comparer deux versions de prompt avec des données. On verra aussi que les résultats des tests doivent eux-mêmes être vérifiés – parfois, ce n'est pas le modèle qui se trompe, mais l'étiquette.
40 minutes · Débutant
Chaque leçon de ce module est une série d'expériences comparatives : une même tâche, deux formulations, et les résultats côte à côte. Vous verrez un prompt écrit à la va-vite pousser le modèle à présenter une supposition de l'utilisateur comme un fait, 4 exemples rendre toutes les classifications justes, et une simple phrase « écris d'abord ton raisonnement » faire passer les erreurs sur une question piège de 9 à 1.
Il n'y a pas de « modèle universel » dans ce cours. Un prompt est bon ou mauvais selon les résultats qu'il donne sur votre tâche ; c'est pourquoi la dernière leçon vous apprend à tester des prompts en série.
Pourquoi cet ordre
La leçon 1 explique de quels blocs se compose un prompt : c'est la base. Les leçons 2 et 3 présentent chacune la technique la plus utilisée par-dessus cette base : donner des exemples, et faire réfléchir le modèle avant qu'il réponde. La leçon 4 passe au traitement par programme et montre comment obtenir un JSON fiable, indispensable pour les applications et les agents qui suivent. La leçon 5 place tout cela dans le cadre des « tests » : avant et après une modification de prompt, on parle avec des données.
Vous avez terminé quand
- face à un prompt d'une phrase, vous savez trouver ses défauts et le réécrire selon identité, tâche, exigences, format et délimiteurs.
- vous savez choisir de bons exemples few-shot pour une tâche de classification et dire pourquoi vous les avez choisis.
- vous savez juger si une tâche demande le mode réflexion, et étayer ce jugement par des données.
- vous savez écrire le code « mode JSON + validation Pydantic + nouvelle tentative en cas d'échec » pour extraire de façon fiable des données structurées d'un texte.
- après avoir modifié un prompt, vous savez montrer avec un jeu de cas de test en quoi la nouvelle version est meilleure ou moins bonne que l'ancienne.
Le code de ce module
Le code et les sorties des programmes sont reproduits tels qu’ils ont tourné : commentaires et sorties sont donc en chinois.
- code/02-prompting/few_shot.py
- code/02-prompting/json_output.py
- code/02-prompting/json_strict.py
- code/02-prompting/prompt_structure.py
- code/02-prompting/prompt_test.py
- code/02-prompting/prompts/cases.jsonl
- code/02-prompting/prompts/classify_v1.txt
- code/02-prompting/prompts/classify_v2.txt
- code/02-prompting/reasoning.py
- code/02-prompting/results.jsonl