Intelligence artificielle — Chapitre 07 — Cours 08/15

Obtenir des réponses structurées en tableaux ou JSON

Une intelligence artificielle peut produire une réponse correcte sur le fond, mais difficile à utiliser si les informations sont présentées dans le désordre.

Imaginez que vous demandiez à un assistant de comparer cinq fournisseurs. Il peut rédiger plusieurs paragraphes détaillés, mais vous devrez ensuite rechercher les prix, les délais et les conditions de chaque fournisseur.

En demandant un tableau, vous obtenez une comparaison plus facile à lire. En demandant du JSON, vous pouvez obtenir une structure adaptée à un traitement informatique.

Idée essentielle

Structurer une réponse consiste à définir à l’avance la manière dont les informations doivent être organisées.

Le choix du format dépend de l’utilisation prévue : lecture humaine, comparaison, importation dans un logiciel ou automatisation.

1. Objectifs pédagogiques

À la fin de ce cours, vous serez capable de :

  • Expliquer ce qu’est une réponse structurée.
  • Choisir entre texte, tableau, CSV et JSON selon l’objectif.
  • Rédiger un prompt imposant des colonnes précises.
  • Comprendre les principales règles de syntaxe du JSON.
  • Différencier objets, tableaux, chaînes, nombres, booléens et valeurs nulles.
  • Définir les champs obligatoires et les valeurs autorisées.
  • Gérer les informations manquantes sans inventer de données.
  • Comprendre la différence entre JSON valide et données correctes.
  • Découvrir les schémas et la validation automatique.
  • Construire un prompt professionnel produisant une sortie exploitable.

2. Qu’est-ce qu’une réponse structurée ?

Une réponse structurée est une réponse dont l’organisation suit des règles définies à l’avance.

Ces règles peuvent préciser :

  • les rubriques attendues ;
  • leur ordre ;
  • les noms des colonnes ou des champs ;
  • le type de chaque valeur ;
  • le format des dates ;
  • les valeurs autorisées ;
  • la manière de représenter une information absente.

Réponse libre

Le fournisseur Alpha propose une livraison en trois jours pour 120 €. Le fournisseur Beta facture 105 €, mais livre sous cinq jours.

Réponse structurée

Les fournisseurs sont présentés dans un tableau avec trois colonnes : nom, prix et délai.

Les informations sont identiques, mais leur présentation facilite des usages différents.

3. Pourquoi demander un format précis ?

Une structure cohérente présente plusieurs avantages.

  • Lisibilité : les informations importantes sont faciles à retrouver.
  • Comparaison : plusieurs éléments peuvent être examinés selon les mêmes critères.
  • Régularité : les réponses suivent une présentation similaire.
  • Réutilisation : les données peuvent être copiées dans un autre outil.
  • Automatisation : un logiciel peut exploiter les champs d’une structure prévue.
  • Contrôle : il devient plus simple de vérifier les informations manquantes.
Attention

Une présentation bien organisée ne garantit pas que les informations sont exactes.

La structure facilite le contrôle, mais ne remplace pas la vérification des données.

4. Les principaux formats de réponse

FormatUsage principalAvantageLimite
Texte structuréRapports, explications, comptes rendusLecture naturelleTraitement automatique moins simple
Tableau MarkdownComparaisons dans une conversationLecture rapideImportation parfois délicate
Tableau HTMLPages webPrésentation intégrable dans un siteNécessite une interprétation HTML
CSVTableurs et importsFormat tabulaire simplePeu adapté aux données imbriquées
JSONApplications, API, automatisationsStructure exploitable par des programmesSyntaxe stricte

Il n’existe pas de format universellement supérieur. Le meilleur choix dépend du résultat attendu.

5. Demander un tableau simple

Un tableau organise les informations en lignes et en colonnes.

Chaque ligne représente généralement un élément. Chaque colonne correspond à une caractéristique.

Prompt
Compare les trois offres suivantes. Présente le résultat dans un tableau avec les colonnes : – Fournisseur – Prix HT – Délai de livraison – Garantie Données : Alpha : 450 € HT, 3 jours, garantie 12 mois. Beta : 420 € HT, 5 jours, garantie 24 mois. Gamma : 470 € HT, 2 jours, garantie 12 mois. Utilise uniquement les informations fournies.
Résultat attendu
FournisseurPrix HTDélaiGarantie
Alpha450 €3 jours12 mois
Beta420 €5 jours24 mois
Gamma470 €2 jours12 mois

Le prompt précise les colonnes, leur ordre et les données à utiliser.

6. Définir précisément les colonnes

Une demande vague comme « Fais un tableau » laisse au modèle le choix des colonnes.

Ce choix peut ne pas correspondre à votre objectif.

Prompt imprécis

Fais un tableau avec ces informations.

Les colonnes ne sont pas définies.

Prompt précis

Crée un tableau avec exactement cinq colonnes, dans cet ordre : 1. Référence 2. Désignation 3. Quantité 4. Prix unitaire HT 5. Total HT

La structure est explicite.

Pour un tableau destiné à être réutilisé, définissez également les unités et la manière de représenter les valeurs absentes.

7. Définir les unités et les formats

Un tableau peut devenir ambigu lorsque les unités ne sont pas précisées.

La valeur 15 peut représenter 15 €, 15 jours, 15 %, 15 articles ou 15 heures.

