Claude Fable 5 API Nasıl Kullanılır

Claude Fable 5 API'yi çalışan Python, TypeScript ve curl koduyla çağırın: akış, araç kullanımı, hatalar, maliyet hesaplaması, artı Apidog'da nasıl test edeceğiniz.

INEZA Felin-Michel

INEZA Felin-Michel

10 June 2026

Claude Fable 5 API Nasıl Kullanılır

Kurumsal İçin Apidog

Şirket İçi (On-Premises) Dağıtım

SSO ve RBAC

SOC 2 Uyumlu

Apidog Enterprise'ı Keşfedin

Anthropic, Claude Fable 5'i 9 Haziran 2026'da piyasaya sürdü ve eğer geçiminizi kod yazarak sağlıyorsanız, Claude Fable 5 API'si sizin için önemli olan kısımdır. Zaten bildiğiniz Mesajlar API'sinde çalışır, bu yüzden değişen tek şey model dizesidir: claude-fable-5. Bu rehber, tek satırlık bir curl isteğinden akışa, araç kullanımına, hata yönetimine ve maliyet hesaplamalarına kadar çalışan kodu gerçek bir yanıtın önüne çıkarmak için ihtiyacınız olan her çağrıyı adım adım anlatır. Daha önce Claude ile bir ürün çıkardıysanız, yapısı tanıdık gelecektir. Daha eski bir modelden geçiş yaptıysanız, bu geçiş çoğunlukla bir dize değişikliğidir, tıpkı Claude Opus 4.8 API için olduğu gibi.

TL;DR

Anthropic Konsolu'ndan bir API anahtarı alın, bunu ANTHROPIC_API_KEY olarak ayarlayın, ardından model: "claude-fable-5", bir max_tokens değeri ve bir messages dizisi ile Mesajlar API'sine POST isteği gönderin. Python veya TypeScript için resmi Anthropic SDK'sını veya ham HTTP kullanın. İstek zaman aşımlarına takılmamak için uzun çıktıları akışla alın. Fiyatlandırma, milyon giriş jetonu başına 10 dolar ve milyon çıktı jetonu başına 50 dolardır.

Başlamadan Önce

İlk isteğinizden önce dört şeye ihtiyacınız var:

  1. Bir Anthropic hesabı. console.anthropic.com adresinden kaydolun. Konsol, anahtarları, kullanımı ve faturalandırmayı yönettiğiniz yerdir.
  2. Bir API anahtarı. Konsol'da API Anahtarları altında bir tane oluşturun. Bir kez kopyalayın; bir daha göremeyeceksiniz. Onu bir parola gibi kullanın.
  3. Faturalandırma veya Kurumsal plan. Fable 5, standart Claude API'sinde mevcuttur ve tüketim tabanlı Kurumsal planlarda tamamen kullanılabilir. Trafik göndermeden önce bir ödeme yöntemi ekleyin veya planınızın bunu kapsadığını onaylayın. Fable 5'in kullanım durumunuza uygun olup olmadığına hala karar veriyorsanız, Claude Fable 5 nedir başlıklı genel bakış, modelin güçlü yönlerini açıkça anlatır.
  4. Bir SDK (isteğe bağlı ama önerilir). Diliniz için resmi Anthropic SDK'sını yükleyin. İsterseniz ham HTTP uç noktasını curl veya herhangi bir HTTP istemcisi ile de çağırabilirsiniz.

Anahtarı bir ortam değişkeni olarak ayarlayın, böylece kaynak kodunuza asla girmez:

export ANTHROPIC_API_KEY="sk-ant-..."

Her iki SDK da ANTHROPIC_API_KEY'i ortamdan otomatik olarak okur, bu nedenle kodu nadiren geçirirsiniz. Anahtarları git'ten uzak tutun. Bir anahtar sızarsa, hemen Konsol'da döndürün.

Önceden bilinmesi gereken bir davranış: Fable 5, hassas sorguların (siber güvenlik, biyoloji ve kimya ve model damıtma girişimleri) küçük bir kısmını doğrudan yanıtlamak yerine Claude Opus 4.8'e yönlendiren korumalarla birlikte gelir. Bu, oturumların %5'inden azında tetiklenir. Bunun için herhangi bir şey yapılandırmanıza gerek yoktur, ancak ara sıra farklı bir model olarak etiketlenmiş bir yanıtın gelmesini açıklar. Bu konuda daha fazlası hata işleme bölümünde.

