Prompt d’extraction vers JSON avec schéma, validation et nouvelles tentatives
Créez un pipeline fiable pour extraire du texte libre vers du JSON avec un LLM : JSON Schema, prompt avec règles pour les nulls, exemples, code de validation avec nouvelles tentatives et cas de test. Conçu pour ChatGPT, Claude et Gemini. Il comprend 4 variables personnalisables et vous pouvez le copier gratuitement en un clic.
Avancé · Code · En attente de relecture éditoriale
Prompt
Agis comme ingénieur LLM spécialisé dans l'extraction de données structurées pour des systèmes en production.
Contexte :
- Type de document en entrée : {{document}}
- Champs à extraire (nom, type, obligatoire ou non) : {{champs}}
- Langage et bibliothèque de validation : {{langage}}
- Exemple réel d'entrée (anonymisé) :
```
{{exemple}}
```
Livrables :
1. Un JSON Schema complet avec types, formats (dates ISO 8601, montants en nombre et devise dans un champ séparé), énumérations et champs obligatoires.
2. Un prompt système d'extraction avec des règles explicites : renvoyer uniquement du JSON valide, utiliser null quand une valeur n'apparaît pas (jamais la déduire), ne pas normaliser les noms propres, comment traiter plusieurs valeurs candidates et un texte ambigu.
3. Deux exemples entrée/sortie (few-shot), dont un avec des champs absents.
4. Du code en {{langage}} qui appelle le modèle, active la sortie structurée ou le mode JSON si le fournisseur le propose, valide par rapport au schéma et retente au maximum deux fois en renvoyant l'erreur de validation.
5. Un champ facultatif de confiance ou de preuve (citation littérale du texte) pour chaque valeur, et quand il est utile.
6. Dix cas de test : documents incomplets, formats de date différents, langues mélangées, valeurs contradictoires et instructions malveillantes cachées dans le texte.
7. Comment mesurer la qualité : exactitude par champ sur un jeu annoté à la main.
Contraintes :
- N'invente pas de paramètres d'API : si une option dépend du fournisseur, indique [À VÉRIFIER dans la documentation officielle].
- Le modèle ne doit jamais remplir un champ sans preuve dans le texte.
- Si les champs sont ambigus ou l'exemple manquant, demande-moi d'abord.
Format : sections numérotées avec blocs de code JSON et {{langage}}.Comment l'utiliser
Collez un vrai document anonymisé et définissez précisément chaque champ. Avant un traitement par lots, lancez les cas de test et comparez avec 20 à 50 documents annotés à la main.
Exemple d'utilisation
Document : factures fournisseurs en PDF converties en texte · Champs : numéro, date, SIRET de l’émetteur, montant HT, TVA, TTC · Langage : Python avec Pydantic.
Exemple de résultat
4. Code avec validation et nouvelles tentatives
from enum import Enum
from pydantic import BaseModel, Field, ValidationError
class TypeTravaux(str, Enum): # valeurs définitives : [À COMPLÉTER]
salle_de_bains = "salle_de_bains"
cuisine = "cuisine"
renovation_complete = "renovation_complete"
autre = "autre"
class DemandeDevis(BaseModel):
nom: str
telephone: str | None = None
ville: str | None = None
type_travaux: TypeTravaux | None = None
budget_max_eur: float | None = Field(default=None, ge=0)
def extraire(texte: str, max_tentatives: int = 2) -> DemandeDevis:
messages = [{"role": "user", "content": texte}]
for _ in range(max_tentatives + 1):
# Mode JSON / sortie structurée selon le fournisseur : [À VÉRIFIER dans la doc officielle]
brut = appeler_modele(SYSTEM_PROMPT, messages)
try:
return DemandeDevis.model_validate_json(brut)
except ValidationError as erreur:
messages += [
{"role": "assistant", "content": brut},
{"role": "user", "content": f"JSON invalide : {erreur}. Renvoie uniquement le JSON corrigé."},
]
raise ValueError("Le modèle n'a pas renvoyé de JSON valide")
Sortie attendue pour votre exemple :
{"nom": "Claire", "telephone": "06 00 00 00 00", "ville": "Nantes",
"type_travaux": "salle_de_bains", "budget_max_eur": 7000}
« Tourne autour de 7 000 » reste approximatif : avec le champ facultatif de preuve, on conserverait la citation exacte pour qu’une personne décide s’il s’agit d’un maximum…
Informations clés
- Catégorie
- Programmation et développement · Agents IA
- Type de résultat
- Code
- Niveau
- Avancé
- Conçu pour
- ChatGPT, Claude et Gemini
- Vérifié sur
- En attente de vérification éditoriale
- Variables
- Type de document, Champs à extraire, Langage et validation et Exemple d’entrée
- Langue
- Français
- Prix
- Gratuit, sans inscription
- Mis à jour
- 07/11/2026
Questions fréquentes
Pourquoi demander null plutôt que laisser le modèle déduire la valeur ?
Parce qu’une valeur inventée qui a l’air juste est plus dangereuse qu’un vide. Avec null, vous repérez les documents incomplets et les envoyez en relecture humaine.
Le mode JSON du fournisseur suffit-il ?
Il garantit un JSON bien formé, pas des valeurs exactes ni le respect de vos règles métier. Gardez la validation par schéma et les cas de test.
À quoi sert ce prompt ?
Créez un pipeline fiable pour extraire du texte libre vers du JSON avec un LLM : JSON Schema, prompt avec règles pour les nulls, exemples, code de validation avec nouvelles tentatives et cas de test.
Avec quels outils d'IA fonctionne-t-il ?
Il est conçu pour ChatGPT, Claude et Gemini. Nous ne l'avons pas encore vérifié sur ces outils ; les résultats peuvent donc varier de l'un à l'autre.
Comment personnaliser le prompt ?
Cliquez sur « Personnaliser » et remplissez les variables (Type de document, Champs à extraire, Langage et validation et Exemple d’entrée). Le texte se met à jour instantanément et vous pouvez ensuite le copier en un clic. Les valeurs sont stockées uniquement dans votre navigateur.
Faut-il de l'expérience pour l'utiliser ?
Il est de niveau avancé : il s'adresse aux personnes expérimentées dans le domaine, capables d'évaluer et d'ajuster le résultat.
Ce prompt est-il gratuit ?
Oui. Tous les prompts de HomeCasa Prompts sont gratuits, sans inscription ni abonnement. Vous pouvez aussi les utiliser dans des projets professionnels.
Puis-je me fier au résultat de l'IA ?
Considérez-le comme un brouillon de qualité : vérifiez toujours les données, les chiffres et les affirmations importantes avant de publier ou de prendre des décisions.