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

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

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

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"
# }
Note

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.

FAQ

FAQ