İlk Claude Fable 5 API Çağrınız

Arada hiçbir engel olmadan ham isteği ve yanıtı görebilmek için curl ile başlayın. Uç nokta POST https://api.anthropic.com/v1/messages olup, Anthropic Mesajlar API referansında belgelenmiştir ve üç başlık ile bir JSON gövdesine ihtiyaç duyar.

curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-fable-5","max_tokens":1024,"messages":[{"role":"user","content":"Summarize what makes a good REST API in 3 bullet points."}]}'

Burada üç başlık önemlidir. x-api-key anahtarınızı taşır. anthropic-version API sürümünü sabitler (2023-06-01 mevcut kararlı değerdir). content-type, sunucuya JSON gönderdiğinizi söyler. Gövde üç zorunlu alana sahiptir: model, max_tokens ve messages. Sözleşmenin tamamı budur.

Yanıt bir JSON nesnesi olarak gelir. Sizin için önemli olan kısım, bloklardan oluşan bir liste olan content'tir:

{
  "id": "msg_01ABC...",
  "type": "message",
  "role": "assistant",
  "model": "claude-fable-5",
  "content": [
    { "type": "text", "text": "- Tahmin edilebilir, kaynak odaklı URL'ler..." }
  ],
  "stop_reason": "end_turn",
  "usage": { "input_tokens": 18, "output_tokens": 96 }
}

content bir dize değil, bir listedir, çünkü tek bir yanıt metin, araç kullanım blokları ve düşünme bloklarını karıştırabilir. text'i okumadan önce her zaman listeyi döngüye alın ve her bloğun type'ını kontrol edin. stop_reason, modelin neden durduğunu (end_turn temiz bir bitişi ifade eder) ve usage, daha sonra maliyet hesaplaması için kullanacağınız jeton sayılarını verir.

Fable 5'i Python'dan Çağırmak

Resmi Anthropic Python SDK'sı başlık ve JSON kalıplarını ortadan kaldırır. Önce kurun:

pip install anthropic

İşte temel çağrı. İstemci anahtarınızı ortamdan okur, bu yüzden onu geçirmenize gerek yoktur:

import anthropic

client = anthropic.Anthropic()  # ortamdan ANTHROPIC_API_KEY'i okur

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "İyi bir REST API'yi neyin oluşturduğunu özetle."}],
)

for block in response.content:
    if block.type == "text":
        print(block.text)

Desen, curl çağrısını yansıtır. model, max_tokens ve messages'ı iletirsiniz ve content'i bloklardan oluşan bir liste olan bir yanıt alırsınız. Döngü, metin olmayan bir bloğa takılmamanız için block.type == "text" üzerinde koruma sağlar.

Sistem İstemini Ekleme

Bir sistem istemi, modelin rolünü ve tüm konuşma için temel kuralları belirler. Bunu messages'tan ayrı olarak system alanı olarak geçirin:

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=2048,
    system="Kıdemli bir backend mühendisisin. Öz ol ve kod örnekleri kullan.",
    messages=[{"role": "user", "content": "Bir JSON gövdesini doğrulayan bir Flask rotası yaz."}],
)

for block in response.content:
    if block.type == "text":
        print(block.text)

Sistem istemi, her turda tutmak istediğiniz persona, çıktı format kuralları ve kısıtlamalar için doğru yerdir. Onu sabit tutun, çünkü her istekte değiştirmek, daha sonra eklediğinizde istem önbelleğini bozar.

Uzun Çıktıları Akışla İletme

Uzun bir yanıt üreten herhangi bir şey için onu akışla iletin. Akış, jetonları üretildikleri anda gönderir, böylece ilerlemeyi hemen gösterir ve büyük akışsız yanıtlarda oluşan istek zaman aşımlarını önlersiniz. Fable 5'in uzun vadeli çalışması, bunu gerçek iş yükleri için varsayılan seçim haline getirir:

