İçeriğe geç

Chat Completions

LLMTR gateway, OpenAI Chat Completions API’sine uyumludur. Tüm istekler https://llmtr.com/v1/chat/completions adresine POST edilir.

POST /v1/chat/completions
Authorization: Bearer llmtr-your_key
Content-Type: application/json
AlanTipZorunluAçıklama
modelstringevetCanonical model ID (örn. openai/gpt-4o)
messagesarrayevetOpenAI messages formatı
streambooleanhayırtrue ise SSE akışı döner
temperaturenumberhayır0-2 aralığında, default model’e göre değişir
max_tokensintegerhayırÇıktı token üst sınırı
top_pnumberhayırNucleus sampling
frequency_penaltynumberhayır-2 ile 2 arası
presence_penaltynumberhayır-2 ile 2 arası
stopstring/arrayhayırDurdurma dizileri
response_formatobjecthayır{ "type": "json_object" } destekleyen modellerde
toolsarrayhayırFunction calling (destekleyen modellerde)
tool_choicestring/objecthayırauto, none veya belirli tool
Terminal window
curl https://llmtr.com/v1/chat/completions \
-H "Authorization: Bearer llmtr-your_key" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o",
"messages": [
{"role": "system", "content": "You are a concise assistant."},
{"role": "user", "content": "What is LLMTR?"}
],
"temperature": 0.3,
"max_tokens": 200
}'

Başarılı yanıt OpenAI formatıyla birebir aynıdır:

{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1739200000,
"model": "openai/gpt-4o",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "LLMTR is a unified gateway..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 24,
"completion_tokens": 52,
"total_tokens": 76
}
}

Tüm modeller canonical olarak provider/model şeklinde referanslanır:

  • openai/gpt-4o
  • anthropic/claude-sonnet-4.5
  • google/gemini-3.6-flash
  • deepseek/deepseek-v4-flash
  • mistral/mistral-large-latest

Tüm katalog için dashboard model listesini veya /api/models endpoint’ini kullanın.

Bir model sağlayıcı tarafından kullanımdan kaldırıldığında LLMTR isteği sessizce başka bir modele yönlendirmez. Emeklilik tarihinden sonra istek 410 ile reddedilir ve yanıt hangi modele geçmeniz gerektiğini söyler:

{
"error": {
"type": "model_retired",
"message": "Model \"google/gemini-2.5-flash\" was retired on 2026-10-16. Use \"google/gemini-3.6-flash\" instead.",
"details": {
"model": "google/gemini-2.5-flash",
"retirement_date": "2026-10-16",
"replacement_model": "google/gemini-3.6-flash",
"status": "retired"
}
}
}

Model sayfası ve katalog kartı, emeklilik tarihinden önce de uyarı gösterir; /v1/models çıktısı ise emekli modelleri listelemez.

Google, Gemini 2.5 metin modellerini Gemini Enterprise Agent Platform üzerinde kullanımdan kaldırıyor. LLMTR bu üç kimliği 16 Ekim 2026 tarihinde kapatır:

Kapanan modelÖnerilen karşılığı
google/gemini-2.5-flashgoogle/gemini-3.6-flash
google/gemini-2.5-flash-litegoogle/gemini-3.5-flash-lite
google/gemini-2.5-progoogle/gemini-3.1-pro-preview

Diğer google/gemini-2.5-* modelleri (görsel, TTS, native audio, computer use) bu kapanmanın kapsamında değildir.

Bazı sağlayıcılar ek body alanları veya özel seçenekler destekler. Desteklenen alanları doğrudan isteğinize ekleyebilirsiniz.

tencent/hy3 düşünmeyi varsayılan olarak kapalı tutar. Düşünmeyi açmak için canonical suffix veya standart body alanını kullanın:

{ "model": "tencent/hy3:low", "messages": [{ "role": "user", "content": "Bu kodu analiz et." }] }
{ "model": "tencent/hy3", "reasoning": { "effort": "high" }, "messages": [{ "role": "user", "content": "Bu kodu analiz et." }] }

Yalnız low ve high desteklenir. tools bulunan low istekleri, Hy3 adaptive-thinking davranışı nedeniyle upstream’de high olarak yürütülür. Yanıtta reasoning_content, usage.completion_tokens_details.reasoning_tokens ve cache hit olduğunda usage.prompt_tokens_details.cached_tokens alanları bulunabilir. Reasoning tokenları zaten completion_tokens içindedir ve ikinci kez ücretlendirilmez.

Çok adımlı tool calling sırasında dönen assistant mesajını tool_calls, content ve reasoning_content alanlarıyla birlikte geçmişe ekleyin. Alanı düşürmek modelin sonraki turdaki reasoning bağlamını bozar.

llmtr/qwen3-5-4b Türkiye’de barındırılan bir modeldir: istekler üçüncü taraf bir sağlayıcıya yönlendirilmez. 128K bağlam penceresi (prompt + cevap birlikte) sunar, görsel girdi okur ve tool calling destekler.

Düşünme varsayılan olarak açıktır. Model yanıttan önce bir akıl yürütme üretir ve bunu message.reasoning_content alanında döndürür. Akıl yürütme max_tokens bütçesinden harcanır: bütçe küçükse tamamı akıl yürütmede tükenir, content boş döner ve finish_reason length olur. Varsayılan modda max_tokens değerini en az 2048 verin.

Düşünmeyi kapatmak için canonical suffix’i veya body alanını kullanın:

{ "model": "llmtr/qwen3-5-4b:fast", "messages": [{ "role": "user", "content": "Bu urunu tek cumlede ozetle." }], "max_tokens": 256 }
{ "model": "llmtr/qwen3-5-4b", "reasoning": false, "messages": [{ "role": "user", "content": "Bu urunu tek cumlede ozetle." }], "max_tokens": 256 }

