Thème
Langue

Appels de fonctions (outils)

Comment utiliser l’appel de fonctions (utilisation d’outils) avec GetVibe API : les paramètres tools et tool_choice, ainsi qu’une conversation multi-tours avec un outil. Boucle complète d’agent en Python et curl.

Les appels de fonctions (utilisation d’outils) permettent au modèle de demander des appels à vos fonctions et d’en récupérer le résultat. Pris en charge par tous les modèles compatibles avec OpenAI.

Paramètres

ParamètreTypeDescription
toolsarrayGPT · ClaudeListe des outils. Chaque objet : { type: "function", function: { name, description, parameters } }.
tool_choicestring | objectGPT · Claude"auto" (le modèle décide), "none" (ne pas appeler), "required" (doit appeler) ou { type: "function", function: { name } } — un outil spécifique.
parallel_tool_callsbooleanGPTtrue — le modèle demande plusieurs outils à la fois. true par défaut. Claude ne prend pas en charge ce flag, mais effectue lui-même des appels parallèles.

Exemple : appel unique

curl https://getvibeapi.com/v1/chat/completions \
  -H "Authorization: Bearer $GETVIBE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6.1-sol",
    "tools": [{
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Returns the current weather in a city",
        "parameters": {
          "type": "object",
          "properties": {
            "city": { "type": "string", "description": "City name" }
          },
          "required": ["city"]
        }
      }
    }],
    "tool_choice": "auto",
    "messages": [{"role": "user", "content": "What is the weather in London?"}]
  }'

Multi-tour : transmettre le résultat

Après l’appel de l’outil, ajoutez un message de rôle tool avec le résultat et envoyez la requête suivante.

# messages after the first response with tool_call:
messages = [
    {"role": "user", "content": "What is the weather in London?"},
    # model response with the tool call
    {"role": "assistant", "tool_calls": msg.tool_calls, "content": None},
    # the result of your function
    {
        "role": "tool",
        "tool_call_id": msg.tool_calls[0].id,
        "content": json.dumps({"city": "London", "temp": 18, "desc": "Cloudy"}),
    },
]
resp2 = client.chat.completions.create(model="gpt-6.1-sol", tools=tools, messages=messages)
print(resp2.choices[0].message.content)
# → "It is currently 18°C and cloudy in London."

Exemple de réponse (tool_call)

{
  "choices": [{
    "message": {
      "role": "assistant",
      "content": null,
      "tool_calls": [{
        "id": "call_abc123",
        "type": "function",
        "function": {
          "name": "get_weather",
          "arguments": "{\"city\":\"London\"}"
        }
      }]
    },
    "finish_reason": "tool_calls"
  }]
}
Les champs tools et tool_choice sont acceptés dans le format compatible avec OpenAI ; leur prise en charge effective dépend du modèle choisi. Ne comptez pas sur une transmission octet par octet ni sur les champs de réponse spécifiques au fournisseur amont.
Appel de fonctions de GetVibe API — tools, tool_choice, exemples Python | GetVibe API