DEV Community

Cover image for Claude Fable 5.1 API Nasıl Kullanılır: Apidog ile Adım Adım
Tobias Hoffmann
Tobias Hoffmann

Posted on Originally published at apidog.com

Claude Fable 5.1 API Nasıl Kullanılır: Apidog ile Adım Adım

Claude Fable 5.1 API: İlk İstekten Önbellek Doğrulamaya Uygulamalı Rehber

Claude Fable 5.1, 1 Eylül 2026'da yayımlandı. API model kimliği, tarih eki olmadan claude-fable-5-1 tam dizesidir. Fable 5 ile aynı şekilde milyon giriş belirteci başına 10$ ve milyon çıkış belirteci başına 50$ maliyetindedir; önbellek okumaları ise milyon belirteç başına 0,25$'a düşürülmüştür. Model ayrıca Fable 5'te bulunmayan üç kırılma değişikliği içerir.

Apidog'u bugün deneyin

Bu rehberde API anahtarı alma, ilk isteği gönderme, çabayı kontrol etme, akış, zorunlu tool_choice olmadan araç kullanımı, reddetme geri dönüşleri, ilerleme güncellemeleri ve usage nesnesiyle önbellek isabetlerini doğrulama adımlarını bulacaksınız. Her örnek düz HTTP ve JSON kullanır; uygulama koduna geçmeden önce istekleri Apidog içinde oluşturup hata ayıklayabilirsiniz.

Mevcut bir Fable 5 veya Opus 5 hizmetini taşıyorsanız tam taşıma rehberine de bakın. Genel bakış için Claude Fable 5.1 nedir? yazısıyla başlayabilirsiniz.

Claude Fable 5.1 API

İlk aramadan önce: 400 döndüren üç durum

1. Düşünme yapılandırılamaz, yalnızca yönlendirilebilir

Fable 5.1 her istekte uyarlanabilir düşünmeyi çalıştırır. thinking alanını atlayın veya yalnızca şu değeri kullanın:

{"type": "adaptive"}
Enter fullscreen mode Exit fullscreen mode

Aşağıdaki değerler 400 döndürür:

{"type": "disabled"}
{"type": "enabled", "budget_tokens": N}
Enter fullscreen mode Exit fullscreen mode

Opus 5'ten geliyorsanız thinking: disabled ayarını kaldırın ve harcamayı output_config.effort ile kontrol edin.

2. Zorunlu araç kullanımı kaldırıldı

Aşağıdaki ayarlar artık desteklenmez:

{"type": "any"}
{"type": "tool", "name": "..."}
Enter fullscreen mode Exit fullscreen mode

Şu hatayı alırsınız:

tool_choice: type "tool" and "any" are not supported for this model
Enter fullscreen mode Exit fullscreen mode

Çözüm için aşağıdaki araç kullanımı bölümüne bakın.

3. Kuruluşta 30 günlük veri saklama süresi bulunmalı

Fable 5.1 bir Kapsanan Modeldir. Sıfır veri saklama kullanan bir kuruluş veya çalışma alanından gelen istek, gövde doğru olsa bile 400 invalid_request_error döndürebilir.

İlk çağrınız başarısız olursa veri saklama süresini kontrol edin. Bu üç davranış, Claude Fable 5.1'deki Yenilikler belgesinde açıklanmıştır.

Adım 1: API anahtarı alın

Claude Console'a giriş yapın, kuruluş ayarlarındaki API anahtarları bölümünü açın ve yeni bir anahtar oluşturun. Anahtarı yalnızca bir kez görebileceğiniz için hemen kopyalayın.

Koda yapıştırmak yerine ortam değişkeni olarak dışa aktarın:

export ANTHROPIC_API_KEY="sk-ant-..."
Enter fullscreen mode Exit fullscreen mode

Apidog'da anahtarı ANTHROPIC_API_KEY adlı bir ortam değişkeninde saklayın ve başlıkta şu şekilde referans verin:

{{ANTHROPIC_API_KEY}}
Enter fullscreen mode Exit fullscreen mode

Böylece anahtar kaydedilmiş istek gövdesine düşmez.

Adım 2: İlk isteği gönderin

https://api.anthropic.com/v1/messages adresine aşağıdaki üç başlıkla bir POST isteği gönderin:

  • x-api-key
  • anthropic-version: 2023-06-01
  • content-type: application/json
