ब्लॉग पर वापस जाएं

शुरुआत करेंगाइड

HTTPie के साथ CheapTokens को पहला अनुरोध: env में कुंजी, = और :=

एक पठनीय http कमांड जो पर्यावरण चर में कुंजी के साथ चैट कम्प्लीशन भेजता है, फिर दिखाता है कि उत्तर और टोकन उपयोग कहाँ हैं।

CheapTokens Team द्वाराप्रकाशित 7 मिनट का पाठ

एक टर्मिनल जिसमें बियरर कुंजी वेरिएबल और JSON फ़ील्ड के साथ http कमांड दिखाया गया है
इस पृष्ठ पर
  1. = और := वास्तव में क्या करते हैं
  2. उत्तर कहाँ है
  3. मॉडल बदलें: एक फ़ील्ड बदलें
  4. एक परीक्षण अनुरोध की लागत
  5. यदि यह काम नहीं करता है

आप जानना चाहते हैं कि कुंजी काम करती है और मॉडल आईडी सही है, और आप इसे एक पंक्ति में जानना चाहते हैं। HTTPie का http कमांड curl की तुलना में बहुत कम कोटिंग के साथ ऐसा करता है: आप फ़ील्ड टाइप करते हैं, यह JSON बनाता है। यहाँ पूरा अनुरोध है, और शेष लेख प्रत्येक भाग की व्याख्या करता है।

bash
export CHEAPTOKENS_API_KEY="paste-your-key-here"

http --body -A bearer -a "$CHEAPTOKENS_API_KEY" \
  POST https://api.cheaptokens.dev/v1/chat/completions \
  model=deepseek-ai/DeepSeek-V4-Flash-0731 \
  max_tokens:=200 \
  'messages:=[{"role":"user","content":"In one sentence, what is a token?"}]'

API OpenAI-संगत है, इसलिए बेस URL https://api.cheaptokens.dev/v1 है और चैट अनुरोध इसके अंतर्गत /chat/completions पर जाते हैं। मॉडल आईडी पूर्ण है, deepseek-ai/DeepSeek-V4-Flash-0731 (मूल्य तालिकाओं से छोटा नाम स्वीकार नहीं किया जाता)। यदि आपने पहले कोई कुंजी संग्रहीत नहीं की है, तो पहले API कुंजी सुरक्षित रूप से संग्रहीत करें: export पंक्ति टाइप करने से कुंजी आपके शेल इतिहास में चली जाती है, इसलिए प्रोफ़ाइल फ़ाइल या सीक्रेट्स मैनेजर इसके लिए बेहतर घर है।

टर्मिनल में अनुरोध: वेरिएबल से बियरर कुंजी, मॉडल एक स्ट्रिंग के रूप में, max_tokens एक संख्या के रूप में, संदेश एक कच्चे ऐरे के रूप में
टर्मिनल में जैसा दिखता है वैसा ही अनुरोध

= और := वास्तव में क्या करते हैं#

यह HTTPie का एकमात्र भाग है जो आपको सीखना है। HTTPie का JSON दस्तावेज़ (संस्करण 3.2.4, दिनांक 1 नवंबर 2024, 9 नवंबर 2026 को पढ़ा गया) कहता है कि = एक स्ट्रिंग फ़ील्ड सेट करता है और := एक कच्चा JSON मान सेट करता है: एक संख्या, बूलियन, ऐरे या ऑब्जेक्ट। इस तरह दिए गए फ़ील्ड डिफ़ॉल्ट रूप से JSON बॉडी के रूप में भेजे जाते हैं, इसलिए आप स्वयं Content-Type हेडर नहीं जोड़ते।

