Uç noktalar
Tool calling
Modelin kodunuza bir fonksiyon çalıştırtmasını ve sonucu yanıtında kullanmasını sağlayın; tools parametreleri, tool_calls döngüsü ve streaming ipuçları.
Playground’da deneTool calling (function calling), modelin kodunuzdan bir fonksiyon çalıştırmasını istemesini ve sonucu yanıtında kullanmasını sağlar. api14, araçları destekleyen her model için OpenAI tools formatını kullanır: OpenAI, Anthropic, Google, Mistral, Qwen, DeepSeek ve diğerleri. Araç destekli modelleri bulmak için Modeller listesinde desteklenen parametrelere göre filtreleyin (supported_parameters içinde tools bulunur).
İstek parametreleri
| Parametre | Tür | Açıklama |
|---|---|---|
tools | array | [{ "type": "function", "function": { "name", "description", "parameters" } }]; parameters bir JSON Schema'dır. |
tool_choice | string | object | "auto" (varsayılan), "none", "required" veya { "type": "function", "function": { "name": "get_weather" } }. |
parallel_tool_calls | boolean | Tek turda birden çok araç çağrısına izin verir (desteklenen yerlerde varsayılan true). |
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);
Döngü
messagesvetoolsgönderin.- Yanıtta
finish_reason: "tool_calls"varsamessage.tool_callsiçindeki her girdiyi çalıştırın. - Asistan mesajını ekleyin, ardından her çağrı için bir
{ "role": "tool", "tool_call_id", "content" }mesajı ekleyip isteği tekrar gönderin. - Model düz içerikle yanıt verene kadar tekrarlayın.
Araç çağrısı içeren yanıt:
{
"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 }
}
Devam isteği, araç sonucunu içerir:
{
"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\"}" }
]
}
Döngüdeki her istekte tools göndermeye devam edin. Birçok sağlayıcı, istekte tools tanımları yoksa bir tool mesajını reddeder.
İpuçları
arguments, JSON içeren bir dizedir. Modeller geçersiz JSON üretebileceği için ayrıştırın ve doğrulayın.- Stream sırasında araç çağrıları
indexile anahtarlanandelta.tool_callsparçaları olarak gelir. Ayrıştırmadan önceargumentsdizelerini birleştirin. - Yalnızca araçları destekleyen sağlayıcılara yönlendirmek için
provider: { "require_parameters": true }ayarlayın. Bkz. Sağlayıcı yönlendirme. - Döngünün her yinelemesi ayrı bir faturalandırılan istektir.
Hatalar
Araçları desteklemeyen bir model, sağlayıcı kaynaklı bir 400 veya 404 ("No endpoints found that support tool use") döndürebilir. Diğer hatalar Chat completions ile aynıdır. Bkz. Hatalar.