xAI SDK : client.chat.create
Mis à jour le 30 juillet 2026
Le SDK natif xAI
Le SDK officiel de xAI est la manière la plus directe d’utiliser l’endpoint Chat Completions avec les modèles Grok. Il offre un typage complet, une gestion automatique de l’authentification et un accès à toutes les fonctionnalités spécifiques à xAI sans configuration supplémentaire.
Installation
Le SDK est disponible en Python via pip :
pip install xai-sdk
L’authentification se fait via une clé API que vous obtenez depuis la console xAI. Stockez-la dans une variable d’environnement :
export XAI_API_KEY="votre-cle-api"
Première requête avec client.chat.create
La méthode client.chat.create() est l’équivalent de l’endpoint POST /v1/chat/completions. Voici un exemple minimal :
import os
from xai_sdk import Client
client = Client(api_key=os.getenv("XAI_API_KEY"))
response = client.chat.create(
model="grok-4.20-0309-reasoning",
messages=[
{"role": "system", "content": "Tu es un assistant utile."},
{"role": "user", "content": "Explique le deep learning en 3 phrases."}
]
)
print(response.choices[0].message.content)
Le SDK détecte automatiquement la variable XAI_API_KEY si vous ne la passez pas explicitement. Vous pouvez donc simplifier l’initialisation :
client = Client() # Utilise XAI_API_KEY automatiquement
Paramètres de génération
La méthode chat.create() accepte plusieurs paramètres pour contrôler la génération :
response = client.chat.create(
model="grok-4.20-0309-reasoning",
messages=[
{"role": "system", "content": "Réponds uniquement en JSON."},
{"role": "user", "content": "Liste 3 langages de programmation populaires."}
],
temperature=0.7,
max_tokens=500,
top_p=0.9,
stop=["\n\n"]
)
Les paramètres principaux
model: identifiant du modèle (obligatoire). Exemples :grok-4.20-0309-reasoning,grok-4.20messages: tableau de messages avec rôles (obligatoire)temperature: contrôle la créativité (0.0 = déterministe, 2.0 = très créatif). Défaut : 1.0max_tokens: nombre maximum de tokens dans la réponsetop_p: échantillonnage par noyau (alternative à temperature). Valeur entre 0 et 1stop: séquences qui arrêtent la génération (string ou tableau de strings)stream: siTrue, la réponse est envoyée token par token
Streaming des réponses
Pour les réponses longues, le streaming améliore l’expérience utilisateur en affichant le texte au fur et à mesure de la génération :
stream = client.chat.create(
model="grok-4.20-0309-reasoning",
messages=[
{"role": "user", "content": "Écris un article sur l'IA generative."}
],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
En mode streaming, chaque chunk contient un objet delta (au lieu de message) avec le fragment de texte généré. Le champ delta.content peut être None pour certains chunks (début et fin de stream).
Gestion des erreurs
Le SDK lève des exceptions spécifiques que vous pouvez intercepter :
from xai_sdk import Client
from xai_sdk.errors import APIError, RateLimitError
client = Client()
try:
response = client.chat.create(
model="grok-4.20-0309-reasoning",
messages=[{"role": "user", "content": "Bonjour"}]
)
except RateLimitError:
print("Limite de débit atteinte, réessayez dans quelques secondes.")
except APIError as e:
print(f"Erreur API : {e.status_code} - {e.message}")
Appel asynchrone
Le SDK propose aussi un client asynchrone pour les applications asyncio :
import asyncio
from xai_sdk import AsyncClient
async def main():
client = AsyncClient()
response = await client.chat.create(
model="grok-4.20-0309-reasoning",
messages=[{"role": "user", "content": "Bonjour"}]
)
print(response.choices[0].message.content)
asyncio.run(main())
Points clés à retenir
- Le SDK xAI s’installe avec
pip install xai-sdket utilise la variableXAI_API_KEY - La méthode
client.chat.create()correspond à l’endpointPOST /v1/chat/completions - Les paramètres
temperature,max_tokens,top_petstopcontrôlent la génération - Le mode
stream=Truepermet d’afficher la réponse token par token - Un client asynchrone
AsyncClientest disponible pour les applications asyncio