Open Interpreter کو ایک custom OpenAI-compatible endpoint پر چلائیں۔

Updated 2026-07-30

Open Interpreter api_base براہ راست ظاہر کرتا ہے۔ اسے https://api.apisrouter.com/v1 پر point کریں، model id کے آگے openai/ prefix لگائیں تاکہ LiteLLM chat completions بولے، اور جو model آپ کی مشین پر کوڈ لکھتا اور چلاتا ہے وہ ایک ہی key کے تحت کیٹلاگ کی کوئی بھی id ہو سکتی ہے۔

فوری جواب: api_base اور openai/ model prefix۔

Open Interpreter دونوں interfaces میں ایک custom-endpoint راستہ document کرتا ہے۔ CLI پر، endpoint کے ساتھ --api_base اور id پر openai/ prefix کے ساتھ --model pass کریں۔ Python میں، chat() کال کرنے سے پہلے interpreter.llm.api_base، interpreter.llm.api_key، اور interpreter.llm.model سیٹ کریں۔ prefix کوئی سجاوٹ نہیں۔ Open Interpreter LiteLLM پر چلتا ہے، اور LiteLLM model string سے فیصلہ کرتا ہے کہ کون سا provider client استعمال کرنا ہے۔ openai/claude-sonnet-4-6 کا مطلب ہے "جو بھی api_base بتائے اس سے OpenAI chat-completions protocol بولو، model field کے طور پر claude-sonnet-4-6 کے ساتھ۔" prefix ہٹا دیں تو LiteLLM اس کی بجائے bare name سے provider infer کر لیتا ہے، ایک claude-* id کو Anthropic کے client کی طرف route کرتے ہوئے آپ کے configure کردہ endpoint کو نظر انداز کر دیتا ہے۔

export OPENAI_API_KEY=sk-APIsRouter-...

interpreter \
  --api_base https://api.apisrouter.com/v1 \
  --model openai/claude-sonnet-4-6

Open Interpreter اپنے model کے ساتھ کیا کرتا ہے۔

Open Interpreter (GitHub پر openinterpreter، تقریباً 66K stars) ایک language model کو آپ کی مشین پر ایک code interpreter دیتا ہے: آپ natural language میں ایک goal بیان کرتے ہیں، model Python یا shell لکھتا ہے، Open Interpreter اسے مقامی طور پر execute کرتا ہے، اور output اگلے step کے لیے conversation میں واپس کھلایا جاتا ہے۔ یہ loop اسے ایک chat client سے quality میں مختلف بناتا ہے۔ model prose پیدا نہیں کر رہا؛ یہ ایسا کوڈ پیدا کر رہا ہے جو آپ کے user کی permissions کے ساتھ چلتا ہے، اور یہ آپ کے حقیقی system سے آنے والی حقیقی errors کے خلاف iterate کرتا ہے۔ روٹنگ کے لیے دو نتائج نکلتے ہیں۔ پہلا، model quality براہ راست ایک safety اور correctness property ہے: ایک model جو flags کا hallucinate کرے یا ایک traceback غلط پڑھے وہ ایک اور فیل round trip پیدا کرتا ہے، اور auto-run mode میں یہ ایک ایسا round trip پیدا کرتا ہے جسے آپ نے review نہیں کیا۔ دوسرا، loop ایک مخصوص طریقے سے token-hungry ہے: ہر turn بڑھتی ہوئی conversation، کوڈ، اور captured output دوبارہ بھیجتا ہے، تو لمبے debugging sessions context کو تیزی سے بڑھاتے ہیں۔ api_base setting اس پورے loop کو ایک endpoint پر منتقل کر دیتی ہے۔ چونکہ openai/ prefix کے بعد model field ایک plain string کے طور پر گزرتی ہے، ایک Claude id، ایک GPT id، اور ایک DeepSeek id الگ provider setups کی بجائے interchangeable one-flag choices ہیں۔

مکمل سیٹ اپ: Python API اور ایک profile۔

