Contrôler la sortie du modèle
Mis à jour le 30 juillet 2026
Générer du texte est une chose ; obtenir exactement le texte dont votre application a besoin en est une autre. Deux techniques permettent de contrôler précisément les réponses de Claude, chacune agissant sur une extrémité : le pré-remplissage de messages assistant décide comment la réponse commence, les séquences d’arrêt décident où elle s’arrête. Séparément, elles orientent ; combinées — ce sera l’objet de la prochaine leçon —, elles verrouillent.
Pré-remplissage de messages assistant
La technique exploite une propriété de l’API que nous connaissons déjà : l’historique de conversation est déclaratif — vous écrivez les messages que vous voulez, y compris ceux de l’assistant. En fournissant le début de la réponse de Claude comme dernier message, vous le placez devant un fait accompli : il voit ce début et le continue naturellement, comme s’il l’avait écrit lui-même.
Exemple
Si vous demandez « Le thé ou le café est-il meilleur au petit-déjeuner ? », Claude produira une réponse équilibrée, pesant les mérites des deux — c’est son comportement par défaut sur les questions d’opinion. Ajoutez maintenant un message assistant pré-rempli :
messages = []
add_user_message(messages, "Le the ou le café est-il meilleur au petit-déjeuner ?")
add_assistant_message(messages, "Le café est meilleur car")
answer = chat(messages)
Claude continue à partir de « Le café est meilleur car » et construit un argumentaire en faveur du café — l’équilibre a disparu, remplacé par la direction que vous avez imposée. Trois mots ont suffi à orienter toute la réponse. La technique va bien au-delà de ce jeu d’opinion : imposer un format d’ouverture, forcer une langue, sauter les préambules (« Voici ma réponse : ») — tout ce qui se joue dans les premiers mots d’une réponse se contrôle par pré-remplissage.
Séquences d’arrêt
À l’autre bout, les séquences d’arrêt forcent Claude à terminer sa réponse dès qu’il génère une chaîne de caractères spécifique. Vous fournissez la liste des chaînes interdites ; à l’instant où l’une d’elles apparaît dans la génération, l’API coupe — la séquence elle-même n’est pas incluse dans la sortie.
add_user_message(messages, "Compte de 1 a 10")
answer = chat(messages, stop_sequences=["5"])
Résultat : "1, 2, 3, 4, " — Claude s’arrête juste avant d’inclure le « 5 ». Regardez la fin de la chaîne : la virgule et l’espace y figurent encore, car la coupe tombe au caractère près, exactement devant la séquence détectée. Pour un résultat plus propre, affinez la séquence : stop_sequences=[", 5"] donnera "1, 2, 3, 4" — le délimiteur est absorbé dans la séquence d’arrêt. Ce détail dit une règle générale : choisissez la séquence en pensant à l’état exact dans lequel elle laisse la sortie.
En pratique, les séquences d’arrêt servent à limiter la longueur des listes, à s’arrêter net sur un marqueur ou un délimiteur — la fermeture d’un bloc, une balise de fin —, à garantir des formats de sortie cohérents et, plus prosaïquement, à empêcher les réponses de s’étendre au-delà de l’utile : la génération coupée est aussi de la latence et des tokens économisés.
La leçon suivante combine les deux techniques en recette d’extraction : ouvrir un bloc de code par pré-remplissage, le refermer par séquence d’arrêt — et il ne reste que la donnée.
Points clés à retenir
- Deux leviers complémentaires : le pré-remplissage contrôle le début de la réponse, les stop sequences contrôlent la fin
- Pré-remplir = écrire le début du message assistant ; Claude le continue comme s’il l’avait écrit
- Une séquence d’arrêt coupe la génération au caractère près, juste avant la séquence — qui n’apparaît pas dans la sortie
- Choisissez la séquence en pensant à l’état final de la chaîne (
", 5"plutôt que"5"pour une liste propre) - Combinées, les deux techniques encadrent la sortie de bout en bout — la recette d’extraction de la prochaine leçon