curl https://api.anthropic.com/v1/messages \
  -H "x-[REDACTED CREDENTIAL]_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-fable-5-1",
    "max_tokens": 16000,
    "messages": [
      {"role": "user", "content": "Explain the difference between idempotent and safe HTTP methods, with one example each."}
    ]
  }'
Enter fullscreen mode Exit fullscreen mode

Python SDK ile aynı istek

import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-fable-5-1",
    max_tokens=16000,
    messages=[{"role": "user", "content": "Explain the difference between idempotent and safe HTTP methods, with one example each."}],
)

if response.stop_reason == "refusal":
    print("declined:", response.stop_details.category if response.stop_details else None)
else:
    for block in response.content:
        if block.type == "text":
            print(block.text)
Enter fullscreen mode Exit fullscreen mode

İlk çağrıdan itibaren iki alışkanlık edinin:

  1. content alanını okumadan önce stop_reason değerini kontrol edin. Sınıflandırıcı reddi, boş bir içerik dizisiyle birlikte HTTP 200 olarak dönebilir.
  2. max_tokens için yeterli alan ayırın. Bu değer düşünme ve yanıt belirteçlerini birlikte sınırlar. Düşünme her zaman açık olduğu için, düşünmeyen bir model için belirlediğiniz dar değer yanıtı kesebilir.

Varsayılan display: "omitted" davranışında, yanıtın thinking bloğunun metni boş olabilir. Bu beklenen bir durumdur. Sonraki turda bloğu değişiklik yapmadan geri gönderin.

Adım 3: Maliyeti ve derinliği effort ile kontrol edin

Fable 5.1'deki ana kontrol output_config.effort alanıdır. Değerler:

  • low
  • medium
  • high
  • xhigh
  • max

Varsayılan değer high'dır.

