Chat Completions
LLMTR gateway, OpenAI Chat Completions API’sine uyumludur. Tüm istekler https://llmtr.com/v1/chat/completions adresine POST edilir.
Request
Section titled “Request”POST /v1/chat/completionsAuthorization: Bearer llmtr-your_keyContent-Type: application/jsonGövde parametreleri
Section titled “Gövde parametreleri”| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
model | string | evet | Canonical model ID (örn. openai/gpt-4o) |
messages | array | evet | OpenAI messages formatı |
stream | boolean | hayır | true ise SSE akışı döner |
temperature | number | hayır | 0-2 aralığında, default model’e göre değişir |
max_tokens | integer | hayır | Çıktı token üst sınırı |
top_p | number | hayır | Nucleus sampling |
frequency_penalty | number | hayır | -2 ile 2 arası |
presence_penalty | number | hayır | -2 ile 2 arası |
stop | string/array | hayır | Durdurma dizileri |
response_format | object | hayır | { "type": "json_object" } destekleyen modellerde |
tools | array | hayır | Function calling (destekleyen modellerde) |
tool_choice | string/object | hayır | auto, none veya belirli tool |
Temel örnek
Section titled “Temel örnek”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 }'Response
Section titled “Response”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 }}Model kimliği formatı
Section titled “Model kimliği formatı”Tüm modeller canonical olarak provider/model şeklinde referanslanır:
openai/gpt-4oanthropic/claude-sonnet-4.5google/gemini-2.5-flashdeepseek/deepseek-v4-flashmistral/mistral-large-latest
Tüm katalog için dashboard model listesini veya /api/models endpoint’ini kullanın.
Sağlayıcıya özgü davranışlar
Section titled “Sağlayıcıya özgü davranışlar”Bazı sağlayıcılar ek body alanları veya özel seçenekler destekler. Desteklenen alanları doğrudan isteğinize ekleyebilirsiniz.
Tencent Hy3
Section titled “Tencent Hy3”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 Qwen 3.5 4B (Türkiye)
Section titled “LLMTR Qwen 3.5 4B (Türkiye)”llmtr/qwen3-5-4b Türkiye’de barındırılan bir modeldir: istekler üçüncü taraf bir sağlayıcıya yönlendirilmez. 64K bağlam penceresi (prompt + cevap birlikte) sunar ve tool calling destekler.
Düşünme varsayılan olarak kapalıdır. Açmak için canonical suffix’i veya body alanını kullanın:
{ "model": "llmtr/qwen3-5-4b:think", "messages": [{ "role": "user", "content": "Bu problemi adım adım çöz." }], "max_tokens": 2048 }{ "model": "llmtr/qwen3-5-4b", "reasoning": true, "messages": [{ "role": "user", "content": "Bu problemi adım adım çöz." }], "max_tokens": 2048 }Düşünme açıkken model yanıttan önce uzun bir akıl yürütme üretir ve bu message.reasoning_content alanında döner. 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. Düşünmeyi açtığınızda max_tokens değerini en az 2048 verin. Kapalı hâlde ekstra akıl yürütme tokenı harcanmaz ve yanıtlar belirgin şekilde hızlıdır.
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.
Model yalnız metin kabul eder; görsel, ses ve video girdisi gönderilirse istek 400 unsupported_input döner.
Moonshot AI (Kimi)
Section titled “Moonshot AI (Kimi)”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.
Xiaomi MiMo
Section titled “Xiaomi MiMo”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 ID | Replacement model ID | Geçiş davranışı |
|---|---|---|
mimo/mimo-v2-pro | mimo/mimo-v2.5-pro | 1 Haziran 2026’dan itibaren LLMTR tarafından otomatik yönlendirilir |
mimo/mimo-v2-omni | mimo/mimo-v2.5 | 1 Haziran 2026’dan itibaren LLMTR tarafından otomatik yönlendirilir |
mimo/mimo-v2-flash | mimo/mimo-v2.5 | 18 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"Hata kodları
Section titled “Hata kodları”| HTTP | error.type | Anlamı |
|---|---|---|
| 400 | invalid_request_error | Geçersiz parametre / eksik alan |
| 401 | auth_error | Geçersiz veya süresi dolmuş API anahtarı |
| 403 | forbidden | Bu model için yetki yok |
| 410 | model_retired | Model kullanımdan kaldırıldı; hata mesajındaki replacement model ID’sini kullanın |
| 429 | rate_limit_exceeded | Rate limit aşıldı |
| 500 | internal_error | Gateway iç hatası |
| 502 | provider_error | Sağlayıcı tarafında hata |
Detay için Hatalar bölümüne bakın.