Kapalı hâlde ekstra akıl yürütme tokenı harcanmaz, yanıt reasoning_content içermez ve yanıtlar belirgin şekilde hızlıdır. Kısa yanıt bekleyen sınıflandırma, etiketleme ve özetleme akışlarında bu modu tercih edin.

Model prompt cache destekler. Aynı prompt önekini (örneğin sabit bir sistem promptu) tekrar gönderdiğinizde cache devreye girer; cache’ten okunan token sayısı usage.prompt_tokens_details.cached_tokens alanında döner ve bu tokenlar indirimli cache read fiyatından faturalanır. Uzun sistem promptu kullanan RAG ve chatbot akışlarında maliyeti azaltmak için sabit içeriği mesaj dizisinin başında, değişen içeriği sonunda tutun.

Görsel girdi yalnızca base64 data URL olarak kabul edilir; uzak bir https:// görsel adresi 400 unsupported_input döner. Ayrıntı için LLMTR Qwen 3.5 4B sayfasına bakın. Ses ve video girdisi desteklenmez.

moonshot/kimi-k3, moonshot/kimi-k2.7-code, moonshot/kimi-k2.6 ve moonshot/kimi-k2.5 modelleri thinking varsayılan açık çalışır. moonshot/kimi-k2.7-code için non-thinking mod desteklenmez; thinking alanını hiç göndermeyin veya { "type": "enabled" } kullanın. thinking: { "type": "disabled" } 400 invalid_request döner.

moonshot/kimi-k3 için thinking kapatılabilir: istek gövdesinde "reasoning": false gönderin veya model adına :fast suffix’i ekleyin (moonshot/kimi-k3:fast). :think suffix’i thinking’i açık tutar; suffix ve reasoning alanı verilmezse varsayılan davranış thinking açıktır. Thinking kapalıyken yanıt reasoning_content içermez ve reasoning tokenı üretilmez. Reasoning tokenları output olarak faturalandığı için kısa yanıtlarda bile max_tokens değerini yüksek tutun (en az 1024 önerilir).

Kimi K3, K2.7 Code, K2.6 ve K2.5 için sampling değerleri sabittir: temperature=1, top_p=0.95, n=1, presence_penalty=0, frequency_penalty=0. Farklı n, presence/frequency penalty veya Kimi’nin desteklemediği tool_choice biçimleri upstream hatası beklenmeden 400 döndürür. K2 ailesinde tool_choice yalnızca auto veya none kabul eder; kimi-k3 ek olarak required destekler. Belirli bir fonksiyonu zorlayan {"type": "function", ...} biçimi hiçbir Kimi modelinde desteklenmez.

kimi-k3 web araması desteklemez; $web_search içeren istekler 400 döner. Web araması gereken akışlarda kimi-k2.7-code veya kimi-k2.6 kullanın.

Çok adımlı tool calling sırasında Kimi, assistant tool-call mesajında reasoning_content alanı döndürebilir. Sonraki tool result turunda bu assistant mesajını tool_calls ve reasoning_content ile birlikte koruyun; LLMTR bu provider-specific alanı tur boyunca korur.

Medya girdilerinde remote URL yerine base64 data URL kullanın. Görsel ve video parçaları data: URL olarak gönderilmelidir; remote medya URL’leri 400 unsupported_input döner.

Aktif chat model kimlikleri: mimo/mimo-v2.5-pro, mimo/mimo-v2.5.

Eski MiMo V2 model kimlikleri 30 Haziran 2026 00:00 Beijing saati sonrasında model_retired (HTTP 410) hatası döner. Endpoint ve API key değişmez; model ID’yi aşağıdaki replacement kimliğe taşıyın.

Eski model IDReplacement model IDGeçiş davranışı
mimo/mimo-v2-promimo/mimo-v2.5-pro1 Haziran 2026’dan itibaren LLMTR tarafından otomatik yönlendirilir
mimo/mimo-v2-omnimimo/mimo-v2.51 Haziran 2026’dan itibaren LLMTR tarafından otomatik yönlendirilir
mimo/mimo-v2-flashmimo/mimo-v2.518 Haziran 2026’dan itibaren MiMo upstream tarafından otomatik yönlendirilir; 30 Haziran 2026 sonrası eski ID kabul edilmez

LLMTR’de MiMo TTS modeli şu an expose edilmez; TTS/ASR desteği geldiğinde ayrı endpoint ve doküman ile duyurulacaktır.

Web aramasını etkinleştirme. İki yöntem de kullanılabilir:

// Yöntem 1: Tool alanı ile
{ "tools": [{ "type": "web_search" }] }
// Yöntem 2: Body alanı ile
{ "webSearchEnabled": true }

Web araması kullanılan isteklerde ek sağlayıcı ücretleri oluşabilir. Üretim trafiği göndermeden önce ilgili modelin fiyatını kontrol edin.

Thinking kontrolü. Destekleyen modellerde body alanına thinking ekleyerek davranışı ayarlayabilirsiniz:

{ "thinking": { "type": "enabled" } } // veya "disabled"
HTTPerror.typeAnlamı
400invalid_request_errorGeçersiz parametre / eksik alan
401auth_errorGeçersiz veya süresi dolmuş API anahtarı
403forbiddenBu model için yetki yok
410model_retiredModel kullanımdan kaldırıldı; hata mesajındaki replacement model ID’sini kullanın
429rate_limit_exceededRate limit aşıldı
500internal_errorGateway iç hatası
502provider_errorSağlayıcı tarafında hata

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