Pour éviter cette ambiguïté, demandez par exemple :

Utilise les règles suivantes : – Prix : en euros HT. – Quantités : en unités. – Délais : en jours calendaires. – Pourcentages : avec le symbole %. – Dates : au format JJ/MM/AAAA. – Valeurs absentes : indiquer « Non précisé ». Ne convertis pas une unité si les données nécessaires sont absentes.

Cette précision est particulièrement utile pour les documents commerciaux, comptables et administratifs.

8. Trier les résultats dans un tableau

La structure peut aussi inclure une règle de classement.

Présente les offres dans un tableau. Trie les lignes par prix HT croissant. En cas d’égalité de prix, classe les fournisseurs par ordre alphabétique.

Cette consigne évite que les résultats soient présentés dans un ordre arbitraire.

Attention aux données manquantes

Si certains prix ne sont pas connus, indiquez explicitement où placer les lignes concernées.

Exemple : « Place les offres sans prix connu à la fin du tableau. »

9. Ajouter une synthèse après le tableau

Un tableau présente les données. Une synthèse peut aider à les interpréter.

Présente les offres dans un tableau. Après le tableau, ajoute une synthèse de trois phrases maximum. Indique : – l’offre la moins chère ; – l’offre avec le délai le plus court ; – les éventuels compromis. Ne recommande pas automatiquement l’offre la moins chère.

Cette approche distingue la présentation des faits de leur analyse.

Bonne pratique

Lorsque vous demandez une recommandation, précisez les critères de décision et leur importance.

Une offre moins chère n’est pas nécessairement la plus adaptée si le délai ou la garantie sont déterminants.

10. Comprendre le format CSV

Le CSV est un format de texte permettant de représenter des données tabulaires.

Chaque ligne correspond généralement à un enregistrement. Les valeurs sont séparées par un caractère délimiteur, souvent une virgule ou un point-virgule.

fournisseur;prix_ht;delai_jours Alpha;450;3 Beta;420;5 Gamma;470;2

Le point-virgule est fréquemment utilisé dans les fichiers destinés à certains tableurs configurés en français.

Il ne faut cependant pas supposer que tous les logiciels attendent le même séparateur.

Précision technique

Lorsqu’une valeur contient le séparateur, des guillemets peuvent être nécessaires pour conserver correctement la structure.

Le choix de l’encodage, du séparateur et du format des nombres doit être compatible avec le logiciel destinataire.

11. Quand choisir le JSON ?

Le JSON, pour JavaScript Object Notation, est un format textuel de représentation de données structurées.

Il est très utilisé pour les échanges entre logiciels, notamment via des API.

Le JSON convient particulièrement lorsque les informations doivent être récupérées par un programme.

Exemple
{ « fournisseur »: « Alpha », « prix_ht »: 450, « delai_jours »: 3 }

Chaque information est associée à un nom de champ.

Le programme peut ainsi accéder au prix par le champ prix_ht, sans devoir interpréter une phrase entière.

12. Comprendre un objet JSON

Un objet JSON est constitué de paires clé-valeur, entourées d’accolades.

{ « nom »: « Alpha », « prix »: 450, « disponible »: true }

Dans cet exemple :

  • nom est une clé associée à une chaîne de caractères ;
  • prix est une clé associée à un nombre ;
  • disponible est une clé associée à un booléen.

Les clés sont écrites entre guillemets doubles et séparées de leur valeur par deux-points.

13. Les types de valeurs JSON

TypeExempleSignification
Chaîne"Alpha"Texte
Nombre450Valeur numérique
BooléentrueVrai
BooléenfalseFaux
Valeur nullenullAbsence de valeur
Tableau["Alpha", "Beta"]Liste ordonnée
Objet{"prix":450}Ensemble de champs
À ne pas confondre

"450" est une chaîne de caractères, tandis que 450 est un nombre.

De même, "true" est du texte, alors que true est un booléen.

14. Comprendre les tableaux JSON

Un tableau JSON est une liste de valeurs placées entre crochets.

[ « Alpha », « Beta », « Gamma » ]

Un tableau peut également contenir plusieurs objets.

[ { « fournisseur »: « Alpha », « prix_ht »: 450 }, { « fournisseur »: « Beta », « prix_ht »: 420 } ]

Cette organisation est adaptée à une liste de produits, de clients, de factures ou d’incidents.

15. Comprendre les objets imbriqués

Le JSON peut représenter des données plus complexes grâce à l’imbrication.

{ « commande »: « CMD-104 », « client »: { « nom »: « Martin », « ville »: « Lyon » }, « articles »: [ { « designation »: « Clavier », « quantite »: 2, « prix_unitaire_ht »: 25 }, { « designation »: « Souris », « quantite »: 1, « prix_unitaire_ht »: 15 } ] }

L’objet principal contient un objet client et un tableau articles.

Cette structure représente les relations entre les informations.

Conseil

N’utilisez des objets imbriqués que lorsqu’ils correspondent à un besoin réel.

Une structure trop complexe peut rendre le prompt et les traitements plus difficiles à maintenir.

16. Les règles essentielles de syntaxe JSON

