İçeriğe geç

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.

POST /v1/messages
x-api-key: llmtr-your_key
anthropic-version: 2023-06-01
Content-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.

{
"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.

stream: true verildiğinde yanıt server-sent events olarak akar. Olay sırası Anthropic ile aynıdır:

message_start
content_block_start
content_block_delta (text_delta veya input_json_delta)
content_block_stop
message_delta (stop_reason ve usage)
message_stop

Token sayıları message_delta olayındaki usage alanında gelir.

Terminal window
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" }]
}'

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.

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.

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, ANTHROPIC_BASE_URL ile bir gateway'e yönlendirilebilir:

Terminal window
export ANTHROPIC_BASE_URL=https://llmtr.com
export ANTHROPIC_AUTH_TOKEN=llmtr-your_key
export ANTHROPIC_MODEL=anthropic/claude-sonnet-5

PowerShell:

Terminal window
$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:

Terminal window
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 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:

Terminal window
export CLAUDE_CODE_MAX_CONTEXT_TOKENS=1000000

Aşağıdaki alanlar bu uçta şu an etkisizdir. İstek reddedilmez, alan yoksayılır:

  • thinking — yanıt içinde thinking bloğu dönmez.
  • cache_control — prompt cache işaretleri uygulanmaz, fiyatlandırmaya etkisi olmaz.
  • context_management

Yanıt yalnızca text ve tool_use blokları içerir.

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.