Outils serveur et function calling
Enrichir les batchs avec des outils
Les requetes batch ne sont pas limitees a du texte brut. L’API Responses et Chat Completions supportent respectivement les outils serveur et le function calling, meme en mode asynchrone. Cette lecon detaille comment les integrer dans vos batchs.
Outils cote serveur
Les outils serveur sont executes directement par Grok pendant le traitement du batch. Vous n’avez pas a gerer leur execution : Grok appelle l’outil, recoit le resultat, et l’integre dans sa reponse.
Trois types d’outils serveur sont disponibles :
Recherche web
Grok peut effectuer des recherches sur le web pour enrichir ses reponses avec des informations actualisees :
{"custom_id": "news-1", "method": "POST", "url": "/v1/responses", "body": {"model": "grok-3", "input": "Quels sont les derniers developpements en informatique quantique ?", "tools": [{"type": "web_search"}]}}
En mode batch, la recherche web est utile pour des taches d’enrichissement de donnees : verifier des informations, collecter des faits actuels, ou comparer des donnees avec les sources en ligne.
Execution de code
Grok peut executer du code Python dans un environnement sandboxe :
{"custom_id": "calc-1", "method": "POST", "url": "/v1/responses", "body": {"model": "grok-3", "input": "Calculez la moyenne mobile sur 30 jours de ces donnees : [12, 15, 18, 14, 22, 19, 25, 28, 30, 27]", "tools": [{"type": "code_execution"}]}}
L’execution de code dans un batch est pertinente pour des calculs complexes, des analyses statistiques, ou des transformations de donnees que le modele ne pourrait pas faire par raisonnement seul.
Serveurs MCP
Le Model Context Protocol permet a Grok d’acceder a des services externes configures :
{"custom_id": "mcp-1", "method": "POST", "url": "/v1/responses", "body": {"model": "grok-3", "input": "Recuperez les metriques de performance du serveur", "tools": [{"type": "mcp", "server_label": "monitoring"}]}}
Les serveurs MCP doivent etre prealablement configures dans votre compte xAI. En mode batch, ils permettent d’interroger des APIs externes ou des bases de donnees a grande echelle.
Function calling cote client
Le function calling est un outil cote client : Grok genere un appel de fonction structure, mais c’est votre code qui l’execute. En mode batch, cela fonctionne differemment des outils serveur.
Definition des fonctions
{"custom_id": "extract-1", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "grok-3", "messages": [{"role": "user", "content": "Extrayez les informations de contact : Jean Dupont, 01 23 45 67 89, [email protected]"}], "tools": [{"type": "function", "function": {"name": "save_contact", "description": "Sauvegarde les informations de contact extraites", "parameters": {"type": "object", "properties": {"name": {"type": "string"}, "phone": {"type": "string"}, "email": {"type": "string"}}, "required": ["name"]}}}], "tool_choice": "auto"}}
Traitement des resultats
En mode batch, Grok retourne l’appel de fonction genere dans les resultats. C’est a vous de l’executer :
for result in batch_results:
response = result.response
if response.choices[0].finish_reason == "tool_calls":
tool_call = response.choices[0].message.tool_calls[0]
function_name = tool_call.function.name
arguments = json.loads(tool_call.function.arguments)
# Executez la fonction localement
if function_name == "save_contact":
save_to_database(arguments)
Le function calling en mode batch est ideal pour l’extraction structuree : vous definissez le schema des donnees a extraire, Grok parse les documents et genere les appels de fonction, puis vous traitez les resultats en masse.
Combinaison d’outils
Vous pouvez combiner plusieurs outils dans une meme requete :
{"custom_id": "multi-1", "method": "POST", "url": "/v1/responses", "body": {"model": "grok-3", "input": "Recherchez le cours actuel du Bitcoin et calculez sa variation sur 7 jours", "tools": [{"type": "web_search"}, {"type": "code_execution"}]}}
Grok utilisera les outils dans l’ordre qu’il juge pertinent : d’abord la recherche web pour obtenir les donnees, puis l’execution de code pour le calcul.
Limites des outils en batch
Quelques contraintes a connaitre :
- Les outils serveur augmentent le temps de traitement du batch
- Les requetes avec recherche web dependent de la disponibilite des sources
- Le function calling ne permet pas de boucle interactive (un seul aller-retour)
- Les outils MCP necessitent une configuration prealable dans votre compte
Points cles a retenir
- Les outils serveur (web search, code, MCP) sont executes par Grok pendant le traitement
- Le function calling genere des appels structures que vous executez cote client
- Vous pouvez combiner plusieurs outils dans une meme requete
- Les outils serveur augmentent les delais de traitement
- Le function calling en batch est ideal pour l’extraction structuree de donnees