Le JSON doit respecter une syntaxe précise.

  1. Les objets utilisent des accolades : { }.
  2. Les tableaux utilisent des crochets : [ ].
  3. Les clés sont placées entre guillemets doubles.
  4. Les chaînes de caractères utilisent des guillemets doubles.
  5. Une clé et sa valeur sont séparées par deux-points.
  6. Les éléments sont séparés par des virgules.
  7. Il ne faut pas ajouter de virgule après le dernier élément.
  8. Les booléens s’écrivent true et false.
  9. La valeur nulle s’écrit null.
  10. Les commentaires ne font pas partie du JSON standard.
JSON valide
{ « produit »: « Écran », « quantite »: 3, « disponible »: true }

17. Reconnaître un JSON invalide

Incorrect

{ produit: ‘Écran’, « quantite »: 3, }

La clé produit n’est pas entre guillemets, la chaîne utilise des apostrophes et une virgule supplémentaire apparaît à la fin.

Correct

{ « produit »: « Écran », « quantite »: 3 }

La syntaxe respecte les règles du JSON.

Une seule erreur de syntaxe peut empêcher un logiciel de lire le document.

18. Construire un prompt pour obtenir du JSON

La demande doit préciser les champs attendus et leur type.

Analyse les informations suivantes. Produis uniquement un objet JSON valide. Champs obligatoires : – fournisseur : chaîne – prix_ht : nombre – delai_jours : nombre entier – garantie_mois : nombre entier N’ajoute aucun autre champ. N’ajoute aucun commentaire ni texte avant ou après le JSON. Données : Fournisseur Alpha Prix HT : 450 € Livraison : 3 jours Garantie : 12 mois
Résultat attendu
{ « fournisseur »: « Alpha », « prix_ht »: 450, « delai_jours »: 3, « garantie_mois »: 12 }

Le format est prévisible et les valeurs numériques ne contiennent pas d’unités textuelles.

19. Pourquoi demander « uniquement du JSON » ?

Un modèle peut entourer sa réponse d’explications :

Voici les informations demandées : { « fournisseur »: « Alpha », « prix_ht »: 450 } J’espère que cela vous convient.

Cette réponse est lisible pour une personne, mais l’ensemble du texte ne constitue pas un document JSON valide.

Si un logiciel attend directement un objet JSON, il peut rencontrer une erreur.

Bonne pratique

Pour une automatisation, demandez une sortie sans introduction, sans conclusion et sans bloc Markdown.

Lorsque l’API propose un mode de sortie JSON ou une sortie structurée par schéma, privilégiez ces mécanismes et ajoutez une validation côté application.

20. Définir des champs obligatoires

Un champ obligatoire est une information que la structure doit contenir.

Tous les objets doivent contenir exactement ces champs : – reference – designation – quantite – prix_unitaire_ht Ne supprime aucun champ.

Cette règle est utile lorsqu’un logiciel attend une structure stable.

Mais il faut également prévoir ce qui se passe lorsque l’information n’est pas disponible.

21. Gérer les informations manquantes

Supposons que le délai de livraison soit inconnu.

Trois stratégies sont possibles, selon le besoin.

StratégieExempleUsage
Valeur nulle"delai_jours": nullAbsence de donnée
Chaîne explicite"delai": "Non précisé"Lecture humaine
Champ absentPas de clé delaiStructure autorisant des champs facultatifs

Le choix doit être défini avant la génération.

Attention

Ne remplacez pas une valeur inconnue par zéro sans justification.

Un délai de zéro jour signifie généralement autre chose qu’un délai inconnu.

22. Comprendre la valeur null

En JSON, null représente une valeur nulle.

{ « produit »: « Imprimante », « prix_ht »: 320, « delai_jours »: null }

Ici, le prix est connu, mais le délai n’est pas renseigné.

Il faut distinguer :

  • null : absence de valeur ;
  • 0 : valeur numérique égale à zéro ;
  • "" : chaîne vide ;
  • "Non précisé" : texte explicatif.

Ces représentations ne sont pas équivalentes pour un programme.

23. Définir les valeurs autorisées

Pour certaines informations, il est préférable de limiter les réponses à une liste de valeurs.

Exemple : classement des demandes clients
Analyse le message. Le champ « categorie » doit contenir exactement l’une de ces valeurs : – INFORMATION – RECLAMATION – DOCUMENT – AUTRE N’utilise aucune autre catégorie.

Cette règle réduit les variations de formulation.

Un programme peut ensuite traiter les catégories de manière plus fiable.

24. Comprendre les schémas JSON

Un schéma JSON est une description formelle de la structure attendue.

Avec JSON Schema, on peut notamment définir :

  • les propriétés attendues ;
  • leurs types ;
  • les champs obligatoires ;
  • les valeurs autorisées ;
  • les contraintes numériques ;
  • l’autorisation ou non de champs supplémentaires.

Un schéma permet à un logiciel de vérifier si une réponse respecte la structure définie.

25. Exemple simple de JSON Schema

{ « type »: « object », « properties »: { « fournisseur »: { « type »: « string » }, « prix_ht »: { « type »: « number », « minimum »: 0 }, « delai_jours »: { « type »: [« integer », « null »], « minimum »: 0 } }, « required »: [ « fournisseur », « prix_ht », « delai_jours » ], « additionalProperties »: false }

Ce schéma impose trois champs :

  • fournisseur : texte ;
  • prix_ht : nombre positif ou nul ;
  • delai_jours : entier positif ou nul, ou valeur nulle.

