İçeriğe geç

Responses API

LLMTR gateway, OpenAI'ın yeni /v1/responses endpoint'ini destekler. GPT-5 Codex serisi (gpt-5-codex, gpt-5.1-codex, gpt-5.1-codex-max, gpt-5.1-codex-mini, gpt-5.2-codex, gpt-5.3-codex) gibi modeller yalnızca bu endpoint üzerinden çalışır; bu modelleri /v1/chat/completions'a göndermek 400 endpoint_mismatch hatası döner.

  • Reasoning effort kontrolü gerektiğinde (low / medium / high / xhigh)
  • Cached input avantajı olan modelleri kullanırken
  • Sadece Responses endpoint'ini destekleyen modellerle çalışırken

Klasik chat tamamlama akışı için /v1/chat/completions kullanmaya devam edin.

POST /v1/responses
Authorization: Bearer llmtr-your_key
Content-Type: application/json
AlanTipZorunluAçıklama
modelstringevetCanonical model ID (örn. openai/gpt-5.1-codex). İsteğe bağlı suffix: openai/gpt-5.3-codex:max
messages veya inputarray | stringevetOpenAI mesaj formatı veya doğrudan input
instructionsstringhayırSystem prompt karşılığı
reasoningobjecthayır{ "effort": "low" | "medium" | "high" | "xhigh", "summary": "auto" | "concise" | "detailed" }
max_output_tokensintegerhayırÇıktı token üst sınırı
temperaturenumberhayırModelin desteklediği aralıkta
toolsarrayhayırFunction calling (destekleyen modellerde)
tool_choicestring | objecthayırauto, none veya belirli tool
response_formatobjecthayırStructured output (Chat Completions yazımı; text.format'a çevrilir)
textobjecthayırStructured output (Responses yazımı): { "format": { "type": "json_schema", ... } }
streambooleanhayırSSE akışı. Sağlayıcı akışı olduğu gibi aktarılır
Terminal window
curl "$LLMTR_BASE_URL/v1/responses" \
-H "Authorization: Bearer llmtr-your_key" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-5.1-codex:high",
"messages": [
{"role": "user", "content": "Refaktör et: bu fonksiyonu pure yap"}
]
}'

Aynı isteği reasoning.effort body alanı ile de yapabilirsiniz:

Terminal window
curl https://llmtr.com/v1/responses \
-H "Authorization: Bearer llmtr-your_key" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-5.1-codex",
"reasoning": { "effort": "high" },
"messages": [
{"role": "user", "content": "Refaktör et: bu fonksiyonu pure yap"}
]
}'
{
"id": "resp_xxx",
"object": "response",
"status": "completed",
"model": "gpt-5.1-codex",
"output": [
{
"type": "message",
"role": "assistant",
"content": [
{ "type": "output_text", "text": "İşte refaktör edilmiş hali..." }
]
}
],
"usage": {
"input_tokens": 142,
"input_tokens_details": { "cached_tokens": 24 },
"output_tokens": 318,
"output_tokens_details": { "reasoning_tokens": 256 }
}
}

status alanı completed, incomplete veya failed olabilir.

stream: true gönderdiğinizde gateway sağlayıcının SSE akışını olduğu gibi aktarır: token'lar model ürettikçe gelir, yanıtın tamamlanması beklenmez.

Terminal window
curl https://llmtr.com/v1/responses \
-H "Authorization: Bearer llmtr-your_key" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-5.3-codex",
"input": "Cursor tabanlı sayfalamayı anlat.",
"stream": true
}'

Akış, OpenAI Responses olay adlarını kullanır:

event: response.created
data: {"type":"response.created","response":{"id":"resp_xxx","model":"openai/gpt-5.3-codex"}}
event: response.output_text.delta
data: {"type":"response.output_text.delta","delta":"Cursor"}
event: response.completed
data: {"type":"response.completed","response":{"status":"completed","usage":{...}}}
data: [DONE]

