Kurs
Güncelleme (1 Temmuz 2026): Claude Fable 5’e erişim geri yüklendi; ihracat kontrol kararı kaldırıldıktan sonra artık dünya genelinde Claude Platform, Claude.ai, Claude Code ve Claude Cowork’ta kullanılabilir. Mythos 5, incelemeden geçmiş Project Glasswing ortaklarıyla sınırlı kalmaya devam ediyor.
Güncelleme (2 Eylül 2026): Anthropic, Fable 5’in halefi modeli yayımladı. Tüm ayrıntılar için Claude Fable 5.1 rehberimizi okumanızı öneririm.
Yeni bir modeli API üzerinden test ederken, lansman notlarından çok koda bağlamam gereken kısımlar ilgimi çeker: API çağrısı nasıl görünüyor, önceki modelden neler değişti, maliyeti ne kadar olacak ve güvenlik katmanı “hayır” dediğinde ne olur?
Claude Fable 5 üzerine genel bakış makalemiz lansmanı, kıyaslama sonuçlarını ve Fable 5’i benzersiz kılan güvenlik kurulumunu ele almıştı. Aşağıdaki kod oradan devam ediyor. Özellikle, bir yazılım özellik isteğini alıp yapılandırılmış bir uygulama planı döndüren bir Geliştirici Görev Asistanı kullanacak, ardından akış, araç kullanımı, maliyet takibi ve bir FastAPI uç noktası ekleyeceğiz.
Şunları ele alacağız:
- Fable 5 API çağrısı yapma ve yanıtı okuma
- Modeli bir sistem istemiyle yönlendirme
- Yapılandırılmış çıktılarla JSON döndürme
- Uzun yanıtları bir terminale veya web istemcisine akıtma
- Basit bir aracı bağlama ve araç döngüsünü çalıştırma
- Her isteğin öncesinde ve sonrasında belirteç maliyetlerini tahmin etme ve izleme
- Uygulamanız çökmeden reddetmeleri ele alma
- UI incelemesi veya görsel analiz için görüntü girdilerini işleme
- Tüm iş akışını bir FastAPI uç noktası üzerinden sunma
Claude Fable 5 Nedir?
Claude Fable 5, 9 Haziran 2026’da yayımlanan ve API model dizesi claude-fable-5 olan bir Anthropic modelidir. Anthropic, bunu Claude Mythos 5 ile aynı temel model olarak, ancak genel kullanıma sunum için güvenlik sınıflandırıcıları uygulanmış hâli olarak tanımlıyor. Mythos 5, güvenilir güvenlik kuruluşları için kısıtlı bir program olan Project Glasswing ile sınırlı kalıyor.
Geliştiriciler için ilgili API ayrıntıları şunlardır:
-
İstek başına 1M belirteçlik bağlam penceresi ve 128k’ya kadar çıktı belirteci
-
Girdi için milyon belirteç başına 10 ABD$, çıktı için milyon belirteç başına 50 ABD$ fiyatlandırma; Opus 4.8’in iki katı
-
Uyarlanabilir düşünme her zaman açık. Devre dışı bırakamazsınız.
effortparametresi derinliği kontrol eder; modeli içsel akıl yürütme metni, siz gösterip göstermediğinizden bağımsız olarak üretilir ve faturalandırılır -
“Kapsanan Model”dir; yani 30 günlük veri saklama zorunludur. Bu model için Sıfır Veri Saklama seçeneği yoktur.
Her API çağrısında kullanmazdım. Mimari, kenar durumları ve uygulama ayrıntıları arasında akıl yürütme gerektiren görevler için daha mantıklıdır. Daha basit işler için Sonnet 4.6 veya Haiku 4.5 muhtemelen yeterlidir.
Fable 5 ile Ne İnşa Edeceğiz: Bir Geliştirici Görev Asistanı
Oluşturacağımız asistan bir yazılım özellik isteğini kabul edip yapılandırılmış bir plan döndürecek: teknik özet, sıralı uygulama adımları, olası dosya değişiklikleri, riskler ve testler.
Bu örneği kullanıyorum çünkü gerçek bir entegrasyonda genellikle önemli olan API ayrıntılarını zorlar: yapılandırılmış çıktı, akış, araç çağrıları, maliyet ve reddetme işlemesi. Küçük ama sadece bir Hello World değil.
Aşağıdaki bölümler bu parçaları tek tek kurar.

