Sorties structurées personnalisées
Les sorties structurées personnalisées vous permettent de garantir que le modèle fournit une réponse dans un format JSON très précis en fournissant un schéma JSON clair. Cette approche permet au modèle de délivrer de manière cohérente des réponses avec le typage et les mots-clés corrects.
Utilisation
Générer et utiliser des sorties structurées personnalisées
Voici un exemple de mise en œuvre avec le client Mistral AI et Pydantic/Zod/JSON Schemas :
Définir le modèle de données
Commencez par définir la structure de la sortie avec Pydantic, Zod ou un schéma JSON :
from pydantic import BaseModel
class Book(BaseModel):
name: str
authors: list[str]Lancer la complétion
Ensuite, effectuez une requête et assurez-vous que la réponse respecte la structure définie en utilisant response_format avec le modèle correspondant :
import os
from mistralai.client import Mistral
api_key = os.environ["MISTRAL_API_KEY"]
model = "ministral-8b-latest"
client = Mistral(api_key=api_key)
chat_response = client.chat.parse(
model=model,
messages=[
{
"role": "system",
"content": "Extract the books information."
},
{
"role": "user",
"content": "I recently read 'To Kill a Mockingbird' by Harper Lee."
},
],
response_format=Book,
max_tokens=256,
temperature=0
)Dans cet exemple, la classe Book définit la structure de la sortie, garantissant que la réponse du modèle respecte le format spécifié.
Il existe deux types de sorties facilement accessibles via notre SDK.
Correspond à la sortie JSON structurée brute du modèle.
# Accessed with `chat_response.choices[0].message.content`:
print(chat_response.choices[0].message.content)
# {
# "authors": ["Harper Lee"],
# "name": "To Kill a Mockingbird"
# }Pour mieux guider le modèle, l'élément suivant est toujours ajouté au début du prompt système lors de l'utilisation de cette méthode :
Your output should be an instance of a JSON object following this schema: {{ json_schema }}Toutefois, il est recommandé d'ajouter davantage d'explications et d'itérer sur votre prompt système pour mieux clarifier le schéma et le comportement attendus.