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

شروعاتگائیڈ

OpenRouter سے CheapTokens پر سوئچ کریں: base_url، key، model id

OpenAI SDK (Python اور JavaScript) میں base_url، API key اور model id تبدیل کریں، پہلی درخواست بھیجیں اور تصدیق کریں کہ یہ کام کر گئی۔

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

کور: base_url، key اور model id تبدیل کر کے OpenAI-SDK ایپ کو OpenRouter سے CheapTokens پر سوئچ کرنا
اس صفحہ پر
  1. اصل میں کیا بدلتا ہے
  2. سوئچ کے بعد کوڈ
  3. تصدیق کریں کہ یہ کام کر گیا
  4. کون سا ماڈل کس کی جگہ لیتا ہے
  5. وہی ٹریفک کتنی لاگت آتی ہے
  6. اگر یہ کام نہ کرے
  7. شپ کرنے سے پہلے

آپ کی ایپ پہلے ہی OpenAI SDK کے ذریعے OpenRouter کو کال کرتی ہے، اور آپ چاہتے ہیں کہ یہ CheapTokens کو کال کرے۔ آپ تین ویلیوز بدلتے ہیں — base_url، API key اور model id — اور دو اختیاری ہیڈرز حذف کر دیتے ہیں۔ باقی کوڈ ویسا ہی رہتا ہے۔

نیچے Python، JavaScript اور curl کے لیے عین وہی لائنیں ہیں، یہ تصدیق کرنے کا ایک تیز طریقہ کہ سوئچ کام کر گیا، اور ایک ٹیبل کہ کون سا ماڈل کس کام کے لیے موزوں ہے۔ اگر آپ نے کبھی CheapTokens کو درخواست نہیں بھیجی، تو پہلی API درخواست گائیڈ اکاؤنٹ اور key کا احاطہ کرتی ہے؛ docs میں مکمل حوالہ موجود ہے۔

اصل میں کیا بدلتا ہے#

OpenRouter کا quickstart (27 اکتوبر 2026 کو چیک کیا گیا) OpenAI کلائنٹ کو base URL https://openrouter.ai/api/v1 کے ساتھ کنفیگر کرتا ہے اور ماڈلز کو provider/model-name کے طور پر نام دیتا ہے۔ CheapTokens https://api.cheaptokens.dev/v1 پر وہی OpenAI Chat Completions فارمیٹ بولتا ہے۔ لہٰذا کلائنٹ کلاس، chat.completions.create اور جواب پڑھنے کا طریقہ نہیں بدلتا۔

پہلے اور بعد: OpenRouter سے CheapTokens پر سوئچ کرتے وقت بدلنے والی تین ویلیوز
بدلنے کے لیے تین ویلیوز۔ key کو environment variable کے طور پر دکھایا گیا ہے، کبھی کوڈ میں نہیں۔

یہ فی لائن ایک تبدیلی ہے:

  • base URL — OpenRouter کے پتے کی بجائے https://api.cheaptokens.dev/v1؛
  • API key — آپ کے CheapTokens اکاؤنٹ کی key، جو environment variable سے پڑھی جاتی ہے؛
  • model id — مکمل CheapTokens id، مثلاً deepseek-ai/DeepSeek-V4-Flash-0731۔ ids CheapTokens docs سے لیں: مختلف providers ایک ہی ماڈل کو مختلف نام دیتے ہیں، اور قیمت کے لیبلز سے مختصر ids قبول نہیں کیے جاتے۔

اور ایک حذف۔ OpenRouter کے HTTP-Referer اور X-OpenRouter-Title ہیڈرز اختیاری ہیں اور صرف OpenRouter کے leaderboards کو فیڈ کرتے ہیں۔ انہیں default_headers / defaultHeaders سے ہٹا دیں؛ یہاں آپ کو ان کی ضرورت نہیں۔

سوئچ کے بعد کوڈ#

وہی درخواست، تین runtimes۔ وہ چنیں جو آپ کی ایپ استعمال کرتی ہے۔

سوئچ کے بعد آپ کا کوڈ

Python

python
import os
from openai import OpenAI

client = OpenAI(
    base_url='https://api.cheaptokens.dev/v1',
    api_key=os.environ['CHEAPTOKENS_API_KEY'],
)

resp = client.chat.completions.create(
    model='deepseek-ai/DeepSeek-V4-Flash-0731',
    messages=[{'role': 'user', 'content': 'Reply with one word: ready'}],
    max_tokens=20,
)
print(resp.choices[0].message.content)

JavaScript

javascript
import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://api.cheaptokens.dev/v1',
  apiKey: process.env.CHEAPTOKENS_API_KEY,
});

const resp = await client.chat.completions.create({
  model: 'deepseek-ai/DeepSeek-V4-Flash-0731',
  messages: [{ role: 'user', content: 'Reply with one word: ready' }],
  max_tokens: 20,
});
console.log(resp.choices[0].message.content);

curl

bash
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", "messages": [{"role": "user", "content": "Reply with one word: ready"}], "max_tokens": 20}'

چلانے سے پہلے ایک اور بات۔ اگر آپ کی درخواست میں صرف OpenRouter کے فیلڈز ہیں — routing یا fallback lists، provider preferences، ~alias model ids — تو وہ OpenRouter کے ہیں۔ درخواست کو معیاری Chat Completions فیلڈز تک محدود رکھیں: model، messages، temperature، max_tokens، stream۔

تصدیق کریں کہ یہ کام کر گیا#

جواب کافی ثبوت نہیں ہے۔ اس کے ساتھ تین چیزیں پرنٹ کریں: کس ماڈل نے جواب دیا، کیوں رکا، اور اس نے کتنے tokens بل کیے۔