Özellik isteği yapılandırılmış plana akar. Görsel: Yazar.
Ana kod yerel betik için task_assistant.py ve FastAPI uç noktası için app.py dosyalarında bulunur.
Önkoşullar
Takip etmek için şunlara ihtiyacınız olacak:
-
Python 3.9 veya daha yenisi (bu eğitim, Pydantic modellerinde yerleşik tür ipuçları gibi 3.10+ özellikleri kullanır; ancak SDK’nın kendisi 3.9+’ı destekler)
-
claude-fable-5erişimine sahip bir Anthropic API anahtarı -
Ortam değişkenleri, JSON ve HTTP API’lerine temel düzeyde aşinalık
-
Bir terminal ve bir kod düzenleyici
Projeyi Kurma
Bir proje klasörü ve sanal ortam oluşturarak başlayın.
mkdir task-assistant
cd task-assistant
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
Anthropic SDK’sını, FastAPI’yi ve birkaç yardımcı paketi kurun.
pip install anthropic fastapi uvicorn python-dotenv pydantic
Proje kökünde bir .env dosyası oluşturup API anahtarınızı ekleyin. Bu dosyayı asla sürüm kontrolüne dahil etmeyin.
ANTHROPIC_API_KEY=sk-ant-...
Betiklerinizin başında bunu yükleyin. Anthropic() otomatik olarak ortamdan ANTHROPIC_API_KEY değerini okur.
from dotenv import load_dotenv
from anthropic import Anthropic
load_dotenv()
client = Anthropic()
İstemciyi modül seviyesinde bir kez başlatın ve eğitim boyunca yeniden kullanın.
Python’da İlk Claude Fable 5 API Çağrınızı Yapma
Proje mantığını eklemeden önce, kurulumu doğrulamak için minimal bir istek göndermeyi severim. Messages API bir model dizesi, bir max_tokens sınırı ve bir mesajlar dizisi alır. max_tokens zorunludur; belirtmezseniz SDK bir TypeError fırlatır.
MODEL = "claude-fable-5"
def get_text(response):
"""Return the first text block, skipping thinking or tool blocks."""
return next((b.text for b in response.content if b.type == "text"), "")
response = client.messages.create(
model=MODEL,
max_tokens=512,
messages=[{"role": "user", "content": "Reply in one sentence to confirm the API connection is working."}]
)
print(get_text(response))
print(f"Model: {response.model}")
print(f"Input tokens: {response.usage.input_tokens}")
print(f"Output tokens: {response.usage.output_tokens}")

