Anthropic Messages
LLMTR, OpenAI biçiminin yanında Anthropic Messages biçimini de sunar. Aynı API anahtarı, aynı kota ve aynı fiyatlandırma geçerlidir; yalnızca istek ve yanıt şekli farklıdır.
Bu uç sayesinde Anthropic SDK'ları ve Anthropic biçimini konuşan ajan araçları LLMTR'ye doğrudan bağlanabilir. Katalogdaki tüm sohbet modelleri bu uçtan çağrılabilir.
Request
Bölüm başlığı “Request”POST /v1/messagesx-api-key: llmtr-your_keyanthropic-version: 2023-06-01Content-Type: application/json{ "model": "qwen/qwen3.8-max", "max_tokens": 1024, "system": "Kısa ve teknik yanıtla.", "messages": [ { "role": "user", "content": "Cursor tabanlı sayfalama nedir?" } ]}Kimlik doğrulama için x-api-key veya Authorization: Bearer başlıklarından biri kullanılabilir; ikisi de aynı anahtarı kabul eder.
max_tokens zorunludur. Anthropic biçiminde varsayılanı yoktur, verilmezse istek 400 döner.
Response
Bölüm başlığı “Response”{ "id": "msg_...", "type": "message", "role": "assistant", "model": "qwen/qwen3.8-max", "content": [ { "type": "text", "text": "Cursor tabanlı sayfalama..." } ], "stop_reason": "end_turn", "stop_sequence": null, "usage": { "input_tokens": 24, "output_tokens": 180 }}stop_reason değerleri: end_turn, max_tokens, tool_use.
Streaming
Bölüm başlığı “Streaming”stream: true verildiğinde yanıt server-sent events olarak akar. Olay sırası Anthropic ile aynıdır:
message_startcontent_block_startcontent_block_delta (text_delta veya input_json_delta)content_block_stopmessage_delta (stop_reason ve usage)message_stopToken sayıları message_delta olayındaki usage alanında gelir.
curl -N https://llmtr.com/v1/messages \ -H "x-api-key: llmtr-your_key" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{ "model": "qwen/qwen3.8-max", "max_tokens": 512, "stream": true, "messages": [{ "role": "user", "content": "Merhaba" }] }'Tool calling
Bölüm başlığı “Tool calling”Anthropic biçimindeki araç tanımları desteklenir:
{ "model": "qwen/qwen3.8-max", "max_tokens": 1024, "tools": [ { "name": "get_weather", "description": "Bir şehrin hava durumunu döner", "input_schema": { "type": "object", "properties": { "city": { "type": "string" } }, "required": ["city"] } } ], "messages": [{ "role": "user", "content": "Ankara'da hava nasıl?" }]}Model araç çağırdığında yanıt stop_reason: "tool_use" ve bir tool_use bloğu içerir. Sonucu bir sonraki turda tool_result bloğu ile gönderin:
{ "role": "user", "content": [ { "type": "tool_result", "tool_use_id": "call_1", "content": "22 derece" } ]}tool_choice değerleri: auto, any, tool (adlandırılmış), none. anthropic/claude-sonnet-5.5 yalnızca auto ve none kabul eder; any ve tool 400 döner.
Görsel girdi
Bölüm başlığı “Görsel girdi”Görsel kabul eden modellerde image bloğu kullanılır:
{ "role": "user", "content": [ { "type": "image", "source": { "type": "base64", "media_type": "image/png", "data": "iVBOR..." } }, { "type": "text", "text": "Bu görselde ne var?" } ]}source.type olarak base64 veya url verilebilir.
Anthropic SDK ile kullanım
Bölüm başlığı “Anthropic SDK ile kullanım”import anthropic
client = anthropic.Anthropic( base_url="https://llmtr.com", api_key="llmtr-your_key",)
message = client.messages.create( model="qwen/qwen3.8-max", max_tokens=1024, messages=[{"role": "user", "content": "Merhaba"}],)print(message.content[0].text)Claude Code ile kullanım
Bölüm başlığı “Claude Code ile kullanım”Claude Code, ANTHROPIC_BASE_URL ile bir gateway'e yönlendirilebilir:
export ANTHROPIC_BASE_URL=https://llmtr.comexport ANTHROPIC_AUTH_TOKEN=llmtr-your_keyexport ANTHROPIC_MODEL=anthropic/claude-sonnet-5PowerShell:
$env:ANTHROPIC_BASE_URL = "https://llmtr.com"$env:ANTHROPIC_AUTH_TOKEN = "llmtr-your_key"$env:ANTHROPIC_MODEL = "anthropic/claude-sonnet-5"Bağlantıyı doğrulamak için:
curl https://llmtr.com/v1/messages \ -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{"model":"anthropic/claude-sonnet-5","max_tokens":16,"messages":[{"role":"user","content":"test"}]}'Model listesi /v1/models ucundan okunur. Claude Code'un model seçicisinde LLMTR modellerini görmek için CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 ayarlayın; seçici yalnızca kimliğinde claude veya anthropic geçen model kimliklerini listeler. Diğer modelleri ANTHROPIC_MODEL ile doğrudan verebilirsiniz. Claude Code arka plan işleri için ayrı bir küçük model kullanır; onu ANTHROPIC_DEFAULT_HAIKU_MODEL belirler. İki değişkene aynı kimliği verirseniz oturumdaki bütün istekler o modele gider.
Claude Code kendi model listesinde olmayan bir kimlik gördüğünde bağlam penceresini 200K varsayar ve bir uyarı yazar. İstek çalışmaya devam eder. Modelin gerçek penceresini bildirmek için:
export CLAUDE_CODE_MAX_CONTEXT_TOKENS=1000000Prompt cache
Bölüm başlığı “Prompt cache”cache_control işaretleri, model sayfasında cache okuma ve yazma fiyatı yayımlanan Claude modellerinde Anthropic'e iletilir. İşaret system, metin ve görsel bloklarına, araç tanımlarına, tool_result bloklarına veya isteğin üst düzeyine konabilir:
{ "type": "ephemeral", "ttl": "1h" }ttl değeri "5m" veya "1h" olabilir; verilmezse 5 dakika geçerlidir. Diğer modellerde işaret yoksayılır ve fiyatlandırmayı etkilemez.
Yanıttaki usage alanında cache'e yazılan token sayısı cache_creation_input_tokens, cache'ten okunan token sayısı cache_read_input_tokens olarak gelir. input_tokens bu ikisinin dışında kalan kısımdır.
Desteklenmeyen alanlar
Bölüm başlığı “Desteklenmeyen alanlar”Aşağıdaki alanlar bu uçta şu an etkisizdir. İstek reddedilmez, alan yoksayılır:
context_management
thinking alanında {"type": "disabled"} ya da {"type": "between_tools"}, model sayfasındaki effort listesinde none bulunan Claude modellerinde none seçmekle aynı sonucu verir; aynı istekte gönderilen effort o zaman uygulanmaz. Diğer modellerde ve diğer thinking değerlerinde alan yoksayılır.
Yanıt yalnızca text ve tool_use blokları içerir.
Hata biçimi
Bölüm başlığı “Hata biçimi”Hatalar Anthropic zarfıyla döner:
{ "type": "error", "error": { "type": "invalid_request_error", "message": "max_tokens is required" }}error.type değerleri HTTP durumuna göre belirlenir: 400 invalid_request_error, 401 authentication_error, 403 permission_error, 404 not_found_error, 413 request_too_large, 429 rate_limit_error, 5xx api_error.
Diğer uçların hata biçimi için Hatalar sayfasına bakın.