Pag-troubleshootGabay
Claude API 400 error sa temperature, top_p, top_k: paano ito ayusin
Nagsimulang magbalik ng 400 ang iyong Claude request sa API version 2026-10-21? Tanggalin ang temperature, top_p at top_k, o i-pin ang lumang version. Nasa loob ang mga hakbang.

Sa pahinang ito
Gumana ang iyong Claude request kahapon, inilipat mo ito sa API version 2026-10-21 (ang anthropic- header, o isang SDK release na ginawa para dito), at ngayon bumabalik ito na may 400. Tingnan ang body ng request: kung mayroon itong temperature, top_p o top_k, iyon ang dahilan. Tanggalin ang tatlong field na iyon at dadaan na ang request.
Ayon sa migration guide ng Anthropic para sa version 2026-10-21 (https://platform.claude.com/docs/en/api/migration-2026-10-21, sinuri noong 24 Oktubre 2026), ang isang Messages o Message Batches request na nagpapadala ng alinman sa tatlo ay nagbabalik ng 400 error. Nangyayari ito kahit na ang value ay default ng parameter. Hanapin ang 400 status at ang mga field name na iyon sa iyong request.
Ano ang hitsura ng nabigong request#
Sabihin nating mayroon kang maliit na script na nagpapasummarize sa Claude ng isang ticket at pinapanatiling steady ang sagot gamit ang mababang temperature:
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: ..."}],
)Parehong kuwento sa plain HTTP. Kung ikaw mismo ang nagse-set ng version header, ito ang linyang naglilipat sa iyo sa bagong behaviour:
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"}]}'Ang fix: tanggalin ang tatlong parameter#
Tanggalin ang temperature, top_p at top_k mula sa bawat Messages at Message Batches request. Kung wala ang mga ito, nagsa-sample ang modelo gamit ang mga default nito (temperature 1.0), eksaktong tulad ng isang 2023-06-01 request na hindi naglalagay ng mga ito.
reply = client.messages.create(
model="<your Claude model>",
max_tokens=500,
messages=[{"role": "user", "content": "Summarise this ticket in two lines: ..."}],
)
Ang pinakabagong major SDK versions at ang ant CLI (2.0.0) ay wala nang mga parameter na ito, kaya pagkatapos mag-upgrade kailangan mong tanggalin ang mga ito sa iyong code. Ang 400 ay nagmumula sa mga request na lumalabas na may anthropic- at may dalang isa sa tatlong field. Ang .NET IChatClient adapters ay mas malambot ang ruta: hindi na nila pinapansin ang ChatOptions., TopK at TopP. Ang eksaktong SDK version numbers bawat language ay nasa Upgrade steps tabs ng guide.
Kung tumatawag ka sa API nang walang SDK, ang version ay ang anthropic- header, at ang 2026-10-21 ang value na nagbubukas ng bagong rule.
Magbabago ba ang mga sagot pagkatapos mong tanggalin ang mga ito?#
Depende sa modelo, at ang guide ay tiyak dito.
- Claude 4.7 at mas bago ay tumatanggap na lamang ng default sampling values. Walang nagbabago para sa iyo: nagsa-sample sila gamit ang mga default noon at ngayon.
- Mga modelong tumatanggap ng ibang values, tulad ng Claude Sonnet 4.6: kung ibinaba mo ang
temperaturepara makakuha ng mas consistent na output, nawawala ang epektong iyon, at walang ibang setting ang pumapalit dito.
Kung ang isang partikular na request ay talagang umaasa sa non-default value, mayroon kang dalawang opsyon mula sa guide: itigil ang pagpapadala ng parameter at tanggapin ang default sampling, o panatilihin ang isang request na iyon sa anthropic-.
Kung ang iyong mga sagot ay dapat na mahigpit na consistent, ilagay ang consistency sa prompt sa halip: isang fixed output format, isang maikling halimbawa ng sagot na gusto mo, at isang check sa iyong code na tumatanggihan sa anumang off-format. Mas maraming trabaho ito kaysa sa isang numero, pero hindi ito umaasa sa isang sampling knob.
Mabilis na checklist kapag nakita mo ang 400#
- Hanapin sa project ang
temperature,top_p,top_k, kasama ang mga wrapper at shared config files. - Suriin ang batch jobs: nalalapat ang rule sa bawat request sa loob ng Message Batch na ginawa gamit ang 2026-10-21, kaya tingnan ang params ng bawat request sa batch.
- Suriin kung ano ang nagbago: SDK major version, CLI version, o ang
anthropic-header.version - Tanggalin ang mga field, o i-pin ang request na iyon sa
2023-06-01kung kailangan nito ng non-default value. - Magpatakbo ng isang request bago ka mag-relaunch ng malaking batch.
Isang code path para sa Claude at OpenAI-style APIs#
Isang karaniwang setup: isang helper na bumubuo ng request at nagpapadala nito alinman sa Anthropic Messages o sa isang OpenAI-style Chat Completions endpoint. Ang pinakasimpleng fix ay hatiin ang mga parameter. Panatilihin ang temperature sa OpenAI-style branch lamang, at huwag idagdag ito sa Messages branch.
Sa Chat Completions format, ang setting ay isang normal na request field. Sa CheapTokens gumagana ito sa pamamagitan ng OpenAI-compatible address na https:/. Narito ang isang request sa DeepSeek-V4-Flash (380K context, hanggang 32,768 output tokens bawat sagot), kasama ang buong model id mula sa CheapTokens docs:
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: ..."}]
}'Ang isang request na tulad nito, na may 1,000 input tokens at 300 output tokens, ay nagkakahalaga ng $0.000045 sa kasalukuyang presyo. Ang DeepSeek-V4-Flash ay may isang presyo sa anumang oras ng araw, walang peak hours, at isang balance ang sumasaklaw sa lahat ng modelo. Para sa parehong code path na may 390K context window, mayroon ding GLM-5.3-Flash (zai-, hanggang 8,192 output tokens). Ang kasalukuyang mga presyo para sa lahat ng modelo ay nasa pricing page.
Para makita kung paano kumikilos ang setting, basahin ang System prompt at temperature: ano ang ginagawa nila at paano i-set ang mga ito. Para tumawag ng Claude-format Messages mula sa Python, tingnan ang Anthropic Python SDK kasama ang CheapTokens. Ang base address at key setup ay nasa CheapTokens docs.