{
  "model": "claude-fable-5-1",
  "max_tokens": 16000,
  "output_config": {"effort": "medium"},
  "messages": [
    {
      "role": "user",
      "content": "Summarize this changelog in five bullets."
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Çaba parametresi rehberinde önerildiği gibi high ile başlayın ve kendi değerlendirmelerinize göre diğer seviyeleri test edin. Fable 5'teki seviye adları aynı miktarda düşünmeye karşılık gelmeyebileceğinden, denemeleri yeniden yapın.

Genel beklenti:

  • medium, daha düşük maliyetle Fable 5'e kabaca yaklaşabilir.
  • low, görev başına maliyette Opus ve Sonnet ile rekabetçi olabilir.
  • low seviyesinde model arama ve alma araçlarını daha az kullanıp hafızadan yanıt vermeye daha yatkındır.
  • xhigh ve max seviyelerinde model, düşünme aşamasında uzun bir taslak hazırlayıp yeniden yazabilir. Bu seviyelerde max_tokens değerini artırın.

Daha fazla örnek için Opus 5 çaba parametresi rehberine bakabilirsiniz.

Konuşma ortasında çabayı değiştirme — beta

Fable 5'te istekler arasında üst düzey çabayı değiştirmek önbelleğe alınmış önekleri düşürebiliyordu. Fable 5.1'de, boş içerikli bir system mesajı ve output_config kullanarak önbelleği geçersiz kılmadan bir sonraki kullanıcı turundan itibaren çabayı değiştirebilirsiniz.

Bu özellik için mid-conversation-output-config-2026-07-01 beta başlığını ve client.beta.messages ad alanını kullanın:

response = client.beta.messages.create(
    model="claude-fable-5-1",
    max_tokens=16000,
    output_config={"effort": "high"},
    betas=["mid-conversation-output-config-2026-07-01"],
    messages=[
        {"role": "user", "content": "Plan a migration from SQLite to PostgreSQL in three short steps."},
        {"role": "assistant", "content": "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts."},
        {"role": "system", "content": [], "output_config": {"effort": "low"}},
        {"role": "user", "content": "Summarize the plan in one sentence."},
    ],
)
Enter fullscreen mode Exit fullscreen mode

Çabayı düşürmek güvenilirdir. Büyük sıçramalar, örneğin low seviyesinden xhigh seviyesine geçiş, genellikle daha iyi sonuç verir.

Adım 4: Uzun yanıtları yayınlayın

Fable 5.1 yüksek çabayla zor görevlerde dakikalarca çalışabilir. Bu nedenle uzun sürebilecek yanıtları yayınlayın. SDK, HTTP zaman aşımını önlemek için 128.000 sınıra yakın max_tokens değerlerinde akış kullanılmasını gerektirebilir.

with client.messages.stream(
    model="claude-fable-5-1",
    max_tokens=64000,
    messages=[{"role": "user", "content": "Write a test plan for a rate-limited public API."}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
    final = stream.get_final_message()

print(final.stop_reason, final.usage.output_tokens)
Enter fullscreen mode Exit fullscreen mode

Apidog'da yayınlanan yanıtlar geldikçe işlenir. Böylece yüksek çabalı bir turda ilk metin belirtecinden önce modelin ne kadar süre düşündüğünü hızlıca görebilirsiniz.

Adım 5: Zorlamadan araç kullanımı ekleyin

Araç tanımları Fable 5 ile aynıdır. Değişen nokta, araç çağrısını garanti etme yöntemidir.

Fable 5.1'de tool_choice: {"type": "tool", ...} kullanmak 400 döndürür. Bunun yerine:

  1. tool_choice değerini auto olarak bırakın.
  2. Aracın adını talimatta açıkça belirtin.
  3. Şemada additionalProperties: false kullanın.
  4. Araca strict: true ekleyin.
record_summary_tool = {
    "name": "record_summary",
    "description": "Record the structured summary of the document.",
    "strict": True,
    "input_schema": {
        "type": "object",
        "properties": {"summary": {"type": "string"}},
        "required": ["summary"],
        "additionalProperties": False,
    },
}

response = client.messages.create(
    model="claude-fable-5-1",
    max_tokens=16000,
    tools=[record_summary_tool],
    tool_choice={"type": "auto"},
    messages=[{"role": "user", "content": "Summarize: The meeting moved to Thursday. Call the record_summary tool with your result."}],
)
Enter fullscreen mode Exit fullscreen mode

Bu yaklaşım, katı araç kullanımı sayesinde argümanların şemaya uygun olmasını sağlar.

Aracı yalnızca JSON almak için kullanıyorsanız, doğrudan output_config.format ile yapılandırılmış çıktıları tercih edin.

Uygulamanız mevcut çok turlu konuşmanın belirli turunda çağrı gerektiriyorsa, son kullanıcı mesajından sonra aracı adlandıran ve çağrının gerekli olduğunu belirten bir system mesajı ekleyin. tool_choice: {"type": "none"} ise araç çağrısının istenmediği turlarda kullanılmaya devam eder.

Araç aracılığı döngüsü

Döngü değişmez:

  1. stop_reason değerinin tool_use olmasını bekleyin.
  2. Her tool_use bloğunu yürütün.
  3. Tüm tool_result bloklarını tek bir kullanıcı mesajında gönderin.
  4. Yardımcı turunu, thinking blokları dahil olmak üzere, döndürüldüğü şekliyle eksiksiz ekleyin.

Son adım, korunmuş düşünme rehberinde açıklanan nedenlerle Fable 5.1'de özellikle önemlidir.

Bir sonraki bağımsız okumaların yalnızca görev tarafından ima edildiği uzun döngülerde Fable 5.1, Fable 5'in birkaç çağrıyı toplu işlediği yerde tur başına tek araç çağrısı yapabilir. Anthropic'in önerdiği düzeltme, her araç sonucu mesajından sonra şu tek cümlelik dürtüyü eklemektir:

Önce özel olarak neye ihtiyacınız olduğunu listeleyin; ardından bu tek yanıtta diğerinin sonucuna bağlı olmayan her öğeyi isteyin.

Bunu clear_at: "next_user_message" kullanan, tura özgü bir sistem mesajı olarak gönderin. Özellik için mid-conversation-system-clear-at-2026-08-21 beta başlığı gerekir. Önceki kopyaları konuşma geçmişinde tutun.

Adım 6: Reddedilen istekleri geri dönüşlerle ele alın

Reddedilen istekler HTTP 200 ile birlikte şu değerleri döndürür:

  • stop_reason: "refusal"
  • stop_details.category

Kategori şu değerlerden biri olabilir:

  • cyber
  • bio
  • frontier_llm
  • reasoning_extraction
  • general_harms

Reddedilen istekler çıktı üretilmeden önce ücretlendirilmez.

Sunucu tarafı geri dönüş

En basit yapı, server-side-fallback-2026-07-01 beta başlığıyla fallbacks: "default" kullanmaktır. Anthropic, reddedilen isteği kategori için önerilen modelde yeniden dener.

Fable 5.1 için izin verilen hedefler:

  • claude-opus-4-8
  • claude-opus-5
response = client.beta.messages.create(
    model="claude-fable-5-1",
    max_tokens=16000,
    fallbacks="default",
    betas=["server-side-fallback-2026-07-01"],
    messages=[{"role": "user", "content": "Audit this authentication middleware for logic bugs."}],
)

fallback_ran = any(
    entry.type == "fallback_message" for entry in (response.usage.iterations or [])
)
if fallback_ran and response.stop_reason != "refusal":
    print("served by", response.model)
Enter fullscreen mode Exit fullscreen mode

Yanıtın üst düzey model alanı, isteği gerçekten sunan modeli belirtir. fallback_message içerik bloğunu da turu geri yankılarken bulunduğu yerde koruyun.

Sınırlamalar:

  • fallbacks, Batches API'de desteklenmez.
  • Bedrock, Google Cloud ve Foundry'de kullanılamaz.
  • Bu platformlarda SDK'nın BetaRefusalFallbackMiddleware istemcisini kullanmanız gerekir.

Faturalandırma, yapışkan yönlendirme ve geri dönüş kredisi ayrıntıları için Reddedilenleri ele alma rehberine bakın.

Adım 7: Uzun turlarda ilerleme güncellemelerini alın

Araç çağrıları arasında Fable 5.1, bulduğu ve bir sonraki adımda yapacağı şeylerle ilgili kısa notlar yazabilir. Bu notlar, araç çağrısından hemen önce ayrı thinking blokları olarak gelir.

Varsayılan display altında bu bloklar boştur. Metin olarak almak için thinking-display-updates-2026-08-18 beta başlığıyla display: "updates" ayarlayın:

{
  "model": "claude-fable-5-1",
  "max_tokens": 16000,
  "thinking": {"type": "adaptive", "display": "updates"},
  "tools": [...],
  "messages": [
    {
      "role": "user",
      "content": "Review the PRs open against our billing service."
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Metni boş olmayan thinking bloklarını durum satırı olarak görüntüleyebilirsiniz. Modelin daha az güncelleme üretmesi nedeniyle, kullanıcı arayüzünüz anlatıya bağlıysa bulguları nihai yanıta saklamasını isteyen istem satırlarını kaldırın.

Adım 8: 0,25$ önbellek oranını usage ile doğrulayın

İstem önbellekleme, Fable 5.1'in fiyat avantajının en belirgin olduğu alandır. Kararlı öneki cache_control ile işaretleyin:

response = client.messages.create(
    model="claude-fable-5-1",
    max_tokens=16000,
    system=[{"type": "text", "text": LONG_STABLE_SYSTEM_PROMPT, "cache_control": {"type": "ephemeral"}}],
    messages=[{"role": "user", "content": "Which endpoints in the spec lack an error schema?"}],
)
u = response.usage
print(u.input_tokens, u.cache_creation_input_tokens, u.cache_read_input_tokens)
Enter fullscreen mode Exit fullscreen mode

İlk gönderimde:

cache_creation_input_tokens > 0
Enter fullscreen mode Exit fullscreen mode

Bu kullanım, 5 dakikalık TTL için milyon belirteç başına 12,50$ olarak faturalandırılır.

Beş dakika içinde aynı önekle yapılan ikinci gönderimde:

cache_read_input_tokens > 0
Enter fullscreen mode Exit fullscreen mode

olmalıdır. Bu belirteçler milyon başına 0,25$'dan faturalandırılır.

İkinci istekte değer sıfır kalıyorsa önekte her seferinde değişen bir şey vardır. Şunları kontrol edin:

  • Sistem istemindeki zaman damgaları
  • Sıralanmamış JSON
  • Değişken araç dizileri
  • Değişen önceki mesajlar

Önbelleklenebilir minimum istem uzunluğu 512 belirteçtir.

Bir önbellek ıskası, isabetten 40 kat daha pahalıdır. Bu nedenle önbelleği sıcak tutmak Fable 5'e göre daha önemlidir. Mesaj başına çaba ve tura özgü sistem mesajları, sıfırlama olmadan oturum ortasında değişiklik yapabilmenizi sağlar.

Önbelleği sıfırlayan düzenlemeler — örneğin sistemi yeniden oluşturmak veya önceki turları değiştirmek — düşünme bloklarını da geçersiz kılar. Yalnızca ekleme disiplini bu nedenle iki avantaj sağlar.

Ayrıntılı fiyatlar için Fable 5.1 fiyatlandırma dökümüne bakın.

Tüm akışı Apidog'da test edin

Yukarıdaki adımları tek bir Apidog koleksiyonuna kaydedin:

  • İlk çağrı
  • effort varyantları
  • Yayınlama
  • Araç döngüsü
  • Geri dönüş
  • Önbellek kontrolü

Anahtar ve model için ortam değişkenleri kullanın. Böylece tüm koleksiyonu claude-fable-5 ile claude-fable-5-1 arasında tek bir düzenlemeyle değiştirebilirsiniz.

Aşağıdaki doğrulamaları ekleyin:

  • İyi huylu test istemlerinde stop_reason değeri refusal değildir.
  • İkinci önbellek isteğinde usage.cache_read_input_tokens sıfırdan büyüktür.
  • Düşünme-bağlama başlığıyla yapılan çalıştırmada input_transformations içinde reason: "prefix_binding_mismatch" yoktur.

Her yapılandırma değişikliğinden önce ve sonra koleksiyonu çalıştırın. Kurulum için Apidog'u indirin. Aynı koleksiyon Apidog CLI ile CI kontrolü olarak da çalıştırılabilir.

Sık karşılaşılan hatalar ve tuzaklar

  • 400 tool_choice: type "tool" and "any" are not supported for this model

    auto, açık bir talimat ve strict: true kullanın.

  • thinking: {"type": "disabled"} üzerinde 400

    thinking alanını kaldırın. Çabayı output_config.effort ile düşürün.

  • Geçerli bir gövdeyle birlikte 400 invalid_request_error

    Kuruluşun veya çalışma alanının 30 günlük veri saklama süresine sahip olup olmadığını kontrol edin.

  • 400 Invalid signature in thinking block

    Önceki bir tur, sistem istemi veya araç dizisi değiştirilmiştir. Korunmuş düşünme rehberindeki kurallara uyun.

  • Sessiz veya boş düşünme metni

    display: "omitted" altında bu beklenen davranıştır. Görüntüleme gerekiyorsa summarized veya updates kullanın.

  • Önbellek okumaları sıfır

    Önek değişkendir. Zaman damgalarını, JSON sıralamasını ve araç dizilerini denetleyin.

  • Öncelik Katmanı doğrulama hatası

    Fable 5.1 Öncelik Katmanı'nı desteklemez; Fable 5 destekler.

SSS

Claude Fable 5.1 API model kimliği nedir?

Anthropic API için:

claude-fable-5-1
Enter fullscreen mode Exit fullscreen mode

Amazon Bedrock için:

anthropic.claude-fable-5-1
Enter fullscreen mode Exit fullscreen mode

Google Cloud, Microsoft Foundry ve AWS üzerindeki Claude Platformu için claude-fable-5-1 kullanılır.

Beta başlığı gerekli mi?

Hayır. Temel model, uyarlanabilir düşünme, çaba, araçlar ve önbellekleme standart şu başlıkla çalışır:

anthropic-version: 2023-06-01
Enter fullscreen mode Exit fullscreen mode

Beta başlıkları yalnızca şu özellikler için gereklidir:

  • Mesaj başına çaba
  • Tura özgü sistem mesajları
  • İlerleme güncellemeleri
  • Sunucu tarafı geri dönüşler
  • Düşünme-bağlama kontrolleri

Fable 5.1'de araç çağrısını zorlayabilir miyim?

Hayır. tool_choice içindeki any ve tool seçenekleri 400 döndürür.

Şema geçerli argümanlar için:

  • auto kullanın.
  • İstemde aracın adını belirtin.
  • strict: true ayarlayın.

JSON çıkarımı için bunun yerine yapılandırılmış çıktıları tercih edin.

Maksimum çıktı uzunluğu nedir?

Messages API'de maksimum çıktı 128.000 belirteçtir. Büyük yanıtları yayınlayın. 300.000 belirteçlik Batch API beta sürümü Fable 5.1 için listelenmemiştir.

Daha ucuz önbellek okumalarını nasıl görürüm?

Tekrarlanan istekte şu alanı kontrol edin:

response.usage.cache_read_input_tokens
Enter fullscreen mode Exit fullscreen mode

Faturalandırma oranları:

  • Fable 5.1: milyon başına 0,25$
  • Fable 5: milyon başına 1$
  • Opus 5: milyon başına 0,50$

Fable 5 API rehberi hâlâ geçerli mi?

Büyük ölçüde evet. Fable 5 API rehberi aynı uç noktayı kapsar. Ancak zorunlu araç kullanımı örnekleri artık 400 döndürür; ayrıca rehber, mesaj başına çaba ve ilerleme güncellemeleri eklenmeden önce yazılmıştır.

Top comments (0)