Aller au contenu
Site principal Actualités Console

Appel de fonction FC

L’appel de fonction (Function Calling) permet au modèle de demander l’exécution des fonctions que vous définissez lorsque c’est nécessaire, puis de poursuivre sa réponse en se basant sur le résultat de la fonction. Sur 4ALL API, les séries GPT, Claude et Gemini prennent toutes en charge le protocole OpenAI standard tools, ce qui vous permet d’écrire un seul jeu de code utilisable avec plusieurs modèles.

Flux de base

  1. Dans la requête, déclarez la signature de la fonction avec tools ;
  2. Le modèle renvoie finish_reason: "tool_calls" ainsi que le nom de la fonction et les paramètres JSON ;
  3. Vous exécutez la fonction et renvoyez le résultat sous forme de message role: "tool" ;
  4. Le modèle fournit la réponse finale en se basant sur le résultat.

Exemple

tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "查询指定城市当前天气",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
},
}]
resp = client.chat.completions.create(
model="gpt-5.5", messages=messages, tools=tools
)
call = resp.choices[0].message.tool_calls[0]
# 执行函数后回传:
messages.append(resp.choices[0].message)
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": '{"temp": 31, "condition": "sunny"}',
})
final = client.chat.completions.create(model="gpt-5.5", messages=messages, tools=tools)

Remarques

  • Les paramètres sont une chaîne JSON générée par le modèle, veuillez impérativement les valider avant exécution, ne les concaténez pas directement dans une commande ou du SQL ;
  • Le modèle peut renvoyer plusieurs tool_calls à la fois ; exécutez-les un par un et renvoyez-les en correspondance avec tool_call_id ;
  • tool_choice: "required" peut forcer l’appel, "none" peut le désactiver ;
  • En mode flux, les paramètres de fonction sont envoyés de manière incrémentale ; il faut les concaténer entièrement avant de les parser, voir sortie en streaming