KYC olmadan — kimlik yok, selfie yok, belge yok. Kripto ile ödeyin: BTC, USDT, USDC, ETH, SOL, LTC
Dil: Türkçe
API anahtarı alın

Belgeler · araçlar ve JSON

Açık ağırlıklı modellerle araç çağırma ve JSON çıktısı

Model, kodunuzdan bir fonksiyon çalıştırmasını isteyebilir ve sonucu yanıtında kullanabilir; ya da programınızın doğrudan okuduğu bir JSON nesnesiyle yanıt verebilir. Her ikisi de OpenAI istek biçimini kullanır ve her ikisi de seçtiğiniz modele bağlıdır.

Son güncelleme: · 3 dk okuma

Kısa yanıt

LLMwithCrypto üzerinde araç çağırma nasıl çalışır?

Fonksiyonlarınızı OpenAI biçiminde tools içinde gönderin. Model bir fonksiyon istediğinde, LLMwithCrypto fonksiyon adı ve JSON argümanlarıyla birlikte finish_reason: "tool_calls" döndürür; kodunuz bunu çalıştırır ve sonucu bir tool mesajı olarak geri gönderir. Yapılandırılmış yanıtlar için response_format: {"type": "json_object"} geçerli JSON ister. Her ikisi de, 23 Ekim 2026 tarihinde belgelendiği üzere, bunları destekleyen modellerde çalışır.

Hangi modeller araçları ve JSON'u destekler?

Streaming her modelde çalışır; tool calling ve JSON çıktısı, her modelin kendi desteklediğiyle sınırlıdır.

Bunlara bağımlı hale gelmeden önce kendi şemanızı kullanmayı planladığınız modelde test edin. Araçları desteklemeyen bir model, fonksiyonu çağırmak yerine düz metinle yanıt verir; JSON modunu desteklemeyen bir model response_format için 400 hatası döndürür.

Döngü nedir?

  1. Fonksiyonları tanımlayın

    Her aracın bir name, modelin ne zaman kullanacağına karar vermek için okuduğu bir description ve bir JSON Schema olarak parameters vardır.

  2. Konuşmayı araçlarla gönderin

    Model ya metinle yanıt verir ya da finish_reason: "tool_calls" ile durup message.tool_calls içinde bir veya daha fazla çağrı döndürür.

  3. Her çağrıyı çalıştırın

    function.arguments (bir JSON dizesi) ayrıştırın, fonksiyonunuzu çalıştırın ve argümanlara asla körü körüne güvenmeyin: onları herhangi bir kullanıcı girdisi gibi doğrulayın.

  4. Sonuçları geri gönderin

    Assistant mesajını, ardından her çağrı için tool_call_id ve sonucu metin olarak içeren bir tool mesajı ekleyin. API'yi yeniden çağırın; model metinle yanıt verene kadar tekrarlayın.

Python: gpt-oss-120b ile eksiksiz bir araç döngüsü
import json
import os

from openai import OpenAI

client = OpenAI(
    base_url="https://llmwithcrypto.com/api/v1",
    api_key=os.environ["LLMWITHCRYPTO_API_KEY"],
)

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_order_status",
            "description": "Return the delivery status of an order.",
            "parameters": {
                "type": "object",
                "properties": {"order_id": {"type": "string"}},
                "required": ["order_id"],
            },
        },
    }
]


def get_order_status(order_id):
    return {"order_id": order_id, "status": "shipped", "eta": "2026-10-25"}


messages = [{"role": "user", "content": "Where is my order A-1042?"}]
while True:
    resp = client.chat.completions.create(model="gpt-oss-120b", messages=messages, tools=tools, max_tokens=300)
    msg = resp.choices[0].message
    if not msg.tool_calls:
        print(msg.content)
        break
    messages.append(msg)
    for call in msg.tool_calls:
        args = json.loads(call.function.arguments)
        result = get_order_status(**args)
        messages.append({"role": "tool", "tool_call_id": call.id, "content": json.dumps(result)})

Yanıtta bir araç çağrısı nasıl görünür?

