Structured outputs et code execution
Sur cette page
Leçon corrigée le 2 novembre 2026 d’après la documentation de xAI : avec le SDK
xai-sdk, les sorties structurées se combinent aux outils en créant la conversation (client.chat.create(..., tools=[code_execution()])), puis en appelantchat.parse(Schema), qui renvoie la réponse et l’objet typé ; l’ancien exemple appelaitclient.chat.parse(...)avec des arguments de Chat Completions, une méthode qui n’existe dans aucun SDK. Sources : Structured Outputs · Code Execution.
Exécuter du code et structurer les résultats
La combinaison des sorties structurées avec l’exécution de code permet au modèle de calculer des résultats puis de les retourner dans un format structuré. Le modèle écrit du code, l’exécute dans un environnement sécurisé, et formate la sortie selon votre schéma.
Fonctionnalité Grok 4 et versions ultérieures
Comme pour la recherche web, cette combinaison est réservée aux modèles Grok 4 et versions ultérieures — soit toute la gamme actuelle (Grok 4.5, Grok 4.3, variantes grok-4.20). Les modèles antérieurs ne supportaient pas la combinaison d’outils avec les structured outputs.
Cas d’usage typique : calculs précis
Le principal avantage de code execution avec les structured outputs est la précision des calculs. Les LLM font régulièrement des erreurs d’arithmétique. En exécutant du code, les résultats sont mathématiquement exacts.
from pydantic import BaseModel
from xai_sdk import Client
from xai_sdk.chat import user
from xai_sdk.tools import code_execution
client = Client() # clé lue dans XAI_API_KEY
class AnalyseFinanciere(BaseModel):
revenu_total: float
cout_total: float
marge_brute: float
marge_pourcentage: float
produit_plus_rentable: str
produit_moins_rentable: str
chat = client.chat.create(
model="grok-4.20-0309-reasoning",
tools=[code_execution()],
)
chat.append(user("""Voici les ventes du trimestre :
- Produit A : 150 unités à 45 EUR, coût unitaire 28 EUR
- Produit B : 320 unités à 22 EUR, coût unitaire 15 EUR
- Produit C : 85 unités à 120 EUR, coût unitaire 78 EUR
Calcule l'analyse financière complète."""))
response, parsed = chat.parse(AnalyseFinanciere)
print(f"Marge brute : {parsed.marge_brute} EUR")
print(f"Marge : {parsed.marge_pourcentage}%")
print(f"Meilleur produit : {parsed.produit_plus_rentable}")
Le modèle va écrire un script Python pour effectuer les calculs, l’exécuter, puis formater les résultats dans le schéma AnalyseFinanciere.
Exemple : analyse statistique
class StatistiquesDescriptives(BaseModel):
moyenne: float
mediane: float
ecart_type: float
minimum: float
maximum: float
quartile_1: float
quartile_3: float
nombre_valeurs: int
chat = client.chat.create(
model="grok-4.20-0309-reasoning",
tools=[code_execution()],
)
chat.append(user("""Calcule les statistiques descriptives pour ces données :
[23, 45, 12, 67, 34, 89, 56, 78, 41, 33, 61, 25,
72, 48, 55, 39, 64, 71, 28, 50]"""))
response, parsed = chat.parse(StatistiquesDescriptives)
print(f"Moyenne : {parsed.moyenne}")
print(f"Écart-type : {parsed.ecart_type}")
Combiner web search et code execution
Vous pouvez activer les deux outils simultanément :
class AnalyseMarche(BaseModel):
entreprise: str
cours_actuel: float
variation_30j: float
volume_moyen: float
tendance: str
recommandation: str
from xai_sdk.tools import web_search
chat = client.chat.create(
model="grok-4.20-0309-reasoning",
tools=[web_search(), code_execution()],
)
chat.append(user("Analyse l'action Apple sur les 30 derniers jours"))
response, parsed = chat.parse(AnalyseMarche)
Le modèle va chercher les données récentes sur le web, puis utiliser code execution pour calculer les variations et les moyennes.
Limites de l’exécution de code
- L’environnement d’exécution est isolé et éphémère
- Les paquets Python les plus courants sont préinstallés (NumPy, Pandas, Matplotlib, SciPy)
- Le temps d’exécution et la mémoire sont bornés
- Pas d’accès réseau depuis le code exécuté
- Les fichiers créés ne persistent pas entre les appels
Points clés à retenir
- Code execution + structured outputs nécessite Grok 4 minimum — toute la gamme actuelle est compatible
- Le modèle écrit et exécute du code pour des calculs précis
- Activez l’outil avec
code_execution()dans le SDK xAI, ou{"type": "code_interpreter"}dans l’API Responses, puis obtenez l’objet typé avecchat.parse(Schema) - Combinable avec
web_searchpour chercher puis calculer - Idéal pour les analyses financières, statistiques et mathématiques
- Les résultats calculés sont exacts, contrairement aux estimations du LLM