Comment utiliser les réponses structurées
Pour utiliser correctement « response_format », vous pouvez définir votre schéma avec diverses « properties », représentant des catégories de sorties, chacune avec des types de données configurés individuellement. Ces objets peuvent être imbriqués pour créer des structures de sortie plus avancées. Voici un exemple d’appel API utilisant response_format pour expliquer le processus étape par étape de résolution d’une équation mathématique. Vous pouvez voir que les propriétés ont été configurées pour exiger à la fois « steps » et « final_answer » dans la réponse. Au sein de l’imbrication, la catégorie steps se compose à la fois d’une « explanation » et d’un « output », chacun sous forme de chaîne.Points à surveiller
Voici quelques exigences clés à garder à l’esprit lors de l’utilisation des sorties structurées via response_format :- Les requêtes initiales utilisant response_format peuvent prendre plus de temps à générer une réponse. Les requêtes suivantes ne connaîtront pas la même latence que la requête initiale.
-
Pour les requêtes plus volumineuses, le modèle peut échouer à se terminer si soit
max_tokens, soit le timeout du modèle est atteint, ou si des limites de débit sont dépassées - Un format de schéma incorrect entraînera des erreurs lors de la complétion, généralement dues à un timeout
- Bien que response_format garantisse que le modèle produira une sortie d’une manière particulière, cela ne garantit pas que le modèle a fourni les informations correctes à l’intérieur. Le contenu est piloté par le prompt et la performance du modèle.
- Les sorties structurées via response_format ne sont pas compatibles avec les appels de fonction parallèles
-
Important : Tous les champs ou paramètres doivent inclure une balise
required. Pour rendre un champ optionnel, vous devez ajouter une optionnulldans letypedu champ, comme ceci"type": ["string", "null"] -
Il est possible de rendre les champs optionnels en donnant des options
nulldans le champ required pour permettre une réponse vide. -
Important :
additionalPropertiesdoit être défini à false pour que response_format fonctionne correctement -
Important :
strictdoit être défini à true pour que response_format fonctionne correctement