with client.messages.stream(
    model="claude-fable-5",
    max_tokens=4096,
    messages=[{"role": "user", "content": "Ödeme API'leri için idempotency anahtarlarını açıkla."}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
    final = stream.get_final_message()

print(f"\n\nTokens: {final.usage.output_tokens}")

stream.text_stream, metin parçacıklarını geldikleri gibi verir. flush=True önemlidir, böylece her parça arabelleğe alınmak yerine hemen yazdırılır. Akış bittiğinde, stream.get_final_message() size son usage sayıları da dahil olmak üzere tam olarak birleştirilmiş mesajı sunar, böylece ikinci bir isteğe gerek kalmadan akışlı UX'i ve tam nesneyi elde edersiniz.

Fable 5'i TypeScript / Node'dan Çağırmak

Node SDK'sı aynı şekli izler. Kurun:

npm install @anthropic-ai/sdk

Ardından çağrıyı yapın. İstemci, Python'daki gibi ANTHROPIC_API_KEY'i ortamdan okur:

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic(); // ANTHROPIC_API_KEY'i okur

const msg = await client.messages.create({
  model: "claude-fable-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "3 yaygın API güvenlik hatasını listele." }],
});

console.log(msg.content);

msg.content, Python ve curl'de gördüğünüz blokların aynı listesidir. Sadece metni çekmek için blok tipine göre filtreleyin:

const text = msg.content
  .filter((block) => block.type === "text")
  .map((block) => block.text)
  .join("");

console.log(text);

Akış, Python'daki gibi çalışır. Olayları yinelemek için client.messages.stream({...}) kullanın veya birleştirilmiş sonuç için finalMessage()'i bekleyin. Bunu bir ön uç sohbetine bağlıyorsanız, sunucu rotasından akış yapın ve parçacıkları tarayıcıya iletin. Node veya Python'da geliştirseniz de aynı test alışkanlıkları geçerlidir ve Apidog gibi bir araç, herhangi bir istemci kodu yazmadan önce sözleşmeyi doğrulamayı kolaylaştırır; bu, Apidog ile ChatGPT API'sini test etme konusunda ele alınan iş akışıyla aynıdır.

Fable 5 ile Araç Kullanımı (Fonksiyon Çağırma)

Araç kullanımı, Fable 5'in tanımladığınız fonksiyonları çağırmasına olanak tanır. Bir aracı JSON şemasıyla tanımlarsınız, model ne zaman çağıracağına karar verir ve siz gerçek fonksiyonu çalıştırıp sonucu geri beslersiniz. Fable 5, araç kullanımında güçlüdür, bu yüzden ajan döngülerine iyi uyar.

Bir aracı isim, açıklama ve bir input_schema ile tanımlayın:

tools = [
    {
        "name": "get_order_status",
        "description": "Bir müşteri siparişinin durumunu ID'ye göre arayın.",
        "input_schema": {
            "type": "object",
            "properties": {"order_id": {"type": "string"}},
            "required": ["order_id"],
        },
    }
]

tools'u isteğe messages'ı geçirdiğiniz şekilde geçirin:

messages = [{"role": "user", "content": "A1855 siparişinin durumu nedir?"}]

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=1024,
    tools=tools,
    messages=messages,
)

Model bir araç kullanmak istediğinde, yanıt stop_reason == "tool_use" ve araç adını ve seçtiği girdiyi taşıyan bir tool_use bloğu ile geri gelir. Döngü basittir: asistanın yanıtını ekleyin, aracı çalıştırın, ardından yeni bir kullanıcı turunda sonucu bir tool_result bloğu olarak geri gönderin:

if response.stop_reason == "tool_use":
    tool_use = next(b for b in response.content if b.type == "tool_use")

    # Modelin seçtiği girdiyle gerçek fonksiyonunuzu çalıştırın
    result = lookup_order(tool_use.input["order_id"])  # sizin kodunuz

    messages.append({"role": "assistant", "content": response.content})
    messages.append({
        "role": "user",
        "content": [{
            "type": "tool_result",
            "tool_use_id": tool_use.id,
            "content": result,
        }],
    })

    # Sonucu geri gönderin; model artık bunu kullanarak yanıt verir
    followup = client.messages.create(
        model="claude-fable-5",
        max_tokens=1024,
        tools=tools,
        messages=messages,
    )

Anahtar detay tool_use_id'dir: tool_result bloğu, modelin sonucunuzun hangi çağrıya yanıt verdiğini bilmesi için tool_use bloğundaki tam id'ye referans vermelidir. Çok adımlı ajanlar için bunu, stop_reason end_turn olana kadar devam eden bir döngüye sararsınız. Python SDK'sı ayrıca sizin için döngüyü yöneten bir araç çalıştırıcısı da sağlar, ancak yukarıdaki manuel sürüm, kaputun altında ne olduğunu gösterir ve onay geçitleri veya günlükleme ekleyebileceğiniz bir yer sunar.

Uyarlanabilir Düşünme ve Çaba

Fable 5, modelin yanıt vermeden önce ne zaman ve ne kadar derinlemesine akıl yürüteceğine kendi başına karar verdiği uyarlanabilir düşünmeyi destekler. Bu isteğe bağlıdır. Bunu thinking'i geçirerek açın ve genel derinliği ve jeton harcamasını output_config ile ayarlayın:

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=4096,
    thinking={"type": "adaptive"},
    output_config={"effort": "high"},  # düşük | orta | yüksek
    messages=[{"role": "user", "content": "Hatalı bir webhook alıcısı için bir yeniden deneme stratejisi tasarla."}],
)