Fable 5 API yanıtı ve belirteçler. Görsel: Yazar.
response.content düz bir metin değil, içerik bloklarından oluşan bir listedir. Yukarıda belirtilen uyarlanabilir düşünme davranışı nedeniyle, ilk blok sıklıkla bir düşünme bloğudur ve content[0].text bir AttributeError oluşturabilir. get_text yardımcısı bunun yerine block.type == "text" ile filtreler.
usage nesnesi, her istekten sonra girdi ve çıktı belirteç sayılarını verir. response.model yanıtlayan modeli raporlar; bu, geriye düşüşler (fallback) yapılandırıldığında önemlidir.
effort ile akıl yürütme derinliğini kontrol etme
effort parametresi, output_config içinde geçirilir ve bu akıl yürütme derinliğini kontrol eder.
response = client.messages.create(
model=MODEL,
max_tokens=2048,
output_config={"effort": "high"}, # low | medium | high | xhigh | max
messages=[{"role": "user", "content": feature_request}]
)
Varsayılan "high" değeridir. Buradan başlayıp, "low" veya "medium" gecikmenin daha önemli olduğu durumlarda; "xhigh" veya "max" ise daha uzun problemler için kullanmanızı öneririm. Effort, modelin kaç düşünme belirteci ürettiğini değiştirir; üretip üretmediğini değil.
Asistan Rolü İçin Bir Sistem İstemi Ekleme
system parametresi, messages dizisinden ayrı, istekte üst düzey bir alandır. Oraya yazdığınız her şey her tura uygulanır; bu da onu tek bir turdaki talimattan daha etkili kılar.
Geliştirici Görev Asistanı için sistem istemini dar tutuyorum: kapsamlı bir analiz yerine özlü bir mühendislik planı döndür.
SYSTEM_PROMPT = """You are a senior software engineer who reviews feature requests and returns
implementation plans. For every request:
- Write a one sentence technical summary
- List the implementation steps in order
- Name the files or components most likely to change
- Call out at most three risks or edge cases
- Suggest concrete tests
Do not narrate options you won't pursue. Act on what you know; ask only when key details are missing."""
Son talimat önemlidir. Fable 5, basit istekler için gereğinden fazla planlama ekleyebilir; bu nedenle istem, yanıt kaymadan önce çıktıyı sınırlar.
Sistem istemini her çağrıyla birlikte iletin.
response = client.messages.create(
model=MODEL,
max_tokens=2048,
system=SYSTEM_PROMPT,
messages=[{"role": "user", "content": feature_request}]
)
Asistan turunu önceden doldurma Fable 5’te desteklenmiyor. JSON çıktısını zorlamak için {"role": "assistant", "content": "{"} ile başlayan eski Claude kodunuz varsa, bunu kaldırın. Bu kalıp Fable 5’te 400 döndürür; eski kodu taşırken kolay bir tuzaktır.
Özellik Planlama İş Akışını Oluşturma
Bir özelliği planlamak, tek bir yanıtta mimariyi, arıza durumlarını ve test stratejisini takip etmek demektir. Bu, incelenmesi yeterince küçük ama sadece oyuncak bir istem olmayan iyi bir ilk iş akışıdır.
feature = (
"Add password reset to our Django app. "
"Users should receive a token via email and land on a form to set a new password."
)
response = client.messages.create(
model=MODEL,
max_tokens=2048,
output_config={"effort": "high"},
system=SYSTEM_PROMPT,
messages=[{"role": "user", "content": feature}]
)
print(get_text(response))
Tipik bir yanıt, tek geçişte belirteç üretimi, e-posta gönderimi, form işleme ve süre sonu temizliğini kapsar.
Claude Fable 5 ile Yapılandırılmış JSON Çıktıları Döndürme
Düz metin terminalde iyidir. Plan uygulama verisine dönüşecekse, yapılandırılmış çıktı ile çalışmak daha kolaydır. Claude API, client.messages.parse() ve bir Pydantic modeli üzerinden yapılandırılmış çıktıları destekler ve claude-fable-5 ile çalışır.
Beklenen çıktı biçimini bir Pydantic modeli olarak tanımlayın.
from pydantic import BaseModel
class FeaturePlan(BaseModel):
summary: str
steps: list[str]
files: list[str]
risks: list[str]
tests: list[str]
Sınıfı output_format olarak geçin. SDK bunu bir JSON şemasına çevirir, Anthropic sunucularında kısıtlı kod çözmeyi çalıştırır ve response.parsed_output içinde türlendirilmiş bir nesne döndürür.
response = client.messages.parse(
model=MODEL,
max_tokens=2048,
system=SYSTEM_PROMPT,
messages=[{"role": "user", "content": feature}],
output_format=FeaturePlan
)
plan = response.parsed_output
if plan is not None:
print(f"Summary: {plan.summary}")
print(f"Steps: {plan.steps}")
parsed_output değerini kullanmadan önce None olup olmadığını kontrol edin. Akış sırasında bir reddetme veya erken max_tokens kesilmesi onu boş bırakabilir. Bu yol aynı zamanda düşünme bloğu sorununu da önler; çünkü content içine girmek yerine parsed_output okursunuz.
API desteği olmayan bir modelde yapılandırılmış çıktıya ihtiyacınız varsa, istemde JSON isteyin ve FeaturePlan.model_validate_json(text) ile doğrulayın; başarısız olursa bir kez yeniden deneyin. Yapılandırılmış çıktıyı asistan turu ön doldurma ile eşleştirmeyin; Fable 5 bu kalıba 400 döndürür.
Claude Fable 5’ten Yanıtları Akıtma
Aynı uyarlanabilir düşünme davranışı, karmaşık istemlerde ilk belirtece kadar beklemeyi artırabilir. Akış, metin parçalarını geldikçe yazdırır.
client.messages.stream() bağlam yöneticisini kullanın. stream.text_stream metin parçaları verir ve düşünme bloklarını otomatik olarak atlar.
with client.messages.stream(
model=MODEL,
max_tokens=2048,
system=SYSTEM_PROMPT,
messages=[{"role": "user", "content": feature}]
) as stream:
for chunk in stream.text_stream:
print(chunk, end="", flush=True)
final = stream.get_final_message()
print(f"\nInput tokens: {final.usage.input_tokens}")
print(f"Output tokens: {final.usage.output_tokens}")
get_final_message() çağrısını with bloğu kapandıktan sonra yapın; durdurma nedeni ve kullanım sayımları oradadır.
Akış ve yapılandırılmış çıktı bir arada olabilir; ancak ayrıştırmadan önce tam yanıtı biriktirin. Kısmi JSON geçerli JSON değildir.
Araç Kullanımı (Fonksiyon Çağrısı) Ekleme
Araç kullanımı, modelin yalnızca isteme güvenmek yerine bilgi talep etmesini sağlar. İlk aracı küçük tutuyorum: read_project_file. Model bir dosyanın okunmasını ister, kodunuz okur ve model bulduklarını kullanır.
Araç döngüsünün sabit bir şekli vardır. Claude, bir aracı çağırmak istediğinde stop_reason: "tool_use" döndürür; siz aracı yürütür ve bir tool_result bloğu gönderirsiniz; döngü "end_turn" veya "refusal" olana dek devam eder.

