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

Avant de commencer

Configurez votre environnement

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

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

2. Exécutez-le

uv run structured.py
Résultat attendu

Ré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: 1

Les 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é.

Aller plus loin

Aller plus loin