Ana sayfa → Yardım

Bir reasoning modelinde araç çağrısını zorlarken 400

tool_choice değerini auto yapın ve aracın ne zaman kullanılacağını istemde söyleyin. Düşünmenin her zaman açık olduğu modellerde zorlanmış bir araç çağrısı o düşünmeyi atlamak zorunda kalırdı; bu yüzden API, modeli sessizce kötüleştirmek yerine isteği reddeder.

Gördüğünüz hata

Neden oluyor

Bir araç çağrısını zorlamak makul bir istektir. Pek çok çerçeve yapılandırılmış çıktıyı böyle garanti eder: tek bir araç tanımla, zorla, argümanları ayrıştır. Bu numara, her yanıttan önce düşünen modellerde çalışmayı bırakır, çünkü zorlanan yol, para ödediğiniz adımı atlar.

Ret, alternatifinden daha iyidir. Parametreyi kabul edip yok sayan bir API, modeli kısıtladığınızı sandığınız halde kısıtlamamış olmanıza yol açardı – çok sonra, üretimde, ara sıra ayrıştırılamayan çıktı olarak ortaya çıkan bir hata.

Aynı modeller genellikle varsayılan dışı temperature, top_p ve top_k değerlerini de reddeder ve asistan yanıtını önceden doldurmayı desteklemez. Aynı ailenin eski bir modelinden taşınan kod bunların birkaçına aynı anda takılır; bu da sorunu parametre değil kimlik doğrulama ya da uç nokta sorunu gibi gösterir.

Sebebin bu olduğunu doğrulayın

Yalnızca tool_choice'u değiştirerek aynı isteği iki kez gönderin:

for CHOICE in '{"type":"auto"}' '{"type":"any"}'; do
  echo -n "$CHOICE -> "
  curl -s -o /dev/null -w '%{http_code}\n' \
    'YOUR_BASE_URL/chat/completions' \
    -H 'Authorization: Bearer YOUR_KEY' \
    -H 'Content-Type: application/json' \
    -d "{\"model\":\"YOUR_MODEL\",\"max_tokens\":16,
         \"messages\":[{\"role\":\"user\",\"content\":\"hi\"}],
         \"tool_choice\":$CHOICE}"
done

auto 200, any 400 döndürüyorsa model zorlanmış araç kullanımını desteklemiyordur. Anahtarınızda ya da uç noktanızda yanlış bir şey yok.

Nasıl düzeltilir

  1. tool_choice'u auto'da bırakın ve istemde açık olunKoşulu net ifade edin – "soru güncel bilgi gerektiriyorsa search'ü çağır". Reasoning modelleri bu tür talimatlara iyi uyar; zaten bunun için varlar.
  2. Zorlanmış araç yerine şemayla sınırlanmış yanıt kullanınBir aracı yalnızca yapılandırılmış çıktı almak için zorladıysanız, structured output ya da JSON schema parametresi bu işi doğrudan yapar ve genellikle hâlâ desteklenir.
  3. Aynı anda temperature'ı da kontrol edinÇerçeveler sizin hiç seçmediğiniz bir varsayılan temperature ayarlar. Bu modellerde varsayılan dışı her değer 400 demektir ve tool_choice hatasıyla tıpatıp aynı görünür.
  4. Kısıtlamaya güvenmek yerine çıktıyı doğrulayınZorlamanın çalıştığı yerlerde bile modeller şemaya uymayan argümanlar üretir. Yedek yolu olan bir ayrıştırıcıyı bir kez yazmaya değer.
APICLAN'da bu claude-fable-5-1 ve claude-fable-5 için geçerlidir: zorlanmış araç kullanımı, varsayılan dışı örnekleme parametreleri ve asistan ön doldurma reddedilir. Fable 5.1 rehberinde önbellek fiyatlarıyla birlikte tam liste var.

İlgili konular

OpenAI uyumlu bir API'yi çağırırken Unexpected token '<' hatası401 invalid API key – anahtar doğru göründüğü halde hata veriyorsa

Son kontrol: 2026-10-01. Canlı bir OpenAI uyumlu ağ geçidinde teşhis edilen sorunlardan yazılmıştır, başka sitelerden derlenmemiştir.