اپنے Khoj second brain کو custom OpenAI base URL پر چلائیں۔

Updated 2026-07-29

Khoj دو surfaces کے ساتھ OpenAI-proxy سیٹ اپ documented رکھتا ہے: ایک OPENAI_BASE_URL environment variable جو پہلی run پر models seed کرتی ہے، اور admin panel میں Api Base Url field والی ایک AI Model API entry۔ کسی ایک کو https://api.apisrouter.com/v1 پر point کریں اور chat، agents، اور automations کسی بھی کیٹلاگ model پر چلتی ہیں۔

فوری جواب: پہلی run پر env var، کسی بھی وقت admin panel۔

Khoj کی self-hosting compose file میں ایک commented OPENAI_BASE_URL line ہے جو، اس کے اپنے الفاظ میں، دوسرے OpenAI API compatible providers کے لیے ہے۔ پہلی startup سے پہلے اسے https://api.apisrouter.com/v1 پر سیٹ کریں جہاں OPENAI_API_KEY میں ایک gateway key ہو، اور Khoj کی initialization ایک غیر معمولی مددگار کام کرتی ہے: یہ endpoint کی model list query کرتی ہے اور اپنی chat-model table کو endpoint سے serve ہونے والی ہر id کے ساتھ seed کرتی ہے، تو کیٹلاگ بغیر manual entry کے Khoj کے model picker میں نظر آ جاتا ہے۔ پہلے سے initialized server پر، اس کی بجائے admin panel استعمال کریں۔ ایک AI Model API entry بنائیں (fields: Name، Api Key، Api Base Url) جو gateway کی طرف اشارہ کرے، پھر Chat Model entries بنائیں جن کا Name بالکل exact model id ہو، Model Type کو Openai پر سیٹ کریں اور اسے اس AI Model API سے link کریں۔ دونوں surfaces docs.khoj.dev پر Khoj کے OpenAI-proxy guide میں documented ہیں۔

services:
  server:
    environment:
      - OPENAI_BASE_URL=https://api.apisrouter.com/v1
      - OPENAI_API_KEY=sk-YOUR-APISROUTER-KEY

Khoj اپنے chat model کے ساتھ کیا کرتا ہے۔

Khoj (GitHub پر khoj-ai، تقریباً 36K stars) ایک self-hostable AI second brain ہے: یہ آپ کے notes اور documents (markdown، org-mode، PDFs، اور مزید) index کرتا ہے، پھر آپ کو ان پر chat کرنے دیتا ہے، اپنی persona اور tools والے custom agents چلاتا ہے، cron پر چلنے والی automations schedule کرتا ہے، اور multi-step research runs لانچ کرتا ہے۔ ایک hosted app بھی موجود ہے، مگر custom endpoints self-hosted server پر لاگو ہوتے ہیں، اور یہی deployment ہے جو یہ page بیان کرتا ہے۔ ان تمام features میں سے ہر ایک آپ کے منتخب کردہ chat model سے گزرتا ہے۔ Document chat retrieved note chunks کو prompt میں پیک کرتا ہے، agents tool calls اور persona instructions شامل کرتے ہیں، automations وہی pipeline بغیر نگرانی کے چلاتی ہیں، اور research mode ایک سوال پر بہت سی model calls chain کرتا ہے۔ Model Type Openai Khoj کو linked AI Model API entry کے Api Base Url سے /v1/chat/completions بولنے کو کہتا ہے، model Name کو plain string کے طور پر forward کرتے ہوئے، یہی وجہ ہے کہ ایک Claude یا DeepSeek id وہاں کام کرتی ہے جب تک endpoint اسے serve کرے۔ Search embeddings ایک الگ subsystem ہیں۔ Khoj default طور پر آپ کے documents کو ایک local sentence-transformers model سے embed کرتا ہے، تو indexing اور semantic search آپ chat endpoint کے ساتھ جو بھی کریں اس سے قطع نظر کام کرتے رہتے ہیں۔ Chat کو gateway کے ذریعے route کرنا صرف reasoning کا bill move کرتا ہے۔

مکمل سیٹ اپ: قدم بہ قدم admin panel entries۔

چلتے ہوئے server پر، پوری integration تین admin screens ہیں۔ پہلے، AI Model API شامل کریں: /server/admin/database/aimodelapi/add کھولیں، اسے نام دیں، gateway key کو Api Key میں paste کریں، اور Api Base Url کو https://api.apisrouter.com/v1 پر سیٹ کریں۔ دوسرا، chat models شامل کریں: /server/admin/database/chatmodel/add پر، Name کو ایک exact کیٹلاگ id پر سیٹ کریں (claude-sonnet-4-6، deepseek-v4-flash)، Model Type کو Openai پر سیٹ کریں، ابھی بنائی گئی Ai Model Api entry کو link کریں، اور Max prompt size کو ایسی value پر سیٹ کریں جو model کی context window میں fit ہو۔ docs مشورہ دیتے ہیں کہ OpenAI-type models کے لیے Tokenizer کو unset چھوڑ دیں۔ ہر model کے لیے دہرائیں جسے آپ picker میں چاہتے ہیں۔ تیسرا، model select کریں: /settings پر، اپنی نئی chat model کو workspace کے default کے طور پر چنیں۔ Agents فی agent model کو override کر سکتے ہیں، یہی وجہ ہے کہ ایک Khoj instance روزانہ automations کے لیے ایک تیز id اور research کے لیے ایک frontier id چلا سکتا ہے۔

