समस्या निवारणगाइड
temperature, top_p, top_k पर Claude API 400 त्रुटि: इसे कैसे ठीक करें
आपका Claude अनुरोध API संस्करण 2026-10-21 पर 400 लौटाने लगा? temperature, top_p और top_k हटाएँ, या पुराने संस्करण पर पिन करें। अंदर चरण दिए गए हैं।

इस पृष्ठ पर
आपका Claude अनुरोध कल काम कर रहा था, आपने इसे API संस्करण 2026-10-21 पर स्थानांतरित कर दिया (anthropic- हेडर, या उसके लिए बनाया गया SDK रिलीज़), और अब यह 400 के साथ वापस आता है। अनुरोध के body को देखें: अगर उसमें temperature, top_p या top_k है, तो यही कारण है। उन तीन फ़ील्ड को हटा दें और अनुरोध सफल हो जाएगा।
संस्करण 2026-10-21 के लिए Anthropic की माइग्रेशन गाइड के अनुसार (https://platform.claude.com/docs/en/api/migration-2026-10-21, 24 अक्टूबर 2026 को जाँचा गया), एक Messages या Message Batches अनुरोध जो इन तीनों में से कोई भी भेजता है, 400 त्रुटि लौटाता है। यह तब भी होता है जब मान पैरामीटर का डिफ़ॉल्ट हो। अपने अनुरोध में 400 स्थिति और उन फ़ील्ड नामों को देखें।
विफल अनुरोध कैसा दिखता है#
मान लें कि आपके पास एक छोटी स्क्रिप्ट है जो Claude से एक टिकट का सारांश बनवाती है और कम 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: ..."}],
)सादे HTTP पर भी यही कहानी है। अगर आप स्वयं संस्करण हेडर सेट करते हैं, तो यह वह पंक्ति है जो आपको नए व्यवहार पर ले जाती है:
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"}]}'समाधान: तीन पैरामीटर हटाएँ#
हर Messages और Message Batches अनुरोध से temperature, top_p और top_k हटा दें। इनके बिना मॉडल अपने डिफ़ॉल्ट (temperature 1.0) के साथ सैंपल करता है, ठीक वैसे ही जैसे 2023-06-01 अनुरोध जो इन्हें छोड़ देता था।
reply = client.messages.create(
model="<your Claude model>",
max_tokens=500,
messages=[{"role": "user", "content": "Summarise this ticket in two lines: ..."}],
)
नवीनतम प्रमुख SDK संस्करणों और ant CLI (2.0.0) में ये पैरामीटर अब बिल्कुल नहीं हैं, इसलिए अपग्रेड करने के बाद आपको उन्हें अपने कोड से हटाना होगा। 400 उन अनुरोधों से आता है जो anthropic- के साथ जाते हैं और अभी भी तीन फ़ील्ड में से एक रखते हैं। .NET IChatClient एडाप्टर नरम रास्ता अपनाते हैं: वे अब ChatOptions., TopK और TopP को अनदेखा करते हैं। प्रत्येक भाषा के लिए सटीक SDK संस्करण संख्याएँ गाइड के Upgrade steps टैब में हैं।
अगर आप SDK के बिना API कॉल करते हैं, तो संस्करण anthropic- हेडर है, और 2026-10-21 वह मान है जो नया नियम चालू करता है।
इन्हें हटाने के बाद उत्तर बदलेंगे?#
मॉडल पर निर्भर करता है, और गाइड यहाँ विशिष्ट है।
- Claude 4.7 और बाद के संस्करण पहले से ही केवल डिफ़ॉल्ट सैंपलिंग मान स्वीकार करते हैं। आपके लिए कुछ नहीं बदलता: वे पहले भी डिफ़ॉल्ट से सैंपल करते थे और अब भी करते हैं।
- अन्य मान स्वीकार करने वाले मॉडल, जैसे Claude Sonnet 4.6: अगर आपने अधिक सुसंगत आउटपुट पाने के लिए
temperatureकम किया था, तो वह प्रभाव गायब हो जाता है, और कोई अन्य सेटिंग उसकी भरपाई नहीं करती।
अगर कोई विशेष अनुरोध वास्तव में गैर-डिफ़ॉल्ट मान पर निर्भर करता है, तो गाइड में आपके पास दो विकल्प हैं: पैरामीटर भेजना बंद करें और डिफ़ॉल्ट सैंपलिंग स्वीकार करें, या उस एक अनुरोध को anthropic- पर रखें।
अगर आपके उत्तर पूरी तरह सुसंगत होने चाहिए, तो सुसंगतता को प्रॉम्प्ट में डालें: एक निश्चित आउटपुट प्रारूप, आपके इच्छित उत्तर का एक छोटा उदाहरण, और आपके कोड में एक जाँच जो प्रारूप से हटी किसी भी चीज़ को अस्वीकार कर दे। यह एक संख्या से अधिक काम है, लेकिन यह सैंपलिंग नॉब पर निर्भर नहीं करता।
400 देखने पर त्वरित चेकलिस्ट#
- प्रोजेक्ट में
temperature,top_p,top_kखोजें, जिसमें रैपर और साझा कॉन्फ़िग फ़ाइलें भी शामिल हैं। - बैच जॉब जाँचें: नियम 2026-10-21 के साथ बनाए गए Message Batch के भीतर प्रत्येक अनुरोध पर लागू होता है, इसलिए बैच में हर अनुरोध के params देखें।
- देखें कि क्या बदला: SDK प्रमुख संस्करण, CLI संस्करण, या
anthropic-हेडर।version - फ़ील्ड हटाएँ, या यदि उस अनुरोध को गैर-डिफ़ॉल्ट मान चाहिए तो उसे
2023-06-01पर पिन करें। - बड़ा बैच फिर से लॉन्च करने से पहले एक अनुरोध चलाएँ।
Claude और OpenAI-शैली API के लिए एक कोड पथ#
एक सामान्य सेटअप: एक ही हेल्पर जो अनुरोध बनाता है और उसे या तो Anthropic Messages पर या OpenAI-शैली Chat Completions एंडपॉइंट पर भेजता है। सबसे सरल समाधान पैरामीटर को अलग करना है। temperature को केवल OpenAI-शैली शाखा में रखें, और इसे Messages शाखा में न जोड़ें।
Chat Completions प्रारूप में यह सेटिंग एक सामान्य अनुरोध फ़ील्ड है। CheapTokens पर यह OpenAI-संगत पते https:/ के माध्यम से काम करती है। यहाँ DeepSeek-V4-Flash (380K संदर्भ, प्रति उत्तर अधिकतम 32,768 आउटपुट टोकन) के लिए एक अनुरोध है, जिसमें CheapTokens दस्तावेज़ों से पूरा मॉडल id है:
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: ..."}]
}'1,000 इनपुट टोकन और 300 आउटपुट टोकन वाले ऐसे अनुरोध की वर्तमान कीमत पर लागत $0.000045 है। DeepSeek-V4-Flash की दिन के किसी भी समय एक ही कीमत है, कोई पीक आवर्स नहीं, और एक बैलेंस सभी मॉडलों को कवर करता है। 390K संदर्भ विंडो के साथ उसी कोड पथ के लिए GLM-5.3-Flash (zai-, अधिकतम 8,192 आउटपुट टोकन) भी है। सभी मॉडलों की वर्तमान कीमतें pricing page पर हैं।
सेटिंग कैसे व्यवहार करती है यह देखने के लिए, System prompt and temperature: what they do and how to set them पढ़ें। Python से Claude-प्रारूप Messages कॉल करने के लिए, Anthropic Python SDK with CheapTokens देखें। बेस पता और key सेटअप CheapTokens docs में है।