Python راستہ interpreter.llm پر وہی تین values سیٹ کرتا ہے اور وہ دو settings شامل کرتا ہے جنہیں LiteLLM ایک custom id کے لیے discover نہیں کر سکتا: context_window اور max_tokens۔ Open Interpreter context_window کو یہ فیصلہ کرنے کے لیے استعمال کرتا ہے کہ trim کرنے سے پہلے کتنی conversation history رکھی جائے، تو اسے unset یا defaulted چھوڑنا 200k model پر ضرورت سے کہیں پہلے trim کر دیتا ہے؛ وہی declare کریں جو model حقیقت میں سپورٹ کرتا ہے۔ ایک persistent سیٹ اپ کے لیے، وہی keys ایک profile YAML میں llm: block کے تحت رہتی ہیں (interpreter --profiles کے ساتھ profiles directory کھولیں)۔ ایک profile endpoint، model، اور window settings کو آپ کی shell history سے باہر رکھتا ہے اور configuration کو مشینوں کے پار shareable بناتا ہے، جبکہ key اب بھی environment سے فراہم ہوتی ہے۔

import os
from interpreter import interpreter

interpreter.llm.api_base = "https://api.apisrouter.com/v1"
interpreter.llm.api_key = os.environ["APISROUTER_API_KEY"]
interpreter.llm.model = "openai/claude-sonnet-4-6"

# LiteLLM cannot infer these for a custom id; declare them:
interpreter.llm.context_window = 200000
interpreter.llm.max_tokens = 8192
interpreter.llm.supports_functions = True

interpreter.chat("Profile data.csv and plot the top 10 rows by revenue.")

وہ model چننا جو آپ کا کوڈ لکھتا ہے۔

یہاں model comparison غیر معمولی طور پر concrete ہے: دو models کو ایک ہی task دیں اور working result تک round trips گنیں۔ per-key usage view فی session token cost شامل کرتی ہے، جو round-trip count کے ساتھ مل کر پورا موازنہ ہے۔ ایک endpoint کے پیچھے ہر candidate ایک flag ہے۔

  • main loop کو ایسا model چاہیے جو runnable کوڈ لکھے اور پہلی ہی کوشش میں tracebacks اچھی طرح پڑھے؛ claude-sonnet-4-6 اور gpt-5.5 قابلِ اعتماد middle ہیں، اور ہر ناکام round trip جسے ایک بہتر model روکے وہ بچائے گئے tokens اور wall-clock ہیں۔
  • deepseek-v4-pro code-heavy sessions کے لیے ایک مضبوط candidate ہے جہاں volume اہم ہو؛ ایک endpoint کے ذریعے، اسے اپنے tasks پر آزمانا صرف ایک --model تبدیلی ہے۔
  • Quick utility sessions (file renames، one-off transforms، format conversions) کو frontier reasoning کی ضرورت نہیں؛ claude-haiku-4-5-20251001 یا glm-5.2 انہیں تیز اور سستا رکھتے ہیں۔
  • Auto-run mode (-y) کوڈ generation اور execution کے درمیان human review step ہٹا دیتا ہے۔ اگر آپ اسے استعمال کریں تو اپنے چلائے جانے والے سب سے مضبوط model کے ساتھ، ایک sandbox یا container میں، کبھی بھی ایسے model کے ساتھ نہیں جسے آپ ابھی evaluate کر رہے ہیں۔

استعمال کے مطابق ادائیگی · سرکاری قیمت سے کم

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

ماڈلسرکاری قیمتہماری قیمت
Claude Sonnet 4.6$3.00 / $15.00 per M$2.40 / $12.00 per M
GPT-5.5$5.00 / $30.00 per M$4.00 / $24.00 per M
DeepSeek V4 Pro$0.43 / $0.87 per M$0.40 / $0.90 per M
Claude Haiku 4.5 20251001$1.00 / $5.00 per M$0.80 / $4.00 per M
GLM-5.2$1.14 / $4.00 per M$1.10 / $4.00 per M

Open Interpreter سے مخصوص failure modes۔

