Guide de démarrage : obtenir une sortie structurée
Dans ce guide de démarrage, vous décrivez les champs souhaités avec une classe Pydantic, et le modèle les remplit à partir d'un message client. Vous obtenez un objet Python validé au lieu de texte libre. Cela prend environ 5 minutes. Pour le mode JSON et les schémas JSON, consultez Sorties structurées.
Avant de commencer
- Une clé API Mistral. Pour en créer une, consultez Créer votre première clé API.
- Python 3.10 ou version ultérieure et uv.
Configurez votre environnement
Créez un projet, installez le SDK Mistral et exportez votre clé API :
uv init structured-output --python 3.12 && cd structured-output
uv add mistralai
export MISTRAL_API_KEY="your-api-key"1. Écrivez le script
Créez structured.py. chat.parse envoie le schéma de Ticket avec la requête, puis analyse et valide la réponse :
import os
from mistralai.client import Mistral
from pydantic import BaseModel
class Ticket(BaseModel):
title: str
priority: int
customer: str
client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])
response = client.chat.parse(
model="mistral-small-latest",
messages=[
{
"role": "user",
"content": "Ada from Acme writes: our checkout page is down, please fix it urgently. "
"Extract a support ticket with a priority from 1 (urgent) to 3 (low).",
}
],
response_format=Ticket,
)
ticket = response.choices[0].message.parsed
print(ticket)
print(f"Priority: {ticket.priority}")2. Exécutez-le
uv run structured.pyRésultat attendu
Un objet Ticket avec les trois champs renseignés, puis un champ lu sous forme d'entier Python :
title='Checkout page is down' priority=1 customer='Acme'
Priority: 1Les valeurs peuvent varier légèrement d'une exécution à l'autre, mais elles correspondent toujours aux types de Ticket. Si la réponse échoue à la validation, parse lève une erreur de validation au lieu de renvoyer un objet erroné.