Sorun gidermeKılavuz
temperature, top_p, top_k için Claude API 400 hatası: nasıl düzeltilir
Claude isteğiniz API sürümü 2026-10-21'de 400 döndürmeye mi başladı? temperature, top_p ve top_k'yı kaldırın ya da eski sürüme sabitleyin. Adımlar içeride.

Bu sayfada
Claude isteğiniz dün çalışıyordu, onu API sürümü 2026-10-21'e taşıdınız (anthropic- başlığı ya da bunun için derlenmiş bir SDK sürümü) ve şimdi 400 ile geri dönüyor. İsteğin gövdesine bakın: içinde temperature, top_p veya top_k varsa, sebep budur. Bu üç alanı silin ve istek geçer.
Anthropic'in 2026-10-21 sürümü için geçiş kılavuzuna göre (https://platform.claude.com/docs/en/api/migration-2026-10-21, 24 Ekim 2026'da kontrol edildi), bu üçünden herhangi birini gönderen bir Messages veya Message Batches isteği 400 hatası döndürür. Değer parametrenin varsayılanı olsa bile bu olur. İsteğinizde 400 durumunu ve bu alan adlarını arayın.
Başarısız istek nasıl görünür#
Diyelim ki Claude'dan bir ticket'ı özetlemesini isteyen ve yanıtı düşük bir temperature ile sabit tutan küçük bir betiğiniz var:
import anthropic
client = anthropic.Anthropic()
reply = client.messages.create(
model="<your Claude model>",
max_tokens=500,
temperature=0.2, # <- this line now causes the 400
messages=[{"role": "user", "content": "Summarise this ticket in two lines: ..."}],
)Düz HTTP üzerinden de aynı hikaye. Sürüm başlığını kendiniz ayarlıyorsanız, sizi yeni davranışa taşıyan satır şudur:
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2026-10-21" \
-H "content-type: application/json" \
-d '{"model": "<your Claude model>", "max_tokens": 500, "top_p": 0.9,
"messages": [{"role": "user", "content": "Hello"}]}'Çözüm: üç parametreyi kaldırın#
temperature, top_p ve top_k'u her Messages ve Message Batches isteğinden silin. Onlar olmadan model varsayılanlarıyla (temperature 1.0) örnekler, tıpkı bunları dışarıda bırakan bir 2023-06-01 isteğinin yaptığı gibi.
reply = client.messages.create(
model="<your Claude model>",
max_tokens=500,
messages=[{"role": "user", "content": "Summarise this ticket in two lines: ..."}],
)
En son ana SDK sürümlerinde ve ant CLI'da (2.0.0) bu parametreler artık hiç yok, bu yüzden yükseltme sonrası bunları kodunuzdan kaldırmanız gerekir. 400, anthropic- ile çıkıp hâlâ üç alandan birini taşıyan isteklerden gelir. .NET IChatClient bağdaştırıcıları daha yumuşak bir yol izler: artık ChatOptions., TopK ve TopP'yi yok sayarlar. Dile göre tam SDK sürüm numaraları kılavuzun Upgrade steps sekmelerindedir.
API'yi bir SDK olmadan çağırıyorsanız, sürüm anthropic- başlığıdır ve yeni kuralı açan değer 2026-10-21'dur.
Onları kaldırdıktan sonra yanıtlar değişecek mi?#
Modele bağlı ve kılavuz burada net.
- Claude 4.7 ve sonrası zaten yalnızca varsayılan örnekleme değerlerini kabul eder. Sizin için hiçbir şey değişmez: önceden de varsayılanlarla örnekliyorlardı ve hâlâ öyle.
- Diğer değerleri kabul eden modeller, örneğin Claude Sonnet 4.6: daha tutarlı çıktı almak için
temperature'yi düşürdüyseniz, bu etki kaybolur ve yerini başka bir ayar almaz.
Belirli bir istek gerçekten varsayılan olmayan bir değere dayanıyorsa, kılavuzda iki seçeneğiniz var: parametreyi göndermeyi bırakıp varsayılan örneklemeyi kabul edin ya da o tek isteği anthropic-'da tutun.
Yanıtlarınız kesinlikle tutarlı olmak zorundaysa, tutarlılığı bunun yerine prompt'a koyun: sabit bir çıktı biçimi, istediğiniz yanıtın kısa bir örneği ve kodunuzda biçim dışı her şeyi reddeden bir kontrol. Bu tek bir sayıdan daha fazla iş, ama bir örnekleme düğmesine bağlı değil.
400 gördüğünüzde hızlı kontrol listesi#
- Projede
temperature,top_p,top_k'ü arayın; sarmalayıcılar ve paylaşılan yapılandırma dosyaları dahil. - Toplu işleri kontrol edin: kural, 2026-10-21 ile oluşturulmuş bir Message Batch içindeki her istek için geçerlidir, bu yüzden toplu işteki her isteğin parametrelerine bakın.
- Neyin değiştiğini kontrol edin: SDK ana sürümü, CLI sürümü veya
anthropic-başlığı.version - Alanları kaldırın ya da varsayılan olmayan bir değere ihtiyaç duyuyorsa o isteği
2023-06-01'ya sabitleyin. - Büyük bir toplu işi yeniden başlatmadan önce bir istek çalıştırın.
Claude ve OpenAI tarzı API'ler için tek kod yolu#
Yaygın bir kurulum: isteği oluşturup ya Anthropic Messages'a ya da OpenAI tarzı bir Chat Completions uç noktasına gönderen tek bir yardımcı. En basit çözüm parametreleri ayırmaktır. temperature'yi yalnızca OpenAI tarzı dalda tutun ve Messages dalına eklemeyin.
Chat Completions biçiminde bu ayar normal bir istek alanıdır. CheapTokens'te OpenAI uyumlu adres https:/ üzerinden çalışır. İşte DeepSeek-V4-Flash'e (380K bağlam, yanıt başına 32.768'e kadar çıktı token'ı) bir istek, CheapTokens dokümanlarındaki tam model kimliğiyle:
curl https://api.cheaptokens.dev/v1/chat/completions \
-H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/DeepSeek-V4-Flash-0731",
"temperature": 0.2,
"max_tokens": 300,
"messages": [{"role": "user", "content": "Summarise this ticket in two lines: ..."}]
}'Bunun gibi bir istek, 1.000 giriş token'ı ve 300 çıktı token'ıyla, mevcut fiyattan $0.000045 tutar. DeepSeek-V4-Flash günün her saatinde tek fiyata sahiptir, yoğun saat yoktur ve tek bir bakiye tüm modelleri kapsar. 390K bağlam penceresiyle aynı kod yolu için GLM-5.3-Flash de var (zai-, 8.192'ye kadar çıktı token'ı). Tüm modeller için güncel fiyatlar fiyatlandırma sayfasında.
Ayarın nasıl davrandığını görmek için System prompt ve temperature: ne yaparlar ve nasıl ayarlanırlar yazısını okuyun. Python'dan Claude biçimli Messages çağırmak için Anthropic Python SDK with CheapTokens yazısına bakın. Temel adres ve anahtar kurulumu CheapTokens dokümanlarında.



