1,618 lectures
1,618 lectures

Pour les meilleurs résultats avec les LLM, utilisez les sorties promptes JSON

par Andrew Prosikhin4m2025/04/22
Read on Terminal Reader

Trop long; Pour lire

Les sorties structurées (comme le mode JSON) ont résolu l'un des plus anciens maux de tête du LLM : les réponses incohérentes.
featured image - Pour les meilleurs résultats avec les LLM, utilisez les sorties promptes JSON
Andrew Prosikhin HackerNoon profile picture
0-item
à

Ceci est la quatrième partie d'une série en cours. Voir les parties 1, 2 et 3.

à

Ceci est la quatrième partie d'une série en cours. Voir les parties 1, 2 et 3.

1er1er2 à2 àTroisTrois

AI Principle IV: Use Structured Prompt Outputs

Principe IV : Utiliser des sorties prompt structurées

Il y avait un temps, il y a longtemps, il y a longtemps, quand les APIs LLM venaient de sortir et personne ne savait encore avec certitude comment interagir correctement avec eux. L'un des principaux problèmes était d'extraire plusieurs sorties à partir d'une seule réponse prompt. Lorsque les LLM ne retournaient pas de manière cohérente JSON (et ils échouaient souvent), vous essayiez de convaincre le LLM de coopérer en utilisant votre meilleur oratoire d'ingénierie prompt.


C'étaient des temps anciens. À l'époque, nous voyageions à cheval et écrivions des prompts à la lumière des bougies, car l'électricité n'avait pas encore été inventée. Les prompts de débogage signifiaient de longues nuits passées à gronder sur des rouleaux de parchemin, en espérant que le modèle retournerait une liste au lieu d'un haiku.


Mais les APIs LLM qui ne pouvaient pas renvoyer constamment une réponse JSON étaient une chose réelle et causèrent beaucoup de problèmes.Les sorties structuréesen novembre 2023 - vous pouvez maintenant utiliser l'API OpenAI pour vous donner un JSON formaté. En 2024, OpenAI a également ajouté un support pour des sorties strictement structurées, ce qui garantit pleinement un retour JSON.anthropologiqueetGoogle àLe temps des sorties prompt non structurées est passé, et nous ne reviendrons jamais.

Les sorties structuréesanthropologiqueGoogle à

Benefits

Les avantages

Pourquoi est-il préférable d’utiliser des sorties prompt structurées en JSON plutôt que d’autres formats ou d’inventer un format personnalisé ?

Reduced Error Rate

Les LLM modernes sont finement ajustés pour produire une sortie valide JSON lorsqu'elle est demandée - il est rare qu'ils échouent même avec des réponses très complexes.En outre, de nombreuses plates-formes ont des protections au niveau du logiciel contre les sorties mal formatées. Par exemple, l'API OpenAI jette une exception lorsqu'une non-JSON est retournée lorsqu'elle est en mode strict de sortie structurée.


Si vous utilisez un format personnalisé pour retourner plusieurs variables de sortie, vous ne bénéficierez pas de cet ajustement, et le taux d'erreur sera beaucoup plus élevé.

Decoupled Prompts and Code

Avec une sortie JSON, il est trivial d'ajouter un autre champ de sortie, et de le faire ne devrait pas briser votre code existant. Cela déconnecte l'ajout de champs à la prompt de changements à la logique de traitement du code. Le déconnexion peut vous faire gagner du temps et de l'effort, en particulier dans les cas où les prompts sont chargés à partir de l'extérieur de Git; voirPrincipe II: Charger LLM Prompts en toute sécurité (si vous avez vraiment à)Le .

Principe II: Charger LLM Prompts en toute sécurité (si vous avez vraiment à)

Simplified System

Y a-t-il une raison pratique d'utiliser un format de sortie sans support de plate-forme intégré? Il serait plus facile pour vous et les contributeurs de code ultérieurs de formater les réponses en utilisant JSON.

When NOT to Use Structured Output

Quand ne pas utiliser une sortie structurée

Single Field Output

Si votre prompt produit un seul champ en réponse, il n'y a aucun avantage à l'extraction d'un JSON.


Les réponses à une seule variable aujourd'hui peuvent devenir des réponses complexes demain. Après avoir passé des heures à convertir une prompt de sortie de champ en plusieurs prompts de sortie de champ, j'utilise désormais JSON par défaut même lorsque seul un champ est retourné.


Même lorsque la logique du programme ne nécessite pas de multiples sorties, il existe des avantages d'ingénierie et de débogage immédiats pour ajouter des champs supplémentaires.L'ajout d'un champ qui fournit une explication pour une réponse (ou cite une source dans la documentation) peut souvent améliorer considérablement la performance immédiate (1erIl peut également être enregistré comme une explication des décisions du modèle.Avoir la réponse JSON dès le début rend l'ajout d'un tel champ beaucoup plus facile.

1er


Donc, même si votre prompt a une seule variable de sortie, considérez le format JSON comme une option.

Streaming Response

Pour les applications dans lesquelles la latence est critique, les endpoints de diffusion LLM sont souvent utilisés. Ceux-ci permettent d'agir sur des parties de la réponse avant que toute la réponse ne soit reçue. Ce modèle ne fonctionne pas bien avec JSON, vous devriez donc utiliser un format simple et amical au flux.


Par exemple, si votre prompt décide de l'action prise par un personnage du jeu vidéo et des mots que le personnage dit, vous pouvez l'encoder comme "ACTION ÁthaSPEECH_TO_READ" et ensuite diffuser la réponse avec une API de streaming, telle queOpenAI Streaming APICela vous donnera une meilleure latence.

OpenAI Streaming API


Exemple de sortie :

àWAVE_AT_HERO ELLEHello, Adventurer! Bienvenue dans ma boutique.
WAVE_AT_HERO ELLEHello, Adventurer! Bienvenue dans ma boutique.WAVE_AT_HERO ELLEHello, Adventurer! Bienvenue dans ma boutique.WAVE_AT_HERO ELLEHello, Adventurer! Bienvenue dans ma boutique.

WAVE_AT_HERO|Hello, Adventurer! Welcome to my shop.

Dès que l'action est reçue, le caractère commence à vibrer et le texte est sorti au fur et à mesure qu'il pénètre.

Les lignes JSONEt d’autres formats amicaux peuvent également être utilisés efficacement.

Les lignes JSON

Conclusion

Conclusion

Ne rejetez pas les avantages de la civilisation - utilisez des sorties prompt structurées JSON. Il n'y a guère d'inconvénients et cela rendra votre vie beaucoup plus facile car les LLM sont fortement optimisés pour retourner des réponses JSON valides. Envisagez d'utiliser une sortie JSON même si les données extraites sont actuellement un seul champ. Pour les endpoints de streaming, utilisez des lignes JSON ou un format personnalisé simple.


Si vous avez apprécié cet article, abonnez-vous à la série pour en savoir plus.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks