Chargement

Lorsque vous avez besoin que Claude génère des données structurées comme du JSON, du code Python ou des listes à puces, vous rencontrerez souvent un problème courant : Claude veut être utile et ajouter du texte explicatif autour de votre contenu. Bien que cela soit généralement excellent, parfois vous avez besoin uniquement des données brutes, sans rien d'autre.

Imaginez que vous construisez une application web qui génère des règles AWS EventBridge. Les utilisateurs saisissent une description, cliquent sur générer, et s'attendent à voir du JSON propre qu'ils peuvent immédiatement copier et utiliser. Si Claude renvoie le JSON enveloppé dans des blocs de code markdown avec des en-têtes et des pieds de page explicatifs, les utilisateurs ne peuvent pas simplement cliquer sur « copier tout » - ils devraient sélectionner manuellement uniquement la partie JSON.

Ce schéma apparaît chaque fois que vous générez des données structurées. Claude veut naturellement expliquer son travail, mais dans de nombreux cas, vous voulez uniquement le contenu que vous demandez, et rien d'autre.

Combiner les séquences d'arrêt avec le préremplissage du message assistant

La solution combine deux techniques que nous avons abordées : les séquences d'arrêt et le préremplissage du message assistant. Voici comment cela fonctionne en pratique :

python
messages = []

add_user_message(messages, "Generate a very short event bridge rule as json")
add_assistant_message(messages, "```json")

text = chat(messages, stop_sequences=["```"])

Lorsque vous exécutez ce code, vous récupérez uniquement le contenu JSON sans aucun formatage markdown ni commentaire supplémentaire.

Comment cela fonctionne en arrière-plan

Voici ce qui se passe lorsque Claude traite votre requête :

  1. Claude lit votre message utilisateur et pense « Je dois écrire une règle complète et probablement la décrire »
  2. Il voit le message assistant prérempli et suppose qu'il a déjà commencé à écrire le bloc markdown JSON
  3. Claude pense « Oh, j'ai déjà commencé la partie JSON, donc je dois juste écrire le contenu JSON réel »
  4. Il génère le contenu JSON
  5. Lorsque Claude essaie de fermer le bloc markdown avec ```, il atteint la séquence d'arrêt et la génération s'arrête immédiatement

Le résultat est que vous obtenez tout ce qui se trouve entre le début prérempli et la séquence d'arrêt - exactement le contenu que vous vouliez.

Nettoyer la sortie

Le texte renvoyé peut contenir quelques retours à la ligne supplémentaires, mais vous pouvez facilement nettoyer cela :

python
import json

# Analyser en JSON pour valider et formater
parsed_json = json.loads(text.strip())

Cette technique fonctionne pour tout format de données structurées, pas seulement JSON. Que vous génériez du code Python, des listes à puces, ou tout autre format de contenu spécifique, vous pouvez utiliser le préremplissage du message assistant pour démarrer la réponse et les séquences d'arrêt pour la terminer exactement où vous le souhaitez.

Cette approche vous donne un contrôle précis sur le format de sortie de Claude, garantissant que vos applications obtiennent des données propres et utilisables sans formatage ou commentaire supplémentaire qui pourrait interférer avec le traitement en aval.