Kami menggunakan cookie. Cookie dan penyimpanan browser menjaga Anda tetap masuk dan mengingat preferensi Anda. Dengan izin Anda, kami juga mengukur cara situs digunakan. Anda dapat kapan saja. Lihat kebijakan cookie kami.

Tool calling

Endpoint

Tool calling

Biarkan model memanggil fungsi Anda dengan format tools OpenAI, lengkap dengan alur loop, tool_choice, dan tips streaming.

Coba di playground

Tool calling (function calling) memungkinkan model meminta kode Anda menjalankan sebuah fungsi lalu memakai hasilnya dalam jawabannya. api14 memakai format tools OpenAI untuk setiap model yang mendukung tool: OpenAI, Anthropic, Google, Mistral, Qwen, DeepSeek, dan lainnya. Untuk menemukan model yang mampu memakai tool, filter berdasarkan parameter yang didukung pada daftar Model (supported_parameters memuat tools).

Parameter request

ParameterTipeDeskripsi
toolsarray[{ "type": "function", "function": { "name", "description", "parameters" } }], dengan parameters berupa JSON Schema.
tool_choicestring | object"auto" (default), "none", "required", atau { "type": "function", "function": { "name": "get_weather" } }.
parallel_tool_callsbooleanIzinkan beberapa panggilan tool dalam satu giliran (default true jika didukung).
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);

Loop

  1. Kirim messages dan tools.
  2. Jika respons memiliki finish_reason: "tool_calls", jalankan setiap entri di message.tool_calls.
  3. Tambahkan pesan assistant, lalu satu pesan { "role": "tool", "tool_call_id", "content" } untuk setiap panggilan, dan kirim request lagi.
  4. Ulangi sampai model menjawab dengan konten biasa.

Respons dengan panggilan tool:

{
  "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 }
}

Request lanjutan menyertakan hasil tool:

{
  "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\"}" }
  ]
}

Terus kirim tools pada setiap request dalam loop. Banyak provider menolak pesan tool jika request tidak memiliki definisi tools.

Tips

  • arguments adalah string JSON. Parse dan validasi, karena model bisa menghasilkan JSON yang tidak valid.
  • Saat streaming, panggilan tool tiba dalam fragmen delta.tool_calls dengan kunci index. Gabungkan string arguments sebelum mem-parse-nya.
  • Untuk mengarahkan hanya ke provider yang mendukung tool, atur provider: { "require_parameters": true }. Lihat Provider routing.
  • Setiap iterasi loop adalah request terpisah yang ditagih.

Error

Model yang tidak mendukung tool dapat mengembalikan 400 atau 404 dari upstream ("No endpoints found that support tool use"). Error lainnya sama seperti pada Chat completions. Lihat Error.