Il interdit également les champs supplémentaires.

Précision

Les fonctionnalités de JSON Schema prises en charge par les modes de sortie structurée des API peuvent être limitées à un sous-ensemble du standard.

Il faut consulter la documentation de l’API concernée avant d’utiliser un schéma.

26. JSON valide et JSON conforme au schéma

Un document peut être syntaxiquement valide sans respecter la structure attendue.

JSON syntaxiquement valide
{ « fournisseur »: « Alpha », « prix_ht »: « 450 euros » }

Ce document respecte la syntaxe JSON.

Mais il ne respecte pas un schéma exigeant que prix_ht soit un nombre.

Il existe donc deux contrôles distincts :

  1. Vérifier que le document est du JSON valide.
  2. Vérifier qu’il respecte le schéma attendu.

27. JSON conforme et données exactes

Un troisième contrôle reste nécessaire : la vérification du contenu.

Donnée source :

Prix HT : 450 €

Réponse générée :

{ « prix_ht »: 540 }

Le JSON est valide et peut respecter un schéma numérique.

Pourtant, la valeur est incorrecte.

Les trois niveaux de vérification
  1. Syntaxe : le JSON peut-il être lu ?
  2. Structure : respecte-t-il le schéma ?
  3. Contenu : les données correspondent-elles aux sources ?

28. Comprendre les sorties structurées via API

Certaines API de modèles d’IA proposent des mécanismes permettant de demander une sortie conforme à une structure définie.

Selon le fournisseur, il peut s’agir :

  • d’un mode JSON ;
  • d’une sortie structurée avec schéma ;
  • d’un mécanisme d’appel de fonction ou d’outil.

Ces fonctionnalités ne sont pas identiques.

MécanismeObjectif
Instruction textuelleDemander au modèle de respecter un format.
Mode JSONObtenir une sortie JSON valide selon les garanties de l’API.
Sortie structurée avec schémaContraindre la structure à un schéma pris en charge.
Appel de fonction ou d’outilProduire des arguments structurés destinés à une opération définie.

Les garanties, restrictions et cas d’échec dépendent du service et du modèle.

29. Les limites des sorties structurées

Même avec un mécanisme de sortie structurée, plusieurs problèmes peuvent subsister.

  • Les données extraites peuvent être inexactes.
  • Un champ peut recevoir une valeur plausible mais non justifiée.
  • La demande peut être ambiguë.
  • Le modèle peut ne pas disposer des informations nécessaires.
  • La génération peut être interrompue.
  • Une réponse peut être refusée ou ne pas correspondre au chemin de traitement attendu.

Il est donc nécessaire de prévoir la gestion des erreurs dans l’application.

À retenir

Un schéma contrôle la forme des données. Il ne garantit pas leur véracité.

30. Exemple professionnel : extraction de factures

Une entreprise souhaite extraire des informations de factures pour préparer leur traitement.

Données disponibles

Facture FAC-2026-041 Fournisseur : Atelier Martin Date : 15/10/2026 Montant HT : 800 € TVA : 160 € Montant TTC : 960 €

Prompt

Extrais les informations de la facture. Produis uniquement un objet JSON valide. Champs : – numero : chaîne – fournisseur : chaîne – date_facture : chaîne au format AAAA-MM-JJ – montant_ht : nombre – tva : nombre – montant_ttc : nombre N’invente aucune information. Si une valeur est absente, utilise null.

Résultat attendu

{ « numero »: « FAC-2026-041 », « fournisseur »: « Atelier Martin », « date_facture »: « 2026-10-15 », « montant_ht »: 800, « tva »: 160, « montant_ttc »: 960 }

Les valeurs numériques peuvent ensuite être exploitées par un logiciel.

Une vérification indépendante doit toutefois contrôler leur correspondance avec la facture et, si nécessaire, la cohérence des montants.

31. Exemple professionnel : traitement de tickets informatiques

Un service informatique souhaite classer automatiquement des demandes.

Message reçu

Depuis ce matin, mon ordinateur portable ne détecte plus le réseau Wi-Fi du bureau. Je peux encore utiliser Internet avec mon téléphone.

Prompt

Analyse le signalement. Retourne uniquement un objet JSON avec les champs : – equipement – symptome – impact – cause_confirmee – informations_manquantes « cause_confirmee » doit être null si aucune cause n’est établie. « informations_manquantes » doit être un tableau de chaînes. Ne présente pas d’hypothèse comme un diagnostic confirmé.

Résultat possible

{ « equipement »: « Ordinateur portable », « symptome »: « Réseau Wi-Fi du bureau non détecté », « impact »: « Connexion Wi-Fi du bureau indisponible sur l’ordinateur », « cause_confirmee »: null, « informations_manquantes »: [ « Système d’exploitation », « Présence d’un message d’erreur », « Résultat de la recherche d’autres réseaux Wi-Fi » ] }

Le JSON distingue les faits connus des informations manquantes.

32. Exemple professionnel : analyse de candidatures

Une entreprise souhaite structurer les compétences explicitement mentionnées dans des candidatures.

Analyse le texte fourni. Extrais uniquement les compétences explicitement mentionnées. Retourne un objet JSON contenant : – competences_techniques : tableau de chaînes – logiciels : tableau de chaînes – langues : tableau de chaînes – informations_manquantes : tableau de chaînes Ne déduis pas une compétence à partir d’un intitulé de poste. N’évalue pas la personnalité du candidat.

