Perplexica کے answer engine کو custom OpenAI base URL پر چلائیں۔

Updated 2026-07-29

Perplexica، جسے upstream نے Vane کا نام دیا، اپنا OpenAI provider ایک API Key اور ایک Base URL field کے ساتھ configure کرتا ہے۔ Base URL کو https://api.apisrouter.com/v1 پر سیٹ کریں، جو model ids چاہتے ہیں انہیں شامل کریں، اور ہر search answer gateway کے ذریعے synthesize ہوتا ہے جہاں Claude، GPT، DeepSeek، یا Gemini ایک key کے پیچھے موجود ہوں۔

فوری جواب: ایک Base URL field، دو config generations۔

موجودہ releases پر، Perplexica کا OpenAI provider بالکل دو ضروری fields expose کرتا ہے: API Key اور Base URL، setup screen اور settings UI میں editable، documented environment mappings OPENAI_API_KEY اور OPENAI_BASE_URL کے ساتھ۔ Base URL کو https://api.apisrouter.com/v1 پر سیٹ کریں، ایک gateway key paste کریں، پھر جو chat models چاہتے ہیں انہیں ان کی exact کیٹلاگ ids سے شامل کریں۔ Provider model id کو /v1/chat/completions پر plain string کے طور پر forward کرتا ہے، تو Claude اور DeepSeek ids "OpenAI" provider slot کے ذریعے کام کرتی ہیں۔ پرانی Perplexica releases پر (config.toml generation، v1.10 اور v1.11 line تک)، وہی صلاحیت CUSTOM_OPENAI provider ہے: ایک [MODELS.CUSTOM_OPENAI] block جس میں API_KEY، API_URL، اور MODEL_NAME keys ہوں۔ نیچے دونوں generations دکھائی گئی ہیں، تو سیٹ اپ کو اس version سے میچ کریں جو آپ واقعی چلا رہے ہیں۔

# the settings UI fields map to these documented env vars
export OPENAI_API_KEY=sk-APIsRouter-...
export OPENAI_BASE_URL=https://api.apisrouter.com/v1
# then add chat models by id in Settings, e.g. claude-sonnet-4-6

Perplexica ایک سوال کا جواب کیسے دیتا ہے، اور LLM کہاں بیٹھتا ہے۔

Perplexica (GitHub پر ItzCrazyKns، تقریباً 36K stars) Perplexity style میں سب سے معروف open-source answering engine ہے: یہ ایک سوال لیتا ہے، ایک bundled SearxNG instance کے ذریعے حقیقی web searches چلاتا ہے، results پڑھتا ہے، اور ایک LLM سے cited answer synthesize کرواتا ہے۔ Search modes (speed، balanced، quality) retrieval depth کو latency کے خلاف trade کرتے ہیں، اور focus modes sources کو web، discussions، یا academic papers تک محدود کرتے ہیں۔ 2026 میں project کا نام upstream Vane رکھا گیا، Docker image بھی ساتھ چلی؛ architecture اور provider system آگے آئے، تو یہاں سب کچھ دونوں ناموں کے تحت لاگو ہوتا ہے۔ LLM slot وہ جگہ ہے جہاں synthesis quality اور cost رہتے ہیں۔ ہر جواب ایک یا زیادہ chat-completions calls ہیں جو retrieved sources کو context کے طور پر لے جاتی ہیں، جو ایک answering engine کو high-input-token workload بناتا ہے: model اپنے لکھے سے کہیں زیادہ پڑھتا ہے۔ Provider system OpenAI کو کئی backends (Ollama، Anthropic، Gemini، Groq، اور دیگر) میں سے ایک کے طور پر treat کرتا ہے، اور OpenAI provider وہی ہے جس کا Base URL آزادی سے editable ہے، جو اسے gateway hook بناتا ہے۔ پہلے سے جاننے کے قابل ایک رویہ: جب Base URL stock OpenAI endpoint کے علاوہ کچھ اور ہو، Perplexica جان بوجھ کر ایک خالی default model list دکھاتا ہے اور وہی model entries استعمال کرتا ہے جو آپ provider میں خود شامل کریں۔ یہ design کا حصہ ہے، کیونکہ یہ نہیں جان سکتا کہ ایک custom endpoint کیا serve کرتا ہے۔ claude-sonnet-4-6 یا deepseek-v4-flash کو ایک model entry کے طور پر شامل کرنا سیٹ اپ کا دوسرا آدھا حصہ ہے، کوئی workaround نہیں۔