python
print(resp.model)
print(resp.choices[0].finish_reason)
print(resp.usage.prompt_tokens, resp.usage.completion_tokens)
ٹرمینل میں environment اور check اسکرپٹ چل رہے ہیں
key ایک بار سیٹ کریں، check چلائیں، model، finish_reason اور usage پڑھیں۔

stop کا finish_reason کا مطلب ہے کہ ماڈل خود مکمل ہوا۔ length کا مطلب ہے کہ max_tokens نے جواب کاٹ دیا۔ usage input اور output tokens الگ الگ دکھاتا ہے، اور یہی وہ دو نمبر ہیں جن سے آپ کا بل بنتا ہے — وہی دو جو آپ OpenRouter پر ٹریک کر رہے تھے۔

خود آزمائیںآزمائیں: اگر آپ max_tokens کو 1 پر سیٹ کریں تو finish_reason کیا کہتا ہے؟جواب دکھائیں

یہ length کہتا ہے — جواب max_tokens نے کاٹ دیا۔ یہ اچھا ٹیسٹ ہے کہ آپ کا کوڈ truncated جواب کو سنبھالتا ہے۔

کون سا ماڈل کس کی جگہ لیتا ہے#

ماڈل کو کام کے لحاظ سے چنیں، نہ کہ اس نام کے لحاظ سے جو آپ OpenRouter پر استعمال کرتے تھے۔ نیچے دیے گئے حقائق CheapTokens کی قیمت کی فہرست سے ہیں جو 27 اکتوبر 2026 کو چیک کی گئی؛ ایک بیلنس تینوں ماڈلز کو کور کرتا ہے اور قیمت دن کے وقت کے ساتھ نہیں بدلتی۔

ماڈل model id Context زیادہ سے زیادہ جواب
DeepSeek-V4-Flash deepseek-ai/DeepSeek-V4-Flash-0731 380K 32,768 tokens
GLM-5.3-Flash zai-org/GLM-5.3-Flash 390K 8,192 tokens
MiniMax-M2.7 MiniMaxAI/MiniMax-M2.7 180K 8,192 tokens

یقین نہیں کہ کون سی قطار آپ کی ہے؟ اس سے شروع کریں کہ ایپ کیا کرتی ہے:

اپنا کیس منتخب کریں

آپ کی ایپ زیادہ تر کیا کرتی ہے؟

مختصر، بار بار آنے والی درخواستیں — classification، extraction، support replies

zai-org/GLM-5.3-Flash آزمائیں: 390K context، 8,192 tokens تک جوابات، اور مجموعی طور پر، input اور output ملا کر، یہ OpenRouter سے سستا ہے۔

لمبے جوابات، کوڈ، agent loops

deepseek-ai/DeepSeek-V4-Flash-0731 آزمائیں: 32,768 tokens تک جوابات، 380K context، دن کے کسی بھی وقت ایک ہی قیمت۔

ایک مستقل workload جس پر آپ فی الحال OpenRouter کی اونچی قیمت ادا کرتے ہیں

MiniMaxAI/MiniMax-M2.7 آزمائیں: 180K context، 8,192 tokens تک جوابات، اور مجموعی طور پر یہ OpenRouter سے سستا پڑتا ہے۔

وہی ٹریفک کتنی لاگت آتی ہے#

فرض کریں آپ کا بوٹ 1,000 درخواستیں بھیجتا ہے، ہر ایک میں تقریباً 500 input tokens اور 300 output tokens۔ یہ ایک مفروضہ ہے — usage سے اپنے نمبر ڈالیں۔ نیچے دیا گیا ٹیبل لائیو ہے: ہماری قیمتیں اور OpenRouter کا کالم موجودہ قیمت کی فہرست سے ہیں، input اور output ملا کر۔

ماڈل فی درخواست 1,000 درخواستیں OpenRouter، 1,000 درخواستیں
GLM-5.3-Flash $0.000022 $0.022 $0.0434
DeepSeek-V4-Flash $0.000038 $0.0375 $0.0708
MiniMax-M2.7 $0.00007 $0.07 $0.51

فی درخواست 500 ان پٹ اور 300 آؤٹ پٹ ٹوکنز۔ فی 1M ٹوکنز کی قیمتیں موجودہ ہیں اور ہمارے ٹیرف کے ساتھ تبدیل ہوتی ہیں؛ OpenRouter کالم اسی ورک لوڈ کے لیے حوالہ جاتی قیمتیں دکھاتا ہے۔

DeepSeek-V4-Flash پر وہ 1,000 درخواستیں $0.0375 بنتی ہیں۔ مکمل قیمتیں pricing page پر ہیں؛ آپ سے کس چیز کا بل لیا جاتا ہے اس کا تصور input vs output tokens میں ہے۔

اگر یہ کام نہ کرے#

سوئچ کے بعد، تین errors زیادہ تر مشکلات کا احاطہ کرتے ہیں۔ پیغام کو وجہ سے ملائیں:

جوڑے ملائیں

ہر علامت کو اس کی وجہ سے ملائیں

  • 401 Unauthorizedkey غائب ہے، غلط ٹائپ ہوئی ہے، یا اب بھی OpenRouter والی ہے
  • 404 Not Foundbase URL کا path غلط ہے یا model id مکمل CheapTokens id نہیں ہے
  • جواب درمیان میں کٹ گیاmax_tokens جواب کی ضرورت سے کم ہے؛ finish_reason length کہتا ہے

401 اور 404 troubleshooting مضمون ہر ایک کو عین پیغامات کے ساتھ بیان کرتا ہے، اور base_url کیا ہے بتاتا ہے کہ ایک غلط slash path کیوں توڑ دیتا ہے۔

شپ کرنے سے پہلے#

چیک لسٹ

سوئچ چیک لسٹ