Cette approche facilite le classement des informations déclarées.

Vigilance

Une extraction structurée ne prouve pas la maîtrise réelle des compétences mentionnées.

Les décisions de recrutement nécessitent une évaluation adaptée et une attention particulière aux risques d’erreurs et de discrimination.

33. Exemple professionnel : gestion de stock

Un commerçant dispose des informations suivantes :

Clavier : stock 12, seuil d’alerte 5. Souris : stock 3, seuil d’alerte 8. Écran : stock 6, seuil d’alerte 6.

Il souhaite identifier les articles dont le stock est inférieur ou égal au seuil d’alerte.

Prompt

Analyse les stocks. Retourne uniquement un tableau JSON. Pour chaque produit, indique : – produit : chaîne – stock : entier – seuil_alerte : entier – alerte : booléen « alerte » vaut true si stock <= seuil_alerte. Sinon, "alerte" vaut false. N'ajoute aucun produit.

Résultat attendu

[ { « produit »: « Clavier », « stock »: 12, « seuil_alerte »: 5, « alerte »: false }, { « produit »: « Souris », « stock »: 3, « seuil_alerte »: 8, « alerte »: true }, { « produit »: « Écran », « stock »: 6, « seuil_alerte »: 6, « alerte »: true } ]

La règle est explicite : une quantité égale au seuil déclenche également l’alerte.

34. Exemple professionnel : comparer des devis

Pour comparer plusieurs devis, un tableau est souvent plus adapté qu’un objet JSON affiché à l’écran.

Compare les devis fournis. Crée un tableau avec : – Prestataire – Montant HT – TVA – Montant TTC – Délai – Prestations incluses – Éléments non précisés N’invente aucune prestation. Ne suppose pas que deux devis couvrent le même périmètre. Après le tableau, indique les informations nécessaires pour une comparaison équitable.

Cette consigne est utile lorsque les offres diffèrent dans leur contenu.

Comparer uniquement les prix serait insuffisant si les prestations ne sont pas équivalentes.

35. Exemple professionnel : préparer un import CSV

Un utilisateur souhaite importer des produits dans un logiciel.

Transforme les produits fournis en CSV. Règles : – Encodage cible : UTF-8. – Séparateur : point-virgule. – Première ligne : en-têtes. – Colonnes : reference;designation;prix_ht;stock. – Prix : nombres décimaux avec point. – Une ligne par produit. – Ne crée aucun produit. – Si une donnée obligatoire manque, signale-la au lieu d’inventer une valeur.

Le prompt doit être adapté aux spécifications exactes du logiciel destinataire.

Précaution importante

Un fichier CSV correctement formaté peut malgré tout être refusé si les noms de colonnes, les identifiants, les types de données ou les valeurs ne correspondent pas au modèle d’importation.

36. Gérer les nombres et les devises

En JSON, les nombres utilisent un point comme séparateur décimal.

Incorrect comme nombre JSON

{ « prix_ht »: 125,50 }

La virgule ne peut pas servir de séparateur décimal dans un nombre JSON.

Correct

{ « prix_ht »: 125.50, « devise »: « EUR » }

La valeur numérique et la devise sont séparées.

Pour les calculs financiers, il faut également tenir compte des règles d’arrondi et de la précision numérique utilisée par le logiciel.

37. Gérer les dates

Les dates sont souvent représentées par des chaînes de caractères en JSON.

{ « date_facture »: « 2026-10-15 » }

Le format AAAA-MM-JJ est une représentation courante compatible avec la notation de date du standard ISO 8601.

Il facilite le classement et les échanges entre systèmes.

Attention

JSON ne possède pas de type natif « date ».

Il faut donc définir la convention utilisée et valider les dates dans l’application.

38. Gérer les booléens

Un booléen représente une valeur logique : vrai ou faux.

{ « document_recu »: true, « document_valide »: false }

Mais ces deux informations ne doivent pas être confondues.

Un document peut avoir été reçu sans avoir encore été contrôlé.

Si le statut de validation est inconnu, une valeur nulle peut être plus appropriée que false, selon le modèle de données.

39. Éviter les champs ambigus

Les noms de champs doivent être suffisamment explicites.

Peu explicite

{ « valeur »: 450, « temps »: 3 }

Plus précis

{ « prix_ht_eur »: 450, « delai_livraison_jours »: 3 }

Des noms explicites facilitent la compréhension et réduisent les erreurs d’interprétation.

Dans une application existante, il faut toutefois respecter les noms imposés par son schéma.

40. Éviter les champs supplémentaires

Un modèle peut parfois ajouter des informations qu’il juge utiles.

Mais ces ajouts peuvent perturber un traitement automatique.

Retourne exactement les champs suivants : – reference – designation – quantite N’ajoute aucun autre champ. N’ajoute aucune explication extérieure au JSON.

Lorsque l’application utilise un schéma, l’interdiction des propriétés supplémentaires peut être contrôlée automatiquement.

41. Concevoir un prompt structuré réutilisable

Pour un usage régulier, vous pouvez créer un modèle de prompt.