ایک bare model id آپ کے endpoint کے گرد route ہوتی ہے۔ openai/ prefix کے بغیر، LiteLLM نام سے provider resolve کرتا ہے: claude-* ids Anthropic کے client کی طرف جاتی ہیں، اور نتیجہ ایک ایسے host کے خلاف auth یا routing error ہے جسے آپ نے کبھی configure نہیں کیا۔ اگر errors آپ کے gateway کی بجائے کسی vendor SDK کا نام لیں، تو prefix غائب ہے۔ Default context assumptions آپ کے sessions کو trim کر دیتی ہیں۔ ایسی id کے لیے جسے LiteLLM نہیں پہچانتا، کچھ بھی context window نہیں بھرتا؛ Open Interpreter conservative رویے پر fall back کرتا ہے اور history جلدی trim کرتا ہے۔ context_window صراحتاً declare کریں، کیونکہ ایک code-debugging session جو اپنی پہلے کی کوششیں کھو دے وہی غلطیاں دوبارہ کرتا ہے۔ بڑھتے sessions، بڑھتے bills۔ ہر turn conversation جمع کوڈ جمع captured output دوبارہ بھیجتا ہے۔ ایک session جو ایک بڑا dataframe یا لمبا log loop میں paste کرے وہ اسے ہر بعد کی request میں لے جاتا ہے۔ chat میں file contents paste کرنے پر model سے ایسا کوڈ لکھوانا ترجیح دیں جو files inspect کرے، اور task بدلنے پر نئے sessions شروع کریں۔ Function-calling mismatch۔ Open Interpreter جہاں سپورٹڈ ہو structured function calls استعمال کر سکتا ہے؛ supports_functions flag ان ids کے لیے موجود ہے جہاں detection غلط اندازہ لگائے۔ اگر ایسے model پر جسے آپ capable جانتے ہیں code blocks malformed آئیں، تو اسے صراحتاً True سیٹ کریں؛ اگر کوئی model واقعی tool support نہیں رکھتا، تو False سیٹ کریں تاکہ fallback راستہ engage ہو۔ Execution side آپ کا اپنا ہے۔ api_base model traffic منتقل کرتی ہے؛ کوڈ اب بھی آپ کی permissions کے ساتھ مقامی طور پر چلتا ہے۔ ایک gateway کچھ بھی sandbox نہیں کرتا، تو auto-run کو containers تک محدود رکھیں اور باقی ہر جگہ safety review کو loop میں رہنے دیں۔

Open Interpreter کو gateway کے ذریعے کون route کرتا ہے۔

  • وہ developers جو Open Interpreter کو روزانہ automation tool کے طور پر استعمال کرتے ہیں اور Claude-quality code generation، GPT variety، اور تیز utility ids ایک key کے پیچھے چاہتے ہیں۔
  • وہ data folks جو exploratory analysis loops چلاتے ہیں، جہاں ایک session حیران کن context جلا سکتا ہے اور per-key usage فی notebook-equivalent cost کو نظر آنے والا بناتی ہے۔
  • وہ engineers جو round-trips-to-working پر code-writing models کا موازنہ کرتے ہیں، جو دستیاب سب سے ایماندار benchmark ہے، فی candidate ایک --model flag۔
  • وہ tinkerers جو scheduled یا containerized interpreter jobs چلاتے ہیں، جہاں ایک env-var endpoint اور ایک secret فی-vendor credential set سے بہتر ہے۔
  • وہ developers جن کے پاس کسی مخصوص vendor کی billing تک رسائی نہیں۔ Top-up پر مبنی رسائی بغیر کارڈ کی شرط کے فی-provider sign-up کا انحصار ختم کر دیتی ہے۔

Endpoint verify کریں اور پہلا session debug کریں۔