مکمل سیٹ اپ: موجودہ releases اور legacy config.toml۔

موجودہ releases app کے اندر ہر چیز configure کرتی ہیں۔ پہلی boot پر setup screen providers مانگتی ہے؛ بعد میں وہی fields Settings میں رہتی ہیں۔ OpenAI provider منتخب کریں، API Key اور Base URL سیٹ کریں، پھر ان ids کے ساتھ chat model entries شامل کریں جو آپ استعمال کرنے کا ارادہ رکھتے ہیں۔ ids کو کیٹلاگ سے بالکل میچ ہونا چاہیے، اور آپ کی شامل کردہ ہر entry search box کے ساتھ model picker میں ظاہر ہوتی ہے۔ Legacy generation file-based ہے۔ اگر آپ کی installation میں اب بھی config.toml موجود ہے، تو آپ CUSTOM_OPENAI generation پر ہیں: نیچے دیا گیا block بھریں اور container restart کریں۔ MODEL_NAME ایک model id لیتا ہے، جسے UI پھر custom OpenAI option کے طور پر پیش کرتا ہے۔

[MODELS.CUSTOM_OPENAI]
API_KEY = "sk-YOUR-APISROUTER-KEY"
API_URL = "https://api.apisrouter.com/v1"
MODEL_NAME = "claude-sonnet-4-6"

ایک answering engine کے لیے synthesis model چننا۔

چونکہ model picker وہی entries پڑھتا ہے جو آپ نے ایک Base URL کے خلاف شامل کیں، synthesis models کو A/B test کرنا آسان ہے: دو tabs میں دو entries کے ساتھ ایک ہی سوال پوچھیں اور citations compare کریں۔ per-key usage log ہر model کے جوابات کی قیمت لگاتا ہے، جو یہ فیصلہ کرنے کا ایماندار طریقہ ہے کہ آیا frontier synthesis آپ کے query mix پر اپنے tokens کماتا ہے۔

  • Input tokens حاوی ہوتے ہیں۔ ایک quality-mode جواب بڑے retrieved contexts کو prompt میں دھکیل سکتا ہے، تو آپ کی id کی فی-input-token قیمت ہی search کی قیمت طے کرتی ہے، مختصر جواب نہیں جو یہ لکھ کر واپس دیتا ہے۔
  • claude-sonnet-4-6 cited synthesis کے لیے مضبوط default ہے: یہ source-grounding instructions کو اچھی طرح follow کرتا ہے اور جب بہت سے snippets متضاد ہوں تو coherent رہتا ہے۔
  • زیادہ-volume والی personal یا team instances claude-haiku-4-5-20251001، gemini-3.5-flash، یا deepseek-v4-flash پر اچھی طرح چلتی ہیں: جوابات grounded رہتے ہیں اور فی-search cost اتنی کم ہو جاتی ہے کہ quality mode کو on رکھا جا سکے۔
  • ایک frontier id کو دوسری entry کے طور پر رکھیں۔ Model entries picker میں ساتھ ساتھ بیٹھتی ہیں، تو کسی مشکل سوال کو gpt-5.5 پر escalate کرنا ایک dropdown تبدیلی ہے، config edit نہیں۔
  • Academic focus mode long-context models کو reward کرتا ہے، کیونکہ paper abstracts اور excerpts web snippets سے بھاری ہوتے ہیں۔

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

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.5$5.00 / $30.00 per M$4.00 / $24.00 per M
Gemini 3.5 Flash$1.50 / $9.00 per M$1.20 / $7.20 per M
DeepSeek V4 Flash$0.14 / $0.28 per M$0.10 / $0.30 per M