Assistant mesajında metin yoktur, bir tool_calls dizisi vardır ve seçim finish_reason: "tool_calls" ile biter. Argümanlar bir nesne değil, JSON dizesi olarak gelir. Aşağıdaki kimlikler ve sayımlar örnektir.

Fonksiyon çağrısı isteyen yanıt (örnek)
{
  "id": "chatcmpl-3c9d27e1",
  "object": "chat.completion",
  "created": 1792742400,
  "model": "gpt-oss-120b",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": null,
        "tool_calls": [
          {
            "id": "call_7f31",
            "type": "function",
            "function": {
              "name": "get_order_status",
              "arguments": "{\"order_id\": \"A-1042\"}"
            }
          }
        ]
      },
      "finish_reason": "tool_calls"
    }
  ],
  "usage": {
    "prompt_tokens": 118,
    "completion_tokens": 22,
    "total_tokens": 140
  }
}

Araçların ne zaman kullanılacağını nasıl kontrol ederim?

  • "tool_choice": "auto" (tools ayarlandığında varsayılan): model karar verir.
  • "tool_choice": "none": araçlar listelense bile model metinle yanıt verir.
  • "tool_choice": "required": model en az bir araç çağırmalıdır.
  • {"type": "function", "function": {"name": "get_order_status"}}: model o tek aracı çağırmalıdır.

Her araç tanımı her çağrıda girdi olarak gönderilir, bu nedenle uzun açıklamalar ve çok sayıda araç girdi tokenlarını artırır. Açıklamaları kısa tutun ve yalnızca bir adımın ihtiyaç duyduğu araçları gönderin.

Geçerli JSON'u nasıl alırım?

response_format değerini {"type": "json_object"} yapın ve beklenen anahtarları system mesajında açıklayın: JSON modu yanıtın ayrıştırılabilir olduğunu garanti eder, istediğiniz anahtarları içerdiğini değil. Kararlı çıktı için temperature değerini düşük tutun ve kullanmadan önce ayrıştırılmış nesneyi kodunuzda kontrol edin.

Node.js: response_format ile bir JSON yanıtı
import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://llmwithcrypto.com/api/v1',
  apiKey: process.env.LLMWITHCRYPTO_API_KEY,
});

const resp = await client.chat.completions.create({
  model: 'gpt-oss-120b',
  messages: [
    { role: 'system', content: 'Reply with a JSON object {"sentiment": "positive" | "negative" | "neutral", "reason": string}.' },
    { role: 'user', content: 'The delivery was late but support fixed it in an hour.' },
  ],
  response_format: { type: 'json_object' },
  temperature: 0.2,
  max_tokens: 150,
});
const result = JSON.parse(resp.choices[0].message.content);
console.log(result.sentiment, '-', result.reason);

Araçlar ve JSON: sık sorulan sorular

Araç çağrıları ekstra ücrete tabi mi?

Kendilerine ait bir ücret yoktur. Araç tanımları, çağrı ve geri gönderdiğiniz sonuçların hepsi token'dır ve diğerleri gibi faturalandırılır. Token başına bakiyenizden ödersiniz: girdi ve çıktı token'ları modelin kendi tokenizer'ı ile sayılır ve o modelin 1M token başına fiyatından ücretlendirilir. Hata ile sonuçlanan bir çağrı ücretsizdir.

Model aynı anda birkaç aracı çağırabilir mi?

Bazı modeller tool_calls içinde birden fazla çağrı döndürür. Hepsini çalıştırın ve bir sonraki istekten önce her çağrı için bir tool mesajı gönderin.

API fonksiyonlarımı çalıştırır mı?

Hayır. Model yalnızca hangi fonksiyonun hangi argümanlarla çağrılacağını söyler; onu kodunuz çalıştırır. Bizim tarafımızda hiçbir şey yürütülmez ve alışverişin hiçbir parçası saklanmaz: Prompt'larınızı veya modelin yanıtlarını saklamayız: bir yanıt gönderildiğinde metni kaybolur. Her çağrı, zaman, hesap, model ve token sayılarını içeren tek bir log satırı bırakır; bu satırlar 30 gün sonra silinir.

DeepSeek V4 Pro 1M girdi token'ı başına $1.254'ten · KYC olmadan

API anahtarı alın