effort, modelin ne kadar düşündüğünü ve çalıştığını kontrol eder: daha düşük çaba, daha kısa, daha hızlı yanıtlar anlamına gelirken, daha yüksek çaba, daha yüksek jeton maliyetiyle daha kapsamlı akıl yürütme anlamına gelir. Ekstra akıl yürütmenin jetonlara değmediği basit aramalar ve kısa yanıtlar için ikisini de kapalı bırakın. Fable 5'in inşa edildiği türden zor, çok adımlı problemler ve uzun vadeli planlama için bunlara başvurun. Başlangıçta basit tutun; bir rotanın buna ihtiyacı olduğunu anladığınızda thinking'i daha sonra ekleyebilirsiniz.

Hataları ve Güvenlik Yedeğini Yönetme

Gerçek entegrasyonlar, hataları temiz bir şekilde işlemelidir. SDK, tiplendirilmiş istisnalar fırlatır, bu nedenle hata dizelerini eşleştirmek yerine belirli sınıfı yakalayın. En sık göreceğiniz üçü HTTP 401, 429 ve 400'e karşılık gelir:

import anthropic

client = anthropic.Anthropic()

try:
    response = client.messages.create(
        model="claude-fable-5",
        max_tokens=1024,
        messages=[{"role": "user", "content": "CORS preflight isteklerini açıkla."}],
    )
except anthropic.AuthenticationError:
    # 401: kötü veya eksik API anahtarı. ANTHROPIC_API_KEY'i kontrol edin.
    print("Geçersiz API anahtarı. Konsol'da döndürün ve yeniden dışa aktarın.")
except anthropic.RateLimitError as e:
    # 429: çok fazla istek. Geri çekilip yeniden deneyin.
    retry_after = e.response.headers.get("retry-after", "60")
    print(f"Hız sınırlaması. {retry_after}s sonra tekrar deneyin.")
except anthropic.BadRequestError as e:
    # 400: yanlış biçimlendirilmiş istek (yanlış parametreler, boş mesajlar, yanlış şekil).
    print(f"Hatalı istek: {e.message}")

İşte her birinin ne anlama geldiği ve nasıl düzeltileceği:

Şimdi güvenlik yedeği. Fable 5, hassas sorguların (siber güvenlik, biyoloji ve kimya ve damıtma girişimleri) küçük bir kısmını doğrudan yanıtlamak yerine Claude Opus 4.8'e yönlendirir. Bu, oturumların %5'inden azında tetiklenir. Bu bir hata değildir ve isteğiniz hala başarılı olur, ancak yanıt farklı bir modelle etiketlenmiş olarak geri gelebilir. Eğer response.model üzerinde günlükleme yapıyorsanız veya iddia ediyorsanız, claude-fable-5 olmadığında sert bir şekilde başarısız olmayın; istek, kaputun altında farklı bir model tarafından işlendi. Uygulamanız hangi modelin yanıt verdiğini kesinlikle bilmesi gerekiyorsa, gönderdiğinizle eşleştiğini varsaymak yerine döndürülen nesneden response.model'i okuyun.

İstek Başına Maliyeti Tahmin Etme

Fiyatlandırma, milyon giriş jetonu başına 10 dolar ve milyon çıktı jetonu başına 50 dolardır. Her yanıt, usage içinde kesin sayıları taşır, böylece tahmin etmek yerine istek başına maliyeti kesin olarak hesaplayabilirsiniz:

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Çift e-postaları bulmak için bir SQL sorgusu yaz."}],
)

input_tokens = response.usage.input_tokens
output_tokens = response.usage.output_tokens

input_cost = input_tokens / 1_000_000 * 10
output_cost = output_tokens / 1_000_000 * 50
total = input_cost + output_cost