Perplexica سے مخصوص failure modes۔

خالی model list classic والی ہے۔ آپ Base URL سیٹ کرتے ہیں، picker خالی ہو جاتا ہے، اور ایسا لگتا ہے جیسے کچھ ٹوٹ گیا۔ ایسا نہیں ہے: non-default Base URL کے ساتھ، Perplexica صرف وہی model entries لسٹ کرتا ہے جو آپ provider میں شامل کریں۔ اپنی ids شامل کریں اور وہ ظاہر ہو جاتی ہیں۔ Embeddings ایک الگ slot ہیں۔ Perplexica result reranking کے لیے embedding models استعمال کرتا ہے، اور OpenAI provider اسی Base URL اور key سے embeddings serve کرتا ہے۔ اگر آپ کا gateway وہاں configure کی گئی embedding id serve نہ کرے، تو reranking ٹوٹ جاتا ہے جبکہ chat جوابات کام کرتے رہتے ہیں۔ صاف تقسیم یہ ہے کہ embeddings کو local Transformers provider پر رکھیں، جو مشین پر بغیر کسی API کے چلتا ہے، اور صرف chat synthesis کو gateway کے ذریعے route کریں۔ نام کی تبدیلی guides کو الجھا دیتی ہے۔ Perplexica اور Vane ایک ہی project ہیں؛ پرانے tutorials perplexica Docker image اور config.toml کا حوالہ دیتے ہیں، موجودہ builds vane کے طور پر in-app settings اور ایک persistent data volume کے ساتھ ship ہوتی ہیں۔ اگر آپ کی installation میں کوئی config.toml نہیں، تو ایک نہ بنائیں، یہ پڑھی نہیں جاتی؛ اس کی بجائے UI یا documented env vars کے ذریعے configure کریں۔ SearxNG خودمختار ہے۔ اگر جوابات خراب ہوں یا searches کچھ نہ لوٹائیں، تو یہ SearxNG container یا اس کی JSON-format setting ہے، LLM endpoint نہیں۔ Base URL صرف chat اور embedding calls کو move کرتا ہے۔

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

  • وہ self-hosters جو Perplexity subscription کی جگہ لیتے ہیں اور فی search token قیمتوں پر frontier-quality synthesis چاہتے ہیں، فی model family vendor account کی بجائے ایک key کے ساتھ۔
  • وہ teams جو ایک shared answering engine چلاتی ہیں، جہاں per-key usage log "search کی قیمت کیا ہے" کو فی model ایک عدد میں بدل دیتا ہے۔
  • Privacy-focused setups جو retrieval کو مکمل طور پر local رکھتی ہیں (SearxNG جمع local embeddings) اور صرف final synthesis call کو ایک auditable endpoint کے ذریعے باہر بھیجتی ہیں۔
  • وہ tinkerers جو ایک جیسے سوالات پر synthesis models compare کرتے ہیں: ہر candidate ایک ہی Base URL کے خلاف ایک model entry ہے۔
  • وہ developers جن کے پاس کسی مخصوص vendor کی billing تک رسائی نہیں۔ Top-up پر مبنی رسائی بغیر کارڈ کی شرط کے فی-provider sign-up کا انحصار ختم کر دیتی ہے۔

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