İstekten yanıta araç döngüsü. Görsel: Yazar.
READ_FILE_TOOL = {
"name": "read_project_file",
"description": "Read the contents of a file in the project.",
"input_schema": {
"type": "object",
"properties": {
"path": {"type": "string", "description": "Relative path to the file"}
},
"required": ["path"]
}
}
messages = [{"role": "user", "content": feature}]
while True:
response = client.messages.create(
model=MODEL,
max_tokens=2048,
system=SYSTEM_PROMPT,
tools=[READ_FILE_TOOL],
messages=messages
)
if response.stop_reason in ("end_turn", "refusal"):
break
if response.stop_reason == "tool_use":
tool_block = next(b for b in response.content if b.type == "tool_use")
# Execute the tool locally
try:
with open(tool_block.input["path"]) as f:
result = f.read()[:2000]
except FileNotFoundError:
result = f"File not found: {tool_block.input['path']}"
messages.append({"role": "assistant", "content": response.content})
messages.append({
"role": "user",
"content": [{
"type": "tool_result",
"tool_use_id": tool_block.id,
"content": result
}]
})
# Read the final answer
text_block = next((b for b in response.content if b.type == "text"), None)
print(text_block.text if text_block else "No text in final response")
Model bu kodu asla yürütmez. Bir araç adı ve JSON girdileriyle yapılandırılmış bir istek üretir; dosya okuma işlemini uygulamanız gerçekleştirir. Aynı kullanıcı turunda bir tool_result bloğu ile birlikte sohbet metni eklemeyin; aksi hâlde model planı sürdürmek yerine durabilir.
Claude Fable 5 Belirteç Kullanımı ve API Maliyetini Tahmin Etme
Bunu bir uygulamaya dönüştürmeden önce, maliyet yapısına bakın. Fable 5, girdi için milyon belirteç başına 10 ABD$, çıktı için milyon belirteç başına 50 ABD$’dır. Genellikle daha büyük kalem çıkıştır: 2.000 belirteçlik bir plan yalnızca çıkışta 0,10 ABD$ tutar.
İşte Anthropic ailesi genelinde fiyat tablosu.
|
Model |
Girdi (MTok başına) |
Çıktı (MTok başına) |
Notlar |
|
Haiku 4.5 |
$1 |
$5 |
En hızlı, sınıra yakın kalite |
|
Sonnet 4.6 |
$3 |
$15 |
Hız ve derinlik arasında güçlü denge |
|
Opus 4.8 |
$5 |
$25 |
En üst Opus katmanı |
|
Fable 5 |
$10 |
$50 |
Geniş çapta yayımlanan en yetenekli model |
İstem önbellekleme, yinelenen sistem istemi maliyetini azaltabilir. Sistem istemi bloğu önbelleğe alındığında, yinelenen okumalar milyon belirteç başına 10 ABD$ yerine 1 ABD$’a mal olur. Claude API’de önbelleğe alınabilir en küçük blok 512 belirteçtir.
# Pahalı bir istek göndermeden önce belirteçleri sayın
count = client.messages.count_tokens(
model=MODEL,
system=SYSTEM_PROMPT,
messages=[{"role": "user", "content": feature}]
)
print(f"Estimated input tokens: {count.input_tokens}")
# Her istekten sonra gerçek maliyeti hesaplayın
INPUT_PRICE = 10.0 / 1_000_000
OUTPUT_PRICE = 50.0 / 1_000_000
response = client.messages.create(...)
cost = (
response.usage.input_tokens * INPUT_PRICE +
response.usage.output_tokens * OUTPUT_PRICE
)
print(f"Total cost: ${cost:.6f}")
count_tokens para tutmaz ve çıktı hız sınırınıza karşı sayılmaz. Pahalı istekleri sınırlamak için kullanın. Etkileşim gerektirmeyen işler için Batch API hem girdi hem de çıktı fiyatlarını yarıya indirir.
Fable 5, Opus 4.7 ile tanıtılan belirteçleyiciyi kullanır; bu da aynı metinde eski Claude modellerine kıyasla yaklaşık %30 daha fazla belirteç üretebilir. Claude 4.6’dan geçişlerde bunu hesaba katın.
Reddetmeleri ve Model Geriye Düşüşünü Ele Alma
Fable 5, üretimle birlikte güvenlik sınıflandırıcılarını çalıştırır. Biri tetiklendiğinde, API bir hata değil başarılı bir HTTP 200 döndürür ve tek sinyal stop_reason: "refusal" olur. Yalnızca özel durumları yakalayan hata işlemesi reddetmeleri tamamen kaçırır ve uygulamanız sessizce hiçbir şey döndürür.
Durdurma nedenini her zaman kontrol edin.
response = client.messages.create(
model=MODEL,
max_tokens=2048,
system=SYSTEM_PROMPT,
messages=[{"role": "user", "content": user_input}]
)
if response.stop_reason == "refusal":
category = (
response.stop_details.category
if response.stop_details else "policy"
)
print(f"Request declined ({category}). Please rephrase and try again.")
else:
print(get_text(response))
Testlerimde, Fable 5 sınırdaki istekleri sık sık düz metinle reddetti ve normal bir end_turn döndürdü. stop_reason: "refusal" ve boş content ile sert sınıflandırıcı reddi daha nadirdir. Yukarıdaki kontrol, uygulamanızın sessizce hiçbir şey döndürmemesi için bu yolu ele alır.
stop_details.category şunlardan biri olabilir: "cyber", "bio" veya "reasoning_extraction". Sonuncusu, bir istem modelin iç düşünce zincirini çıkarmaya çalıştığında tetiklenir. Ağ güvenlik tarayıcılarını veya biyolojik veri boru hatlarını inceleyen geliştirici araçlarında sınıflandırıcı yanlış pozitifleriyle karşılaşabilirsiniz. Görevi açıkça savunmacı olacak şekilde yeniden ifade etmek çoğu zaman bunu çözer.
Dağıtıma alınmış sistemlerde, Claude API ve AWS üzerindeki Claude Platform’da sunucuda çalışan fallbacks betasıyla Opus 4.8’e otomatik bir geriye düşüş yapılandırabilirsiniz. Bu, Amazon Bedrock ile aynı değildir: Bedrock, Vertex AI ve Foundry’de geriye düşüş mantığı uygulamanızda olmalıdır.
response = client.beta.messages.create(
model=MODEL,
max_tokens=2048,
system=SYSTEM_PROMPT,
messages=[{"role": "user", "content": user_input}],
fallbacks=[{"model": "claude-opus-4-8"}],
betas=["server-side-fallback-2026-06-01"]
)
Hiç çıktı üretmeyen reddedilmiş bir istek faturalandırılmaz. Akış ortasında bir reddetme, sınıflandırıcı tetiklenmeden önce üretilenler için faturalandırılır.
Claude Fable 5’i Görüntü (Vizyon) Girdileriyle Kullanma
Uygulamanız yalnızca metinle çalışıyorsa bu bölümü atlayabilirsiniz. Bu kısım planlama akışından ayrı, ancak aynı Messages API yapısını kullanır. Fable 5, base64 kodlu bloklar veya URL’ler olarak görüntü girdilerini kabul eder. Bir kullanım örneği, bir özellik gereksinimine karşı UI ekran görüntüsü incelemesidir.
import base64
with open("login_form.png", "rb") as f:
img_data = base64.standard_b64encode(f.read()).decode("utf-8")
response = client.messages.create(
model=MODEL,
max_tokens=1024,
messages=[{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": img_data
}
},
{
"type": "text",
"text": "Review this UI against the requirement: add a 'Forgot password' link below the login button. Is it present? If not, describe what needs to change."
}
]
}]
)
print(get_text(response))
Tam boyutlu bir görüntü, ne gösterdiğinden bağımsız olarak yaklaşık 4.784 girdi belirteci tutar; bu nedenle, tam çözünürlüğe ihtiyacınız yoksa göndermeden önce yeniden boyutlandırın veya sıkıştırın. Fable 5, 2.576 piksel genişliğe kadar görüntüleri işler ve daha büyük olanları küçültür. Desteklenen biçimler JPEG, PNG, GIF ve WebP’dir.
İş Akışını Bir FastAPI Uç Noktasına Dönüştürme
Bu noktada, yerel betikte tam iş akışı var. Asistanı bir FastAPI rotasına sarın ki bir ön yüz veya servis onu çağırabilsin. Eşzamanlı istemci döngüyü bloke ettiğinden, eşzamansız rotalarda AsyncAnthropic kullanın. Başlangıçta bir kez başlatın; istek başına değil.
from contextlib import asynccontextmanager
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from anthropic import AsyncAnthropic
client_instance: AsyncAnthropic | None = None
@asynccontextmanager
async def lifespan(app: FastAPI):
global client_instance
client_instance = AsyncAnthropic()
yield
await client_instance.close()
app = FastAPI(lifespan=lifespan)
class PlanRequest(BaseModel):
feature_request: str
@app.post("/plan")
async def create_plan(body: PlanRequest):
response = await client_instance.messages.create(
model="claude-fable-5",
max_tokens=2048,
system=SYSTEM_PROMPT,
messages=[{"role": "user", "content": body.feature_request}]
)
if response.stop_reason == "refusal":
raise HTTPException(status_code=400, detail="Request declined by safety classifier.")
return {
"plan": get_text(response),
"input_tokens": response.usage.input_tokens,
"output_tokens": response.usage.output_tokens
}
uvicorn app:app --reload ile çalıştırın ve /plan uç noktasını http://localhost:8000/docs adresindeki FastAPI dokümanları üzerinden test edin.
Bir API anahtarını asla bir ön yüz istek gövdesinden kabul etmeyin. Anahtar sunucuda yaşar, ortamdan okunur ve asla istemci koduna temas etmez.
Claude API için Dağıtım Hususları
Yukarıdaki uç nokta yerelde çalışır. Aynı kalıbı dağıtmadan önce bunları kontrol edin.
-
Anahtarlar ve sırlar. API anahtarı depoda veya bir konfigürasyon dosyasında değil, ortam değişkeni olarak sunucuda bulunmalıdır.
-
Hız sınırları ve yeniden denemeler. HTTP 429 hız sınırına ulaşıldığını gösterir. HTTP 529, Anthropic altyapısının aşırı yüklü olduğunu belirtir. SDK varsayılan olarak iki kez yeniden dener; dağıtılmış sistemlerde kırpıntı (jitter) ekleyin ve dört-beş denemede sınırlandırın.
-
Maliyet kontrolü. Her istekte girdi ve çıktı belirteç sayılarını günlüğe kaydedin.
-
Reddetme işlemesi.
stop_reason: "refusal"durumunu bir hata değil, bir uygulama durumu olarak ele alın. Yanlış pozitifleri tetikleyen istem kalıplarını izleyin. -
Bağlam yönetimi. Bağlam penceresi büyük olsa da uzun araç oturumları geçmişi hızla biriktirir. İstek başına
input_tokensdeğerini izleyin ve artık gerekli olmadıklarında eski araç sonuçlarını kırpmayı düşünün. -
Veri saklama. Model ayrıntıları bölümünde Fable 5’in 30 günlük saklama zorunluluğu olan Kapsanan Model olduğu belirtildi. Bu, uyumluluk açısından sorun ise başka bir model kullanın.
-
Yapılandırılmış çıktı doğrulaması.
response.parsed_outputdeğerininNoneolmadığını kontrol edin. JSON’u kendiniz doğruluyorsanız,model_validate_jsonçağrısını try/except ile sarmalayın ve birValidationErrordurumunda bir kez yeniden deneyin. -
İstek kimlikleri. Her Fable 5 çağrısı için
response._request_iddeğerini günlüğe kaydedin. Destek, belirli bir isteği izlemek için buna ihtiyaç duyar.
Claude Fable 5’i Ne Zaman Kullanmalısınız?
İş akışını kurduktan sonra bile model seçimi ayrı bir karardır. Kuralım: Yanlış veya sığ bir cevabın maliyeti istekten daha fazla olduğunda yalnızca Fable 5’i kullanın.
Fable 5, birbiriyle bağlantılı çok sayıda parçaya sahip görevlere uygundur. Anthropic, erken dağıtımların 50 milyon satırlık bir kod tabanı genelinde bir göçü bir günde tamamladığını bildirdi. Bu tür bir iddia, her uygulamanın Fable 5’e yönlendirilmesi gerektiği anlamına gelmez. Modelin, uzun bağlam ve planlamanın her ikisinin de önemli olduğu işler için hedeflendiği anlamına gelir. Diğer kullanım durumları:
- Mimarinin yanlış olmasının pahalıya mal olduğu, birden çok adımlı yazılım planlama
- Bölümler arası bağımlılıkları olan uzun bağlamlı belge inceleme
- Birçok araç çağrısı çalıştıran aracısal (agentic) kodlama görevleri
- Kök nedenin dolaylı etkileri izlemeyi gerektirdiği hata ayıklama
- Yanlış bir cevabın istek maliyetinden daha pahalı olacağı görevler
Şunlar için kaçınırdım:
- Temel özetleme veya sınıflandırma
- Kısa SSS yanıtları
- Günlük binlerce istek boyunca maliyetin katlandığı boru hatları
Cognition.ai kod değerlendirmesi, xhigh effort’ta Fable 5’i değerlendirme setlerinde %29,3; Opus 4.8’i ise %13,4 olarak buldu. Bu tek bir kıyaslamadır. Faydalı test, modelleri değiştirince görevinizin düzelip düzelmediğidir; Claude Fable 5 ve GPT-5.5 karşılaştırmamız bu takası ayrı olarak ele alır.
Bu depodaki Streamlit uygulaması kendi istemlerinizde bunu karşılaştırmanın bir yolunu sunar: bir özellik isteği yapıştırın, planın akışını izleyin ve belirteç maliyetlerini kontrol edin. Kaynak kodu GitHub’da. Aşağıdaki ekran kaydı iş akışını gösterir.
Sonuç
Bu noktada, baştaki Geliştirici Görev Asistanı hem yerel betikte hem de bir FastAPI rotasında Claude API’ye bağlanmış durumda.
Aynı istek kalıpları diğer asistan tasarımları için de geçerlidir. Bir kod inceleme asistanı için sistem istemini değiştirip dosya aracını bir diffe yönlendirin. Bir yeniden düzenleme ajanı için araç döngüsüne konuşma geçmişi ekleyin.
Uzun oturumlar için, yinelenen girdi maliyetini azaltmak amacıyla sistem istemini ve araç tanımlarını birlikte önbelleğe alın.
Claude ve Anthropic API hakkında daha fazla arka plan için Claude Modellerine Giriş kursumuz model ailesini ve API iş akışını kapsar. Kodlama tarafını pratik etmek isterseniz, Cursor ile Yazılım Geliştirme kursumuz istem yazma, yeniden düzenleme, test ve ajan iş akışlarını kapsar.
Veri hatları, bulut ve YZ araçları üzerinde çalışan; aynı zamanda DataCamp ve gelişmekte olan geliştiriciler için pratik, yüksek etkili eğiticiler yazan bir veri mühendisi ve topluluk inşacısıyım.
SSS
Bir araç çağrısı kesilirse ne olur?
Model bir tool_use bloğu oluştururken stop_reason "max_tokens" ise, kısmi araç girdisini çalıştırmayın. Daha yüksek bir max_tokens değeri veya daha dar bir istemle yeniden deneyin. Yerel araçları çalıştırmadan önce bunu kontrol ederim çünkü yarım yamalak JSON, hiç araç çağrısı olmamasından daha kötüdür.
İstem önbellekleme hız sınırlarına yardımcı olur mu?
Evet, ancak sınır tablosunun yalnızca bir kısmı için. Önbellekten okunanlar normal girdi fiyatının %10’u üzerinden faturalandırılır ve mevcut Claude modellerinde dakikadaki girdi belirteçlerine sayılmaz. Yine de dakikadaki istek sayısını ve dakikadaki çıktı belirteçlerini izlemeniz gerekir. Kendi rakamlarınızda görünmesi için cache_creation_input_tokens ve cache_read_input_tokens değerlerini günlüğe kaydedin.
Batch API içinde geriye düşüş kullanabilir miyim?
Hayır. Fable 5, Mesaj Yığınları ile çalışır ve yığın istekleri girdi ve çıktı fiyatlarını yarıya indirir; ancak fallbacks parametresi orada desteklenmez. Toplu işler için her sonucu kendi kaydı olarak ele alın ve çıktıda stop_reason: "refusal" olup olmadığını kontrol edin.
API çağrılarını hata ayıklarken neyi günlüğe almalıyım?
İstek kimliğini, model adını, durdurma nedenini, girdi belirteçlerini, çıktı belirteçlerini ve önbellek belirteci alanlarını günlüğe kaydedin. Hız sınırları için ayrıca 429 yanıtlarındaki retry-after değerini ve istemcinizin açığa çıkardığı anthropic-ratelimit-* başlıklarını saklayın. Sıkıcı gelir; ta ki daha sonra pahalı veya başarısız bir isteği açıklamanız gerekene kadar.
Kaç görüntü gönderebilirim?
Vizyon dokümanları, base64 blokları, URL’ler ve Files API dahil olmak üzere birden fazla görüntü kaynağını destekler. İstek başına 600’e kadar görüntü listeler; ama yine de ilk sürümü küçük tutmanızı öneririm. Görüntü belirteçleri hızla artar ve çoğu UI inceleme görevi yüzlerce ekran görüntüsüne ihtiyaç duymaz.