1) /server/admin/database/aimodelapi/add
   Name:         APIsRouter
   Api Key:      sk-YOUR-APISROUTER-KEY
   Api Base Url: https://api.apisrouter.com/v1

2) /server/admin/database/chatmodel/add
   Name:         claude-sonnet-4-6   (exact catalog id)
   Model Type:   Openai
   Ai Model Api: APIsRouter
   Max prompt size: 100000

3) /settings -> select the new chat model

Second brain کے لیے models چننا۔

چونکہ chat models ایک AI Model API کے خلاف آپ کے شامل کردہ rows ہیں، picker میں دو یا تین ids رکھنا کچھ خرچ نہیں کرتا۔ عملی سیٹ اپ ایک تیز default جمع ایک frontier escalation ہے، دونوں ایک ہی key سے bill شدہ تاکہ usage log دکھائے کہ ہر tier آپ کے notes پر واقعی کیا لاگت رکھتا ہے۔

  • Document chat input-heavy ہے: retrieved note chunks جواب سے کہیں بڑے ہوتے ہیں۔ فی-input-token قیمت فی-سوال cost کو چلاتی ہے، جو روزمرہ یاد کے لیے claude-haiku-4-5-20251001، deepseek-v4-flash، یا gemini-3.5-flash کو ترجیح دیتی ہے۔
  • Research mode calls کو ضرب دیتا ہے۔ ایک research سوال بہت سی model turns chain کر سکتا ہے، تو وہاں assign کی گئی id کسی اور setting سے زیادہ bill move کرتی ہے؛ claude-sonnet-4-6 balanced pick ہے، gpt-5.4 escalation۔
  • Scheduled automations بغیر نگرانی کے چلتی ہیں۔ انہیں subscription کی طرح قیمت لگائیں: فی دن calls ضرب فی call tokens، جو بالکل وہی ہے جو per-key usage log رپورٹ کرتا ہے۔
  • Personal knowledge تضاد سے بھرپور ہوتا ہے (plans بدلتے ہیں، notes پرانے ہو جاتے ہیں)، اور models اس میں مختلف ہوتی ہیں کہ وہ متضاد notes کو flag کتنی اچھی طرح کرتی ہیں بجائے انہیں mix کرنے کے؛ commit کرنے سے پہلے ایک ہی question set پر دو ids ٹیسٹ کریں۔
  • Max prompt size فی chat model Khoj میں ہے، تو ایک long-context id تب ہی فائدہ دیتی ہے جب آپ اس field کو اس کے مطابق بڑھائیں۔

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

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
Claude Haiku 4.5 20251001$1.00 / $5.00 per M$0.80 / $4.00 per M
GPT-5.4$2.50 / $15.00 per M$2.00 / $12.00 per M
DeepSeek V4 Flash$0.14 / $0.28 per M$0.10 / $0.30 per M
Gemini 3.5 Flash$1.50 / $9.00 per M$1.20 / $7.20 per M

Khoj سے مخصوص failure modes۔

Env var ایک first-run seed ہے، live setting نہیں۔ OPENAI_BASE_URL initialization کے دوران پڑھی جاتی ہے تاکہ provider entry بنائے اور models discover کرے؛ ایسے server پر جو پہلے سے initialize ہو چکا ہے، compose file edit کرنا کچھ نظر آنے والا نہیں بدلتا۔ پہلی boot کے بعد کی تبدیلیوں کے لیے admin panel استعمال کریں، یا اگر آپ واقعی fresh seed چاہتے ہیں تو database reset کریں۔ Placeholder-key trap: جب OPENAI_BASE_URL بغیر OPENAI_API_KEY کے سیٹ ہو، تو Khoj key کو ایک placeholder سے بھر دیتا ہے تاکہ Ollama جیسے local servers کام کریں۔ ایک gateway کو حقیقی key چاہیے، تو اگر first-run seeding بغیر key کے ہوئی، تو chats authentication errors سے فیل ہوتی ہیں جب تک آپ key کو admin panel میں AI Model API entry میں paste نہ کریں۔ Auto-discovery سب کچھ seed کرتی ہے۔ چونکہ initialization endpoint کی ہر serve کی گئی model list کرتی ہے، ایک multi-vendor gateway ایک لمبی model table seed کر سکتا ہے۔ نقصان دہ نہیں، مگر admin panel میں prune کرنے کے قابل تاکہ picker قابلِ استعمال رہے۔ Chat model Name exact ہوتا ہے۔ Khoj اسے جوں کا توں forward کرتا ہے؛ ایک typo پہلے message پر model-not-found کے طور پر سامنے آتی ہے، اور gateway کا /v1/models output ہی authoritative spelling ہے۔ اور اگر آپ کے notes پر semantic search بدسلوکی کرے، تو یہ local embedding subsystem ہے، chat endpoint سے غیر متعلق۔

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

  • وہ self-hosters جو اپنے notes پر frontier-model chat چاہتے ہیں فی model family vendor account رکھے بغیر؛ ایک key Claude، GPT، DeepSeek، اور Gemini ids کور کرتی ہے۔
  • وہ users جو روزانہ scheduled automations چلاتے ہیں، جہاں ایک تیز id recurring cost کو flat رکھتی ہے اور usage log اسے دکھائی دیتا بناتا ہے۔
  • Privacy-minded setups جو indexing اور embeddings local رکھتی ہیں اور صرف chat prompts کو ایک auditable endpoint تک expose کرتی ہیں۔
  • وہ tinkerers جو ایک جیسے personal corpus پر chat models compare کرتے ہیں: ہر candidate ایک ہی AI Model API کے خلاف ایک chat-model row ہے۔
  • وہ developers جن کے پاس کسی مخصوص vendor کی billing تک رسائی نہیں۔ Top-up پر مبنی رسائی بغیر کارڈ کی شرط کے فی-provider sign-up کا انحصار ختم کر دیتی ہے۔

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