हमारे अनुरोध में यह तीन अलग-अलग आकार देता है:

  • model=deepseek-ai/DeepSeek-V4-Flash-0731 एक स्ट्रिंग है, इसलिए =।
  • max_tokens:=200 एक संख्या है, इसलिए :=। = के साथ आप स्ट्रिंग "200" भेजेंगे।
  • messages:=[…] ऑब्जेक्ट्स का एक ऐरे है, इसलिए फिर से :=, और मान एकल उद्धरणों में जाता है ताकि शेल आंतरिक दोहरे उद्धरणों को अकेला छोड़ दे।

दस्तावेज़ यह भी कहते हैं कि stdin से बॉडी को कमांड-लाइन फ़ील्ड के साथ संयोजित नहीं किया जा सकता, इसलिए एक शैली चुनें। पहले परीक्षण के लिए फ़ील्ड छोटे और संपादित करने में आसान हैं।

त्वरित जाँच

max_tokens=200 (एक सादे = के साथ) क्या भेजता है?

उत्तर दिखाएँ

उत्तर: स्ट्रिंग "200"

= हमेशा एक स्ट्रिंग बनाता है। संख्या के लिए आपको := चाहिए, इसलिए max_tokens:=200 लिखें।

उत्तर कहाँ है#

उत्तर OpenAI चैट-कम्प्लीशन प्रारूप का पालन करता है। आप तीन चीज़ें ढूंढ रहे हैं, और वे अलग-अलग स्थानों पर हैं:

json
{
  "choices": [
    {
      "message": { "role": "assistant", "content": "…the answer text…" },
      "finish_reason": "stop"
    }
  ],
  "usage": { "prompt_tokens": …, "completion_tokens": …, "total_tokens": … }
}

उत्तर पाठ choices[0].message.content है। finish_reason उसी विकल्प में इसके बगल में है, और usage शीर्ष स्तर पर है। usage दिखाता है कि आपने कितने टोकन भेजे (prompt_tokens) और मॉडल ने कितने लिखे (completion_tokens), जो किसी अनुरोध की लागत का अनुमान लगाने के लिए उपयोगी है।

प्रतिक्रिया में कहाँ देखें: choices, message.content, finish_reason और usage
हर प्रतिक्रिया में पढ़ने के लिए तीन फ़ील्ड

यदि आप केवल पाठ चाहते हैं, तो बॉडी को jq में पाइप करें:

bash
http --body -A bearer -a "$CHEAPTOKENS_API_KEY" \
  POST https://api.cheaptokens.dev/v1/chat/completions \
  model=deepseek-ai/DeepSeek-V4-Flash-0731 \
  max_tokens:=200 \
  'messages:=[{"role":"user","content":"In one sentence, what is a token?"}]' \
  | jq -r '.choices[0].message.content'
स्वयं आज़माएँइसे आज़माएँ: सीमा बहुत छोटी करें और finish_reason पढ़ेंउत्तर दिखाएँ

max_tokens:=200 को max_tokens:=5 में बदलें और इसे फिर से चलाएँ। उत्तर कट जाता है, और finish_reason stop के बजाय length पढ़ता है: सीमा ने मॉडल को रोका, विचार के अंत ने नहीं। उत्तर क्यों कट जाता है समाधान को कवर करता है।

मॉडल बदलें: एक फ़ील्ड बदलें#

मॉडल एक स्ट्रिंग है, इसलिए दूसरा आज़माना एक शब्द का संपादन है। नीचे दोनों आईडी CheapTokens पर एक ही बैलेंस के साथ उपलब्ध हैं; DeepSeek-V4-Flash आपको 380K संदर्भ और प्रति उत्तर अधिकतम 32,768 आउटपुट टोकन देता है, GLM-5.3-Flash 390K संदर्भ और अधिकतम 8,192।

एक अनुरोध, दो मॉडल

DeepSeek-V4-Flash

bash
http --body -A bearer -a "$CHEAPTOKENS_API_KEY" \
  POST https://api.cheaptokens.dev/v1/chat/completions \
  model=deepseek-ai/DeepSeek-V4-Flash-0731 \
  max_tokens:=200 \
  'messages:=[{"role":"user","content":"Name three uses of a token limit."}]'

