चैट

Anthropic Messages और Claude Code

Claude मॉडल Anthropic के Messages API को भी सपोर्ट करते हैं, इसलिए Anthropic के SDK, Claude Code और इनके लिए बनी दूसरी चीज़ें नए बेस URL और कुंजी के साथ काम करती हैं।

POST/v1/messages

बेस URL https://api.zurelay.com (SDK इसमें /v1/messages जोड़ते हैं)। कुंजी को x-api-key या Authorization: Bearer के तौर पर, anthropic-version: 2023-06-01 के साथ भेजें। यहाँ सिर्फ़ Claude मॉडल उपलब्ध हैं; दूसरे मॉडल /v1/chat/completions का इस्तेमाल करते हैं।

Anthropic के SDK के साथ

import os
import anthropic
client = anthropic.Anthropic(
base_url="https://api.zurelay.com",
api_key=os.environ["ZURELAY_API_KEY"],
)
message = client.messages.create(
model="claude-opus-5-5",
max_tokens=1024,
system="You are a careful code reviewer.",
messages=[{"role": "user", "content": "Review this function: def add(a, b): return a - b"}],
)
print(message.content[0].text)

Anthropic के Messages API की हर चीज़ आगे भेजी जाती है (metadata को छोड़कर, जो हमारे पास रहता है): स्ट्रिंग या ब्लॉक के रूप में system (प्रॉम्प्ट कैशिंग के लिए cache_control के साथ), tools, thinking, output_config, stop_sequences, temperature, उन्हीं इवेंट के साथ स्ट्रीमिंग, और anthropic-beta हेडर। तस्वीरें और PDF, image और document ब्लॉक के रूप में भेजे जाते हैं: तस्वीरें, PDF, ऑडियो और वीडियो देखें। Opus 4.7 और उसके बाद के Claude मॉडल पर Anthropic, temperature, top_p और top_k स्वीकार नहीं करता, इसलिए उन मॉडलों के लिए हम अनुरोध को विफल करने के बजाय इन्हें अनुरोध से हटा देते हैं।

सोचने की प्रक्रिया

Claude ज़रूरत के हिसाब से सोचता है: वह तय करता है कि किसी अनुरोध पर कितना सोचना है, और output_config.effort तय करता है कि वह कितनी गहराई से काम करेगा: low, medium, high, xhigh (बहुत ज़्यादा) या max। सोचने की प्रक्रिया का सारांश thinking ब्लॉक में पाने के लिए thinking में display: "summarized" जोड़ें।

import os
import anthropic
client = anthropic.Anthropic(
base_url="https://api.zurelay.com",
api_key=os.environ["ZURELAY_API_KEY"],
)
message = client.messages.create(
model="claude-opus-5-5",
max_tokens=32000,
thinking={"type": "adaptive", "display": "summarized"},
output_config={"effort": "xhigh"},
messages=[{"role": "user", "content": "How many primes are there below 1,000?"}],
)
for block in message.content:
print(block.thinking if block.type == "thinking" else block.text)
  • Claude Opus 5.5 और Fable मॉडल हमेशा सोचते हैं: अगर आप कोई स्तर तय नहीं करते, तो Opus 5.5 का स्तर medium और Fable का high होता है। सोचने से मना करने पर, वे low पर काम करते हैं।
  • Claude Sonnet 5.5 और Opus 5 डिफ़ॉल्ट रूप से high पर सोचते हैं, और Claude Haiku 5.5, medium पर। Opus 4.6 से 4.8 तक के मॉडल तभी सोचते हैं जब आप thinking भेजते हैं। Opus 4.6 में xhigh नहीं है, इसलिए वह high पर काम करता है।
  • पुराना रूप, thinking: { type: "enabled", budget_tokens }, हर Claude मॉडल पर काम करता है: जो मॉडल इसे स्वीकार नहीं करते, वे इसके बजाय सबसे नज़दीकी स्तर पर ज़रूरत के हिसाब से सोचते हैं। Claude Haiku 4.5 सिर्फ़ यही रूप स्वीकार करता है, और जब आप ज़रूरत के हिसाब से सोचने का विकल्प भेजते हैं, तो उसके लिए एक बजट तय कर दिया जाता है।
  • थिंकिंग का शुल्क आउटपुट टोकन के हिसाब से लगता है, इसलिए xhigh और max पर max_tokens में इसके लिए जगह रखें, और लंबे जवाब स्ट्रीम करें। जब आप कोई स्तर सेट करते हैं, तो x-zurelay-reasoning-effort हेडर बताता है कि कौन-सा स्तर इस्तेमाल हुआ।

