Tool calls et function calls
HiWay est transparent au tool-calling sur tous les fournisseurs supportés.
Chaque fournisseur supporté implémente le tool calling différemment (Anthropic utilise des blocks tool_use, OpenAI utilise des arrays tool_calls). HiWay accepte le format wire OpenAI en entrée et vous renvoie ce que le fournisseur renvoie - inchangé.
Implications de routage
Les requêtes avec tools dans le body sont détectées par le moteur de scoring comme plus complexes - on biaise automatiquement vers standard ou heavy. Les requêtes de classification simples sans tools restent en light.
Compatibilité modèle
Tous les modèles ne supportent pas le tool use. Si le routage tombe sur un modèle incompatible, le fallback fournisseur se déclenche et retry sur le modèle suivant du même tier qui les supporte. Regardez X-HiWay-Routed-Model dans la réponse pour confirmer.
Exemple
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Récupère la météo d'une ville",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
},
}]
response = client.chat.completions.create(
model="auto",
messages=[{"role": "user", "content": "Quelle est la météo à Paris ?"}],
tools=tools,
)
# tool_calls revient au format OpenAI exact, peu importe quel fournisseur
# a répondu (Anthropic, Google, Mistral, etc.)
print(response.choices[0].message.tool_calls)