GLM-5.3-Flash

bash
http --body -A bearer -a "$CHEAPTOKENS_API_KEY" \
  POST https://api.cheaptokens.dev/v1/chat/completions \
  model=zai-org/GLM-5.3-Flash \
  max_tokens:=200 \
  'messages:=[{"role":"user","content":"Name three uses of a token limit."}]'

कौन सी आईडी उपयोग करें, पता नहीं? GET /v1/models के साथ मॉडल सूचीबद्ध करें और सटीक स्ट्रिंग कॉपी करें।

एक परीक्षण अनुरोध की लागत#

इस तरह का एक छोटा प्रश्न सस्ता है। मान लें कि प्रश्न लगभग 100 टोकन का है और उत्तर लगभग 150 का: उस अनुरोध की लागत $0.000017 है। इनमें से एक हज़ार ऐसे दिखते हैं, इनपुट और आउटपुट को एक साथ गिना गया है:

मॉडल प्रति अनुरोध 1,000 अनुरोध OpenRouter, 1,000 अनुरोध
GLM-5.3-Flash $0.000008 $0.008 $0.0158
DeepSeek-V4-Flash $0.000017 $0.0165 $0.028
MiniMax-M2.7 $0.000028 $0.0275 $0.33

प्रति अनुरोध 100 इनपुट और 150 आउटपुट टोकन। प्रति 1M टोकन की कीमतें वर्तमान हैं और हमारे टैरिफ के साथ बदलती रहती हैं; OpenRouter कॉलम समान कार्यभार के लिए संदर्भ कीमतें दिखाता है।

कुल मिलाकर, इनपुट और आउटपुट को एक साथ गिनते हुए, DeepSeek-V4-Flash OpenRouter की तुलना में सस्ता निकलता है, और कीमत एक निश्चित दर है जिसमें कोई पीक आवर्स नहीं हैं। हर मॉडल के वर्तमान दरें मूल्य पृष्ठ पर हैं।

यदि यह काम नहीं करता है#

  • आपने messages=[…] को एक सादे = के साथ टाइप किया। ऐरे एक स्ट्रिंग के रूप में जाता है, संदेशों की सूची के रूप में नहीं। := और पूरे मान के चारों ओर एकल उद्धरण का उपयोग करें।
  • := के अंदर JSON अमान्य है। हर कुंजी और स्ट्रिंग को दोहरे उद्धरण चाहिए, और बाहरी उद्धरण एकल होने चाहिए। यदि आप संदेश पाठ संपादित करते हैं, तो उद्धरण संतुलित रखें।
  • कुंजी खाली है। echo ${#CHEAPTOKENS_API_KEY} कुंजी दिखाए बिना लंबाई प्रिंट करता है; 0 का अर्थ है कि इस टर्मिनल में वेरिएबल सेट नहीं है।
  • मॉडल आईडी छोटा नाम है। पूर्ण deepseek-ai/DeepSeek-V4-Flash-0731 का उपयोग करें। 401 और 404 उत्तरों के लिए, गलत कुंजी, बेस URL या मॉडल आईडी देखें।
  • आपने --session का सहारा लिया। HTTPie के प्रमाणीकरण दस्तावेज़ कहते हैं कि सत्र फ़ाइलें क्रेडेंशियल को सादे पाठ में संग्रहीत करती हैं, इसलिए कुंजी को पर्यावरण में रखें और इस कमांड से --session को बाहर रखें।

यदि कोई फ़्लैग ऊपर दिए गए से अलग व्यवहार करता है तो http --version के साथ अपना संस्करण जांचें। Python पसंद है? SDK के बिना वही अनुरोध requests के साथ Python में पहला अनुरोध में है। पूर्ण API संदर्भ के लिए, CheapTokens दस्तावेज़ देखें।