print(f"Girdi:  {input_tokens} jeton  = ${input_cost:.6f}")
print(f"Çıktı: {output_tokens} jeton = ${output_cost:.6f}")
print(f"Toplam:  ${total:.6f}")

Çıktı jetonları, giriş jetonlarının beş katı maliyete sahiptir, bu nedenle sahip olduğunuz en ucuz kaldıraç yanıtları kısa tutmaktır. 2.000 giriş jetonu ve 500 çıktı jetonu içeren bir istek 2000 / 1M * $10 + 500 / 1M * $50 maliyetindedir, yani $0.02 + $0.025 = $0.045. Bir bütçe belirlemek için istek hacminizle çarpın. Eğer çıktı maliyeti faturanızı domine ediyorsa, max_tokens'ı sınırlayın ve sistem isteminde kısa yanıtlar isteyin. Çıktı fiyatlandırması, Claude Opus 4.8 fiyatlandırma modeli için yapacağınız matematikle aynıdır, sadece Fable 5'in sayılarıyla.

Apidog ile Claude Fable 5 API'sini Test Etme ve Hata Ayıklama

İstemci kodu yazmadan önce, birkaç isteği elle gönderip tam olarak ne döndüğünü izlemek faydalıdır. Apidog bunun için tasarlanmış bir API istemcisidir: https://api.anthropic.com/v1/messages adresine gerçek istekler gönderir, akışlı yanıtı inceler ve isteği kaydedersiniz, böylece tüm ekibiniz aynı tanımdan çalışır. İşte sıfırdan çalışan, kaydedilmiş bir isteğe temiz bir yol.

  1. İsteği oluşturun. Apidog'da yeni bir HTTP isteği oluşturun, yöntemi POST olarak ayarlayın ve URL'yi https://api.anthropic.com/v1/messages yapıştırın. Bu, bu rehberdeki her örneğin kullandığı aynı uç noktadır.
  2. Anahtarınızı bir ortam değişkeni olarak saklayın. Bir Apidog ortam değişkeni oluşturun, adını anthropic_api_key gibi bir şey yapın ve anahtarınızı gizli bir değer olarak yapıştırın. Anahtarı ortamda tutmak, kaydedilmiş isteğin ve paylaştığınız herhangi bir dışa aktarımın dışında kalmasını sağlar.
  3. Başlıkları ayarlayın. x-api-key değerini {{anthropic_api_key}} ile, ardından anthropic-version: 2023-06-01 ve content-type: application/json ekleyin. Eğer Bearer tarzı bir gizli değişkeni tercih ediyorsanız, jetonu aynı şekilde saklayın ve ham değerin istekte asla görünmemesi için {{...}} sözdizimiyle referans verin.
  4. JSON gövdesini ekleyin. Minimal yükü bırakın: {"model": "claude-fable-5", "max_tokens": 1024, "messages": [{"role": "user", "content": "Ödeme API'leri için idempotency anahtarlarını açıkla."}]}. Gönderin ve yanıtı okuyun. content bloklarını, stop_reason ve usage'ı doğrudan yanıt panelinde görmelisiniz.
  5. Akışlı yanıtları görüntüleyin. Gövdeye "stream": true ayarlayın ve tekrar gönderin. Apidog, sunucu tarafından gönderilen olayları geldikleri gibi işler, böylece jetonların akışını izleyebilir ve akış mantığınızın, bir uygulama geliştirmeden önce API'nin gerçekten gönderdiğiyle eşleştiğini doğrulayabilirsiniz.
  6. Kaydet ve kod oluştur. İsteği bir koleksiyona kaydedin, böylece ekip arkadaşları yeniden kullanabilir, ardından Apidog'un kod oluşturma özelliğini kullanarak Python, JavaScript, curl veya başka bir dilde çalışan bir kod parçacığı dışa aktarın. Bu, size boş bir dosya yerine test edilmiş bir başlangıç noktası verir.

Bu akış, API'nin tam yanıt şeklini öğrenmenin ve uygulamanızda yanlış çalışan bir isteğin hatalarını ayıklamanın en hızlı yoludur, çünkü kodunuzun isteğini bilinen iyi bir istekle yan yana karşılaştırabilirsiniz. Kurmaya hazır olduğunuzda, Apidog'u indirin ve yukarıdaki minimal gövde ile başlayın.

button

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin