بلاگ پر واپس جائیں

شروعاتگائیڈ

HTTPie کے ساتھ CheapTokens پر پہلی درخواست: env میں کلید، = اور :=

ایک قابلِ پڑھائی http کمانڈ جو ماحول کے متغیر میں کلید کے ساتھ چیٹ کمپلیشن بھیجتی ہے، پھر دکھاتی ہے کہ جواب اور ٹوکن استعمال کہاں ہیں۔

از CheapTokens Teamشائع شدہ 5 منٹ کا مطالعہ

ایک ٹرمینل جو bearer کلید متغیر اور 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 اوپن اے آئی کے ساتھ مطابقت رکھتی ہے، لہذا بنیادی URL https://api.cheaptokens.dev/v1 ہے اور چیٹ درخواستیں اس کے تحت /chat/completions پر جاتی ہیں۔ ماڈل آئی ڈی مکمل ہے، deepseek-ai/DeepSeek-V4-Flash-0731 (قیمت کے جدولوں سے مختصر نام قبول نہیں کیا جاتا)۔ اگر آپ نے پہلے کلید محفوظ نہیں کی، تو پہلے API کلید محفوظ طریقے سے محفوظ کریں: export لائن ٹائپ کرنے سے کلید آپ کی شیل ہسٹری میں چلی جاتی ہے، لہذا پروفائل فائل یا سیکرٹس مینیجر اس کے لیے بہتر جگہ ہے۔

ٹرمینل میں درخواست: متغیر سے bearer کلید، ماڈل بطور سٹرنگ، max_tokens بطور نمبر، messages بطور خام ارے
ٹرمینل میں وہی درخواست جیسی نظر آتی ہے

= اور := اصل میں کیا کرتے ہیں#

یہ 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 لکھیں۔

جواب کہاں ہے#

جواب اوپن اے آئی چیٹ کمپلیشنز فارمیٹ کی پیروی کرتا ہے۔ آپ تین چیزیں تلاش کر رہے ہیں، اور وہ مختلف جگہوں پر ہیں:

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 کے بغیر وہی درخواست Python میں requests کے ساتھ پہلی درخواست میں ہے۔ مکمل API حوالہ کے لیے، CheapTokens دستاویزات دیکھیں۔