App کو الزام دینے سے پہلے تصدیق کریں کہ gateway آپ کی شامل کردہ ids serve کرتا ہے؛ provider میں entries کو /v1/models output سے بالکل میچ ہونا چاہیے۔ پہلی-run کی failures ایک pattern کی پیروی کرتی ہیں۔ "No chat model providers configured" کا مطلب ہے provider fields save نہیں ہوئیں یا model list اب بھی خالی ہے؛ کم از کم ایک chat model entry شامل کریں۔ server logs میں 401 کا مطلب ہے key Base URL field والے endpoint سے میچ نہیں کرتی۔ ایک model-not-found error ایک model entry میں id typo ہے۔ کام کرنے والے جوابات کے ساتھ reranking errors embedding slot کی طرف اشارہ کرتی ہیں، جہاں local Transformers provider آپ کو بچاتا ہے۔ اور اگر environment variables edit کرنے کے بعد کچھ نہیں بدلا، تو یاد رکھیں config data volume میں برقرار رہتا ہے؛ UI میں پہلے سے save شدہ fields بعد کی env تبدیلی پر حاوی ہوتی ہیں، تو انہیں Settings میں edit کریں۔ جب searches چلنے لگیں، APIsRouter console per-request model، token counts، اور spend دکھاتا ہے۔ Answering engines input-heavy ہیں، اور آپ کے query mix کے لیے حقیقی tokens-per-search number دیکھنا کسی بھی اندازے سے بہتر ہے۔

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

عمومی سوالات

کیا Perplexica اور Vane ایک ہی project ہیں؟

جی ہاں۔ Upstream repository کا نام 2026 میں Vane رکھا گیا، اور Docker image نے پیروی کی۔ یہاں بیان کردہ provider system، SearxNG integration، اور Base URL field دونوں ناموں کے تحت یکساں ہیں؛ صرف legacy releases اب بھی Perplexica نام اور config.toml استعمال کرتی ہیں۔

کیا Perplexica جوابات کے لیے Claude یا DeepSeek models استعمال کر سکتا ہے؟

جی ہاں۔ OpenAI provider model ids کو آپ کے سیٹ کردہ کسی بھی Base URL کی طرف plain strings کے طور پر forward کرتا ہے۔ claude-sonnet-4-6 یا deepseek-v4-flash کو gateway Base URL کے خلاف model entries کے طور پر شامل کریں اور وہ کسی بھی دوسرے option کی طرح model picker میں ظاہر ہو جاتی ہیں۔

Base URL بدلنے کے بعد model list خالی کیوں ہے؟

یہ design کے مطابق ہے۔ non-default Base URL کے ساتھ، Perplexica یہ فرض نہیں کر سکتا کہ endpoint کون سی models serve کرتا ہے، تو یہ صرف وہی entries لسٹ کرتا ہے جو آپ خود provider میں شامل کریں۔ Settings میں اپنی ids شامل کریں اور وہ فوراً ظاہر ہو جاتی ہیں۔

Legacy CUSTOM_OPENAI config keys کیا ہیں؟

config.toml generation پر (v1.10 اور v1.11 line تک)، [MODELS.CUSTOM_OPENAI] block API_KEY، API_URL، اور MODEL_NAME لیتا ہے۔ API_URL کو /v1 سمیت gateway endpoint پر سیٹ کریں اور MODEL_NAME کو ایک کیٹلاگ id پر، پھر restart کریں۔

کیا embeddings بھی custom Base URL کے ذریعے route ہوتی ہیں؟

اگر آپ OpenAI provider پر embedding models configure کریں، تو جی ہاں، وہ وہی Base URL اور key استعمال کرتی ہیں۔ زیادہ تر gateway setups embeddings کو local Transformers provider پر رکھتے ہیں، جسے کسی API کی ضرورت نہیں اور reranking کو chat endpoint سے خودمختار رکھتا ہے۔

کیا OPENAI_API_KEY اور OPENAI_BASE_URL environment variables اب بھی کام کرتے ہیں؟

جی ہاں، وہ موجودہ releases پر OpenAI provider کے دونوں fields کے documented env mappings ہیں۔ نوٹ کریں کہ settings UI کے ذریعے پہلے سے save کی گئی values data volume میں برقرار رہتی ہیں، تو اگر app ایک بار configure ہو چکی ہو تو وہیں edit کریں۔