پہلے gateway چیک کریں: اپنی key سے models list کریں اور تصدیق کریں کہ آپ جن ids کو register کرنے کا ارادہ رکھتے ہیں وہ موجود ہیں۔ Khoj کی اپنی auto-discovery first-run seeding کے دوران وہی call کرتی ہے، تو اگر یہ curl کام کرتا ہے، seeding بھی کرے گی۔ Failures صاف localize ہوتی ہیں۔ Authentication errors کا مطلب ہے AI Model API entry پر Api Key غلط ہے یا اب بھی seeded placeholder ہے۔ Model-not-found کا مطلب ہے chat model Name کیٹلاگ کی spelling سے میچ نہیں کرتا۔ جوابات جو درمیان میں کٹ جائیں عموماً Max prompt size یا model کی output ceiling کے conversation کے لیے بہت کم set ہونے کا مطلب رکھتے ہیں۔ Indexing اور search کے مسائل local embedding pipeline ہیں اور endpoint سے کچھ لینا دینا نہیں رکھتے۔ جب chats چلنے لگیں، APIsRouter console per-request model، token counts، اور spend دکھاتا ہے۔ Automations اور research runs وہ جگہ ہیں جہاں second-brain costs چھپتی ہیں، اور per-key usage یہی ہے کہ آپ انہیں فی feature دیکھتے ہیں نہ کہ ایک ماہانہ حیرت کے طور پر۔

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

عمومی سوالات

کیا Khoj OpenAI-compatible proxy یا gateway کو سپورٹ کرتا ہے؟

جی ہاں، ایک documented سیٹ اپ کے طور پر: ایک AI Model API entry بنائیں جس کا Api Base Url endpoint کی طرف اشارہ کرے، پھر Model Type Openai کے ساتھ chat models شامل کریں۔ compose file first-run seeding کے لیے OPENAI_BASE_URL بھی expose کرتی ہے۔

کیا Khoj اس کے ذریعے Claude یا DeepSeek models سے chat کر سکتا ہے؟

جی ہاں۔ Model Type Openai chat model Name کو /v1/chat/completions پر Api Base Url کی طرف plain string کے طور پر forward کرتا ہے۔ gateway جو بھی id serve کرے وہ چلتی ہے، بشمول Claude، DeepSeek، GLM، اور Gemini ids۔

docker-compose میں OPENAI_BASE_URL بدلنے سے کچھ کیوں نہیں ہوا؟

یہ variable صرف first-run initialization کے دوران providers اور models seed کرتی ہے۔ initialized server پر، اس کی بجائے admin panel میں AI Model API entry edit کریں؛ وہی live setting ہے۔

کیا custom base URL Khoj کی document search کو متاثر کرتا ہے؟

نہیں۔ Khoj default طور پر آپ کے documents کو ایک local sentence-transformers model سے embed اور search کرتا ہے۔ AI Model API entry صرف chat، agents، automations، اور research کو move کرتی ہے۔

chat model entry پر Max prompt size کیا ہے؟

ایک فی-model cap اس بات پر کہ Khoj ایک request میں کتنا prompt پیک کرے۔ اسے model کی context window کے مطابق سیٹ کریں؛ بہت کم retrieved notes کو truncate کرتا ہے، اور ایک long-context id تب ہی مدد دیتی ہے جب یہ field اس کے مطابق بڑھایا جائے۔

کیا یہ hosted Khoj app پر لاگو ہوتا ہے؟

نہیں، custom endpoints ایک self-hosting feature ہیں۔ hosted app اپنی models server-side خود manage کرتا ہے؛ یہاں بیان کردہ admin-panel اور environment surfaces آپ کے چلائے گئے server سے تعلق رکھتی ہیں۔