Notlar:

  • Olay gövdelerindeki response.model alanı canonical LLMTR model ID'sine çevrilir; non-streaming yanıtla aynı değeri görürsünüz.
  • usage yalnızca response.completed olayında gelir. Faturalama bu bloktan yapılır, dolayısıyla streaming ile non-streaming arasında maliyet farkı yoktur.
  • Akış başlamadan önce oluşan hatalar normal HTTP durum kodu döner. Akış başladıktan sonra oluşan hatalar akışın içinde {"error":{...}} gövdesiyle bildirilir, çünkü 200 durum satırı çoktan gönderilmiştir.
  • Bağlantı beklerken düzenli aralıklarla SSE yorum satırı (: keepalive) gönderilir. Uyumlu tüm SSE ayrıştırıcıları bunları yok sayar.

İki yazım da kabul edilir. Chat Completions'tan gelen response_format, Responses API'nin text.format alanına çevrilir:

Terminal window
curl https://llmtr.com/v1/responses \
-H "Authorization: Bearer llmtr-your_key" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-5.3-codex",
"input": "İstanbul için hava JSON'u üret.",
"text": {
"format": {
"type": "json_schema",
"name": "weather",
"strict": true,
"schema": {
"type": "object",
"properties": { "city": { "type": "string" }, "tempC": { "type": "number" } },
"required": ["city", "tempC"],
"additionalProperties": false
}
}
}
}'

Hem response_format hem text.format gönderirseniz text.format kazanır.

  • input_tokens_details.cached_tokens, cache kullanılan token miktarını gösterir.
  • output_tokens_details.reasoning_tokens, reasoning sırasında harcanan tokenları gösterir.
  • Toplam maliyet modelin kendi fiyatlandırmasına göre hesaplanır; platform marjı yalnızca kredi yüklemede uygulanır.
  • Üretim kullanımı öncesinde ilgili modelin güncel fiyatını dashboard veya katalog üzerinden doğrulayın.

xai/grok-4.3, xai/grok-4.20-multi-agent, xai/grok-4.20-0309-reasoning ve xai/grok-4.20-0309-non-reasoning için önerilen endpoint /v1/responses:

Terminal window
curl https://llmtr.com/v1/responses \
-H "Authorization: Bearer llmtr-your_key" \
-H "Content-Type: application/json" \
-d '{
"model": "xai/grok-4.3",
"input": "Bir TypeScript servis fonksiyonunu sadeleştir."
}'

Uyumluluk için /v1/chat/completions çağrıları da kabul edilir; gateway bu istekleri içeride Responses akışına çevirir ve OpenAI Chat Completions formatında yanıt döner. LLMTR bu modellerde store:false gönderir. store:true, previous_response_id, instructions ve xAI server-side tools alanları bu sürümde reddedilir. Sistem mesajı gerekiyorsa input veya messages içindeki ilk system ya da developer mesajını kullanın.

Grok 4.3'te 200K üzeri input şu an desteklenmiyor; bu isteklere pricing_unverified döner. xAI bir metin isteği için gerçek maliyeti bildirmezse, istek sağlayıcı tarafında başarılı olsa bile ücretlendirme yapılmaz ve provider_usage_missing döner — bu durumda sizden ücret alınmaz. Grok 4.20 Multi-Agent modelinde reasoning.effort yalnızca ajan sayısını kontrol eder; high ve xhigh daha fazla token tüketebilir.

Image, video, TTS ve STT örnekleri dahil Grok ailesinin tam kullanımı için xAI Grok modelleri sayfasına bakın.

Reasoning seviyeleri ayrı bir sayfada detaylandırılmıştır: Reasoning effort.

HTTPerror.typeAnlamı
400invalid_request_errorGeçersiz parametre / bilinmeyen suffix
400endpoint_mismatchModel /v1/responses gerektiriyor ama /v1/chat/completions çağrıldı (veya tersi)
400unsupported_capabilityModel bu reasoning seviyesini veya modaliteyi desteklemiyor
401auth_errorGeçersiz API anahtarı
402insufficient_balanceBakiye yetersiz
429rate_limit_exceededRPM/TPM limiti aşıldı
502provider_errorSağlayıcı hatası

Detay için Hatalar bölümüne bakın.