Vi använder cookies. Cookies och webbläsarlagring håller dig inloggad och kommer ihåg dina preferenser. Med ditt tillstånd mäter vi också hur webbplatsen används. Du kan när som helst. Läs vår cookiepolicy.

Verktygsanrop

Endpoints

Verktygsanrop

Låt modeller anropa dina funktioner med OpenAI:s verktygsformat, med parametrar, hela anropsloopen, exempel och tips för strömmade verktygsanrop.

Testa i playground

Verktygsanrop (function calling) låter en modell be din kod köra en funktion och sedan använda resultatet i sitt svar. api14 använder OpenAI:s tools-format för alla modeller som stöder verktyg: OpenAI, Anthropic, Google, Mistral, Qwen, DeepSeek och andra. För att hitta modeller med verktygsstöd, filtrera på stödda parametrar i listan Modeller (supported_parameters innehåller tools).

Anropsparametrar

ParameterTypBeskrivning
toolsarray[{ "type": "function", "function": { "name", "description", "parameters" } }], där parameters är ett JSON Schema.
tool_choicestring | object"auto" (standard), "none", "required" eller { "type": "function", "function": { "name": "get_weather" } }.
parallel_tool_callsbooleanTillåt flera verktygsanrop i en tur (standard true där det stöds).
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api14.com/api/v1",
  apiKey: process.env.API14_API_KEY,
});

const result = await client.chat.completions.create({
  "model": "openai/gpt-5-mini",
  "messages": [
    {
      "role": "user",
      "content": "What is the weather in Istanbul?"
    }
  ],
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Get the current weather",
        "parameters": {
          "type": "object",
          "properties": {
            "city": {
              "type": "string"
            }
          },
          "required": [
            "city"
          ]
        }
      }
    }
  ]
});
console.log(result.choices[0].message.tool_calls);

Loopen

  1. Skicka messages och tools.
  2. Om svaret har finish_reason: "tool_calls", kör varje post i message.tool_calls.
  3. Lägg till assistentmeddelandet, sedan ett { "role": "tool", "tool_call_id", "content" }-meddelande per anrop, och skicka anropet igen.
  4. Upprepa tills modellen svarar med vanligt innehåll.

Svar med ett verktygsanrop:

{
  "id": "gen-1760000000-tool1",
  "model": "anthropic/claude-sonnet-4.5",
  "choices": [
    {
      "index": 0,
      "finish_reason": "tool_calls",
      "message": {
        "role": "assistant",
        "content": null,
        "tool_calls": [
          {
            "id": "call_01",
            "type": "function",
            "function": { "name": "get_weather", "arguments": "{\"city\":\"Istanbul\"}" }
          }
        ]
      }
    }
  ],
  "usage": { "prompt_tokens": 182, "completion_tokens": 21, "total_tokens": 203, "cost": 0.000861 }
}

Uppföljningsanropet innehåller verktygsresultatet:

{
  "model": "anthropic/claude-sonnet-4.5",
  "tools": [ ... same tools ... ],
  "messages": [
    { "role": "user", "content": "What's the weather in Istanbul?" },
    { "role": "assistant", "content": null, "tool_calls": [ { "id": "call_01", "type": "function", "function": { "name": "get_weather", "arguments": "{\"city\":\"Istanbul\"}" } } ] },
    { "role": "tool", "tool_call_id": "call_01", "content": "{\"temp_c\": 21, \"sky\": \"clear\"}" }
  ]
}

Fortsätt skicka tools med varje anrop i loopen. Många leverantörer avvisar ett tool-meddelande om anropet saknar tools-definitioner.

Tips

  • arguments är en sträng med JSON. Tolka och validera den, eftersom modeller kan producera ogiltig JSON.
  • Vid streaming kommer verktygsanrop i delta.tool_calls-fragment med index som nyckel. Slå ihop arguments-strängarna innan du tolkar dem.
  • För att bara routa till leverantörer som stöder verktyg, ange provider: { "require_parameters": true }. Se Leverantörsroutning.
  • Varje varv i loopen är ett separat debiterat anrop.

Fel

En modell som inte stöder verktyg kan returnera ett uppströms 400 eller 404 ("No endpoints found that support tool use"). Övriga fel är desamma som för Chat completions. Se Fel.