RÔLE Tu es un assistant d’extraction de données. OBJECTIF Transformer le texte fourni en informations structurées. SOURCE [DOCUMENT_A_ANALYSER] CHAMPS ATTENDUS [LISTE_DES_CHAMPS] TYPES [TYPES_DES_VALEURS] RÈGLES – Utiliser uniquement les informations présentes. – Ne pas inventer de données. – Respecter les noms de champs. – Respecter les types définis. – Utiliser null pour les valeurs absentes lorsque cela est autorisé. FORMAT Retourner uniquement un JSON valide. CONTRÔLE Vérifier la présence des champs obligatoires et la cohérence des valeurs.

Les éléments entre crochets sont des emplacements à compléter avant utilisation.

42. Tester une réponse structurée

Avant d’utiliser un prompt en production, testez-le sur plusieurs situations.

TestCe qu’il faut vérifier
Données complètesTous les champs sont correctement remplis.
Données manquantesLe modèle n’invente pas de valeur.
Données contradictoiresLe conflit est signalé ou traité selon une règle définie.
Caractères spéciauxLe JSON reste valide.
Liste videLa structure attendue reste cohérente.
Valeurs numériquesLes nombres et unités sont corrects.
Texte contenant des consignesLes données ne détournent pas les instructions.
Document volumineuxLes informations importantes ne sont pas omises.

43. Les erreurs fréquentes

ErreurConséquenceSolution
Demander simplement « un tableau »Colonnes imprévisiblesDéfinir les colonnes
Mélanger nombres et unitésCalculs difficilesSéparer valeur et unité
Ajouter du texte autour du JSONLecture automatique perturbéeImposer une sortie JSON seule
Utiliser des apostrophes en JSONSyntaxe invalideUtiliser les guillemets doubles
Confondre null et zéroDonnées trompeusesDéfinir une convention
Omettre les champs obligatoiresImport impossibleValider le schéma
Inventer les données manquantesRésultat inexactPrévoir le traitement des absences
Confondre validité et exactitudeErreurs non détectéesContrôler les données sources
Ne pas tester les cas limitesÉchecs en utilisation réellePréparer des tests variés

44. Exercice 1 — Construire un tableau comparatif

Application

Trois prestataires proposent les offres suivantes :

  • Alpha : 1 200 € HT, délai 4 jours, garantie 12 mois.
  • Beta : 1 050 € HT, délai 7 jours, garantie 24 mois.
  • Gamma : 1 300 € HT, délai 3 jours, garantie 12 mois.

Travail demandé :

  1. Rédigez un prompt demandant un tableau comparatif.
  2. Imposez les colonnes nécessaires.
  3. Demandez un classement par prix croissant.
  4. Identifiez l’offre la moins chère et celle avec le délai le plus court.
Afficher la correction détaillée

Prompt proposé

Compare les trois offres fournies. Crée un tableau avec les colonnes : – Prestataire – Prix HT – Délai en jours – Garantie en mois Trie les offres par prix HT croissant. Utilise uniquement les données fournies. Après le tableau, identifie : – l’offre la moins chère ; – l’offre avec le délai le plus court.

Tableau attendu

PrestatairePrix HTDélaiGarantie
Beta1 050 €7 jours24 mois
Alpha1 200 €4 jours12 mois
Gamma1 300 €3 jours12 mois

Offre la moins chère : Beta, 1 050 € HT.

Délai le plus court : Gamma, 3 jours.

Les critères conduisent à deux résultats différents : le prix le plus bas n’est pas associé au délai le plus court.

45. Exercice 2 — Corriger un JSON invalide

Application
{ produit: ‘Clavier’, « prix_ht »: 35,50, « stock »: 12, « disponible »: True, }

Travail demandé :

  1. Identifiez les erreurs de syntaxe.
  2. Corrigez le document.
  3. Expliquez pourquoi la correction est valide.
Afficher la correction détaillée

Erreurs identifiées

  • La clé produit n’est pas entre guillemets doubles.
  • La valeur Clavier utilise des apostrophes.
  • Le nombre décimal utilise une virgule.
  • Le booléen True doit être écrit en minuscules.
  • Une virgule apparaît après le dernier champ.

JSON corrigé

{ « produit »: « Clavier », « prix_ht »: 35.50, « stock »: 12, « disponible »: true }

La structure respecte désormais les règles syntaxiques du JSON.

46. Exercice 3 — Extraire des données sans les inventer

Entraînement

Document :

Commande CMD-208 Client : Entreprise Horizon Produit : Écran 24 pouces Quantité : 4 Prix unitaire HT : 150 € Aucune date de livraison n’est indiquée.

Travail demandé :

  1. Produisez un objet JSON.
  2. Utilisez les champs commande, client, produit, quantite, prix_unitaire_ht, total_ht et date_livraison.
  3. Calculez le total HT.
  4. Représentez correctement la date absente.
Afficher la correction détaillée
{ « commande »: « CMD-208 », « client »: « Entreprise Horizon », « produit »: « Écran 24 pouces », « quantite »: 4, « prix_unitaire_ht »: 150, « total_ht »: 600, « date_livraison »: null }

Explication

Le total HT est calculé ainsi :

4 × 150 = 600 € HT.

La date de livraison est inconnue. Elle est donc représentée par null, et non par une date inventée.

Le calcul est autorisé par la consigne de l’exercice, même si le total ne figure pas directement dans le document.