پہلے gateway کے models list کریں؛ openai/ کے بعد آنے والی id کو ایک serve کی گئی id سے بالکل میچ ہونا چاہیے، version suffix سمیت۔ پہلی-session failures ایک pattern کی پیروی کرتی ہیں۔ Errors جو anthropic یا کسی اور vendor SDK کا نام لیں مطلب openai/ prefix غائب ہے اور LiteLLM نے نام سے route کیا۔ ایک 401 مطلب key اس shell میں نظر نہیں آتی جس نے interpreter لانچ کیا، یا استعمال ہونے والے سے مختلف variable کے لیے سیٹ کی گئی تھی؛ prefix موجود ہونے پر، OPENAI_API_KEY یا ایک صریح api_key دونوں کام کرتے ہیں۔ ایک model-not-found error gateway سے id کی typo ہے۔ ایک connection error عموماً مطلب ہے کہ api_base نے اپنا /v1 suffix کھو دیا؛ client آپ کے دیے گئے base میں /chat/completions append کرتا ہے۔ ایک بار loop چلنے لگے تو APIsRouter console per-request model، token counts، اور spend دکھاتا ہے۔ Interpreter sessions ایک classic case ہیں ایسے workload کی جو چھوٹا محسوس ہو مگر درمیانہ bill کرے، اور usage view یہی بتاتا ہے کہ کون سے sessions اصل میں tokens لے گئے۔

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50

عمومی سوالات

کیا Open Interpreter ایک endpoint کے ذریعے Claude یا DeepSeek models چلا سکتا ہے؟

جی ہاں۔ api_base کو gateway پر point کرنے اور model id پر openai/ prefix لگانے سے، LiteLLM اس endpoint سے معیاری chat completions بولتا ہے اور id کو plain string کے طور پر آگے بھیج دیتا ہے۔ Claude، GPT، DeepSeek، اور GLM ids سب انہی دو settings کے ساتھ کام کرتی ہیں۔

model id کو openai/ prefix کی ضرورت کیوں ہے؟

Open Interpreter LiteLLM پر چلتا ہے، جو model string سے اپنا provider client چنتا ہے۔ openai/ prefix آپ کے api_base کی طرف اشارہ کرنے والے OpenAI-protocol client کو مجبور کرتا ہے۔ ایک bare claude-* id اس کی بجائے Anthropic کے client پر resolve ہو جاتی ہے اور آپ کے endpoint کو نظر انداز کر دیتی ہے۔

کون سا environment variable key رکھتا ہے؟

openai/ prefix استعمال ہوتے وقت، OPENAI_API_KEY روایتی انتخاب ہے، یا Python میں interpreter.llm.api_key صراحتاً سیٹ کریں، یا CLI پر --api_key pass کریں۔ key کو profiles اور scripts سے باہر رکھیں؛ environment اس کے لیے صحیح جگہ ہے۔

کیا مجھے context_window خود سیٹ کرنی ہوگی؟

custom ids کے لیے، جی ہاں۔ LiteLLM ایسے model کے لیے window infer نہیں کر سکتا جسے وہ نہیں پہچانتا، اور Open Interpreter اس عدد کے خلاف conversation history trim کرتا ہے۔ model کی اصل window declare کریں (table میں Claude ids کے لیے 200000) ورنہ لمبے sessions اپنا پہلے کا context کھو دیتے ہیں۔

کیا gateway کے ذریعے route کرنا auto-run (-y) کو محفوظ بنا دیتا ہے؟

نہیں۔ gateway model traffic لے جاتا ہے؛ generated کوڈ اب بھی آپ کی permissions کے ساتھ مقامی طور پر execute ہوتا ہے۔ Auto-run review step ہٹا دیتا ہے، تو اسے containers یا sandboxes تک محدود رکھیں، چاہے model کوئی بھی endpoint serve کرے۔

ایک interpreter session کتنے tokens استعمال کرتا ہے؟

یہ turns کے ساتھ اور loop میں کیا داخل ہوتا ہے اس کے ساتھ scale کرتا ہے: ہر round trip conversation، کوڈ، اور captured output دوبارہ بھیجتا ہے۔ چھوٹے utility tasks معمولی ہیں؛ paste کیے گئے data کے ساتھ لمبے debugging sessions تیزی سے بڑھتے ہیں۔ APIsRouter console کا per-key usage view اصل فی-session عدد دکھاتا ہے۔