प्रॉम्प्ट कैशिंग

कैशिंग Anthropic की तरह ही काम करती है: जिन ब्लॉक को कैश करना है उन पर, या पूरे अनुरोध पर, cache_control लगाएँ ताकि वे पाँच मिनट तक कैश में रहें, या एक घंटे तक रखने के लिए "ttl": "1h" जोड़ें। इनपुट के हर हिस्से का शुल्क Anthropic के तरीके से लगता है:

इनपुटशुल्क की दरयूसेज में
कैश से पढ़ा गयामॉडल की कैश दरcache_read_input_tokens
पाँच मिनट के लिए कैश में लिखा गयाइनपुट दर का 1.25 गुनाephemeral_5m_input_tokens
एक घंटे के लिए कैश में लिखा गयाइनपुट दर का 2 गुनाephemeral_1h_input_tokens
बाकी सबइनपुट दरinput_tokens

दोनों तरह के कैश राइट usage.cache_creation में हैं, और cache_creation_input_tokens दोनों का कुल है। हर मॉडल के पेज पर उसकी कैश दरें दी गई हैं। केवल उसी इनपुट पर कैश राइट का शुल्क लगता है जिसे आप कैश करने को कहते हैं: cache_control के बिना भेजे गए अनुरोध में, कैश से न पढ़े गए सभी इनपुट पर इनपुट दर लगती है, और जिस इनपुट को आप पाँच मिनट के लिए रखने को कहते हैं, उस पर कभी एक घंटे वाला शुल्क नहीं लगता।

Claude Code

पाँच एनवायरनमेंट वैरिएबल (बेस URL, आपकी कुंजी और मॉडल के तीन उपनाम) से Claude Code को Zurelay से कनेक्ट करें, फिर उसे हमेशा की तरह चलाएँ:

शेल
export ANTHROPIC_BASE_URL="https://api.zurelay.com"
export ANTHROPIC_AUTH_TOKEN="$ZURELAY_API_KEY"
export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-opus-5-5"
export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-5-5"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-haiku-5-5"
claude

यह सेटिंग बनाए रखने के लिए, यही वैल्यू ~/.claude/settings.json के env ब्लॉक में डालें। पूरी गाइड और Cursor, Cline व अन्य टूल की गाइड इंटीग्रेशन में हैं।

Claude Code के /effort स्तर मॉडल तक output_config.effort के रूप में पहुँचते हैं, इसलिए xhigh और max Anthropic की तरह ही काम करते हैं। Ultracode, Claude Code की एक सेटिंग है, एफर्ट लेवल नहीं: यह सेशन के स्तर पर चलता है (जब आप Claude Code को --effort ultracode के साथ शुरू करते हैं, तो xhigh)।

टोकन गिनना

POST/v1/messages/count_tokens

यह /v1/messages वाली ही बॉडी लेता है और { "input_tokens": 1234 } लौटाता है, जो अनुरोध में गिने जाने वाले टोकन का अनुमान है। मुफ़्त।

गड़बड़ियाँ

गड़बड़ियाँ Anthropic के फ़ॉर्मैट ({ "type": "error", "error": { "type", "message" } }) में लौटती हैं, और उनका मतलब गड़बड़ियों वाले पेज जैसा ही है। इनमें code नहीं होता: HTTP स्टेटस और error.type का इस्तेमाल करें।

कुछ Claude मॉडल केवल /v1/chat/completions के ज़रिए PDFs पढ़ते हैं। कोई PDF /v1/messages पर भेजें, तो गड़बड़ी का मैसेज बताता है कि कौन-सा एंडपॉइंट इस्तेमाल करना है। इमेज, PDFs, ऑडियो और वीडियो की तालिका में दिखाया गया है कि हर मॉडल क्या पढ़ सकता है।
  • सुझाव: Anthropic और हमारे टोकन काउंटर की गिनती में थोड़ा अंतर हो सकता है; शुल्क जवाब में बताए गए यूसेज के हिसाब से लगता है।

कोई सवाल है, या कुछ छूट गया है? हमारी सहायता टीम से पूछें और हम ईमेल से जवाब देंगे, आम तौर पर एक मिनट के भीतर.