47. Exercice 4 — Définir un schéma de classification

Entraînement

Une entreprise souhaite classer les demandes reçues.

Catégories autorisées :

  • INFORMATION
  • RECLAMATION
  • DOCUMENT
  • AUTRE

Chaque résultat doit contenir :

  • une catégorie ;
  • un résumé ;
  • un indicateur de réponse nécessaire.

Travail demandé :

  1. Définissez les types des champs.
  2. Rédigez un prompt adapté.
  3. Produisez un JSON pour le message : « Bonjour, je souhaite recevoir une copie de ma facture. »
Afficher la correction détaillée

Types

  • categorie : chaîne appartenant à une liste définie.
  • resume : chaîne.
  • reponse_necessaire : booléen.

Prompt

Classe le message fourni. Retourne uniquement un objet JSON valide. Champs obligatoires : – categorie : chaîne – resume : chaîne – reponse_necessaire : booléen La catégorie doit être : INFORMATION, RECLAMATION, DOCUMENT ou AUTRE. N’ajoute aucun champ. N’invente aucune information.

Résultat possible

{ « categorie »: « DOCUMENT », « resume »: « Demande de copie de facture », « reponse_necessaire »: true }

La catégorie DOCUMENT est cohérente avec la demande de transmission d’une facture.

Le booléen indique qu’une réponse est attendue.

48. Exercice 5 — Cas pratique professionnel complet

Synthèse

Situation

Une entreprise reçoit plusieurs demandes d’achat de matériel informatique.

Elle souhaite produire un JSON utilisable pour préparer un tableau de suivi.

Données

Demande 1 Service : Comptabilité Matériel : 2 écrans Prix unitaire HT : 180 € Priorité : Haute Demande 2 Service : Commercial Matériel : 3 souris Prix unitaire HT : 25 € Priorité : Normale Demande 3 Service : Direction Matériel : 1 ordinateur portable Prix unitaire HT : non communiqué Priorité : Haute

Travail demandé :

  1. Définissez les champs nécessaires.
  2. Rédigez un prompt de génération JSON.
  3. Produisez un tableau JSON contenant les trois demandes.
  4. Calculez les totaux lorsqu’ils sont possibles.
  5. Gérez le prix manquant.
  6. Expliquez les contrôles à effectuer avant importation.
Afficher la correction détaillée

1. Structure proposée

  • service : chaîne ;
  • materiel : chaîne ;
  • quantite : entier ;
  • prix_unitaire_ht : nombre ou null ;
  • total_ht : nombre ou null ;
  • priorite : chaîne.

2. Prompt proposé

Transforme les demandes d’achat en tableau JSON. Chaque objet doit contenir : – service – materiel – quantite – prix_unitaire_ht – total_ht – priorite Règles : – Utilise uniquement les données fournies. – Calcule total_ht = quantite × prix_unitaire_ht. – Si le prix est inconnu, utilise null pour le prix et le total. – Conserve les priorités indiquées. – N’ajoute aucun champ. – Retourne uniquement du JSON valide.

3. JSON attendu

[ { « service »: « Comptabilité », « materiel »: « Écran », « quantite »: 2, « prix_unitaire_ht »: 180, « total_ht »: 360, « priorite »: « Haute » }, { « service »: « Commercial », « materiel »: « Souris », « quantite »: 3, « prix_unitaire_ht »: 25, « total_ht »: 75, « priorite »: « Normale » }, { « service »: « Direction », « materiel »: « Ordinateur portable », « quantite »: 1, « prix_unitaire_ht »: null, « total_ht »: null, « priorite »: « Haute » } ]

4. Calculs

Comptabilité : 2 × 180 = 360 € HT.

Commercial : 3 × 25 = 75 € HT.

Direction : calcul impossible en l’absence de prix.

Le montant connu des deux premières demandes est de 435 € HT. Il ne représente pas le total général de toutes les demandes.

5. Contrôles avant importation

  • Vérifier que le JSON est valide.
  • Vérifier la présence des champs obligatoires.
  • Contrôler les types des valeurs.
  • Vérifier les calculs.
  • Vérifier que les trois demandes sont présentes.
  • Signaler le prix manquant de l’ordinateur.
  • Vérifier la compatibilité avec le logiciel destinataire.

Conclusion

Le JSON permet de conserver une structure homogène tout en représentant correctement les données inconnues.

La qualité du résultat dépend à la fois du prompt, des informations sources et des contrôles effectués.

49. Questions fréquentes — 20 questions

1. Qu’est-ce qu’une réponse structurée ?

Une réponse organisée selon un format et des règles définis à l’avance.

2. Pourquoi demander un tableau à une IA ?

Pour comparer plus facilement plusieurs éléments à partir de critères communs.

3. Quelle différence entre un tableau et du JSON ?

Un tableau est généralement conçu pour présenter des informations en lignes et colonnes. Le JSON est un format de données pouvant représenter des structures simples ou imbriquées.

4. Qu’est-ce que le JSON ?

Un format textuel standardisé utilisé pour représenter et échanger des données structurées.

5. Que signifie JSON ?

JavaScript Object Notation.

6. Le JSON est-il réservé à JavaScript ?

Non. Il peut être utilisé avec de nombreux langages et logiciels.

7. Qu’est-ce qu’une clé JSON ?

Le nom d’un champ associé à une valeur dans un objet.

8. Quelle différence entre un objet et un tableau JSON ?

Un objet regroupe des champs nommés. Un tableau contient une liste ordonnée de valeurs.

9. Pourquoi les guillemets doubles sont-ils importants ?

Ils sont nécessaires pour les clés et les chaînes de caractères dans le JSON standard.

10. Peut-on utiliser une virgule décimale dans un nombre JSON ?

Non. Les nombres décimaux JSON utilisent un point.

11. À quoi sert null ?

À représenter une valeur nulle, notamment lorsqu’une information est absente selon la convention choisie.

12. Quelle différence entre null et zéro ?

Zéro est une valeur numérique. Null représente une valeur nulle.

13. Qu’est-ce qu’un booléen ?

Une valeur logique qui peut être true ou false.

14. Qu’est-ce qu’un schéma JSON ?

Une description formelle des champs, types et contraintes d’une structure JSON.

15. Un JSON valide est-il forcément exact ?

Non. Il peut respecter la syntaxe tout en contenant des informations incorrectes.

16. Peut-on demander uniquement du JSON dans un prompt ?

Oui. Mais pour une application automatisée, il est préférable d’utiliser les mécanismes de sortie structurée disponibles et de valider la réponse.

17. Pourquoi éviter les champs supplémentaires ?

Ils peuvent perturber un logiciel qui attend une structure précise.

18. Quand utiliser du CSV plutôt que du JSON ?

Le CSV est souvent adapté à des données tabulaires simples destinées à un tableur ou à un import. Le JSON convient mieux aux structures imbriquées.

19. Pourquoi tester plusieurs exemples ?

Pour vérifier le comportement du modèle face aux données complètes, manquantes, ambiguës ou inhabituelles.

20. Quelle est la règle la plus importante ?

Définir le format selon l’utilisation prévue, puis vérifier séparément la syntaxe, la structure et l’exactitude des données.

50. Glossaire

TermeDéfinition
Réponse structuréeRéponse respectant une organisation définie.
TableauPrésentation en lignes et colonnes.
MarkdownSyntaxe légère de mise en forme de texte.
HTMLLangage de balisage utilisé pour structurer les pages web.
CSVFormat de données tabulaires séparées par un délimiteur.
JSONFormat textuel de représentation de données structurées.
Objet JSONEnsemble de paires clé-valeur.
CléNom d’un champ dans un objet JSON.
ValeurContenu associé à une clé ou élément d’un tableau.
ChaîneValeur textuelle.
NombreValeur numérique.
BooléenValeur logique true ou false.
nullValeur nulle du JSON.
Tableau JSONListe ordonnée de valeurs.
Objet imbriquéObjet contenu dans un autre objet.
Champ obligatoirePropriété devant être présente dans une structure.
Schéma JSONDescription formelle des contraintes d’une structure JSON.
Validation syntaxiqueContrôle du respect de la syntaxe JSON.
Validation de schémaContrôle des champs, types et contraintes attendus.
APIInterface permettant à des logiciels d’échanger des informations ou des commandes.

51. Les dix idées essentielles à retenir

  1. Une réponse structurée suit un format défini à l’avance.
  2. Les tableaux facilitent la lecture et la comparaison.
  3. Le CSV convient aux échanges de données tabulaires simples.
  4. Le JSON permet de représenter des données structurées exploitables par des logiciels.
  5. Un objet JSON associe des clés à des valeurs.
  6. Un tableau JSON contient une liste ordonnée de valeurs.
  7. Les types des champs doivent être définis avec précision.
  8. Les informations manquantes ne doivent pas être inventées.
  9. Un schéma permet de vérifier la structure attendue.
  10. La syntaxe, la conformité au schéma et l’exactitude du contenu sont trois vérifications différentes.
À retenir

Pour obtenir une réponse réellement exploitable, il ne suffit pas de demander « un tableau » ou « du JSON ».

Il faut préciser les champs, les types, les règles de traitement, les valeurs manquantes et les contrôles nécessaires.

52. Ressources complémentaires

Les exemples de fournisseurs, de commandes, de factures et de tickets présentés dans ce cours sont fictifs et destinés à l’apprentissage.

53. Passer à la pratique

Pour consolider vos acquis, entraînez-vous à :

  • transformer une liste d’informations en tableau ;
  • définir les colonnes d’un comparatif ;
  • corriger un JSON invalide ;
  • extraire des données d’un document ;
  • définir les types de champs ;
  • gérer les valeurs manquantes ;
  • concevoir un prompt de sortie structurée ;
  • vérifier les résultats avant leur utilisation.
Accéder aux exercices du chapitre →

54. Préparer le cours suivant

Vous savez maintenant demander des tableaux lisibles et des structures JSON adaptées à des traitements informatiques.

Le prochain cours sera consacré à une autre utilisation avancée du prompting : faire comparer plusieurs solutions.

Vous apprendrez à définir des critères de comparaison, à distinguer les avantages et les limites de chaque option et à obtenir des recommandations argumentées.

Progression du chapitre 07

8 cours sur 15 — Vous savez choisir et définir un format de réponse structuré.

Exercices du cours

Entraînez-vous avec 15 exercices progressifs. Ouvrez un exercice pour répondre, puis afficher sa correction.