Perplexica-এর answer engine একটা কাস্টম OpenAI base URL-এ চালান।

Updated 2026-07-29

Perplexica, upstream Vane নামে renamed, এর OpenAI provider একটা API Key এবং একটা Base URL field দিয়ে configure করে। Base URL-কে https://api.apisrouter.com/v1-এ সেট করুন, চাওয়া model id যোগ করুন, এবং প্রতিটা search উত্তর gateway দিয়ে synthesize হয় এক key-এর পেছনে Claude, GPT, DeepSeek, বা Gemini সহ।

দ্রুত উত্তর: এক Base URL field, দুই config প্রজন্ম।

Current release-এ, Perplexica-এর OpenAI provider ঠিক দুটো required field expose করে: API Key এবং Base URL, setup screen এবং settings UI-তে editable, documented environment mapping OPENAI_API_KEY এবং OPENAI_BASE_URL সহ। Base URL-কে https://api.apisrouter.com/v1-এ সেট করুন, একটা gateway key paste করুন, তারপর চাওয়া chat model exact catalog id দিয়ে যোগ করুন। provider model id-কে /v1/chat/completions-এর মধ্য দিয়ে একটা plain string হিসেবে forward করে, তাই Claude এবং DeepSeek id "OpenAI" provider slot দিয়ে কাজ করে। পুরনো Perplexica release-এ (config.toml প্রজন্ম, v1.10 এবং v1.11 line পর্যন্ত), একই capability হলো CUSTOM_OPENAI provider: API_KEY, API_URL, এবং MODEL_NAME key সহ একটা [MODELS.CUSTOM_OPENAI] block। দুটো প্রজন্মই নিচে দেখানো হয়েছে, তাই আপনি আসলে যে version চালাচ্ছেন তার সাথে setup মেলান।

# 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 star) হলো Perplexity-style-এ সবচেয়ে পরিচিত open-source answering engine: এটা একটা প্রশ্ন নেয়, একটা bundled SearxNG instance দিয়ে real web search চালায়, result পড়ে, এবং একটা LLM দিয়ে একটা cited উত্তর synthesize করে। Search mode (speed, balanced, quality) latency-র বিরুদ্ধে retrieval depth trade করে এবং focus mode source-কে web, discussion, বা academic paper-এ narrow করে। 2026-এ project upstream-এ Vane নামে renamed হয়েছে, Docker image সহ; architecture এবং provider system বহাল আছে, তাই এখানকার সবকিছু দুটো নামের নিচেই প্রযোজ্য। LLM slot-ই যেখানে synthesis quality এবং cost বাস করে। প্রতিটা উত্তর এক বা একাধিক chat-completions call যা retrieved source context হিসেবে বহন করে, যা একটা answering engine-কে একটা high-input-token workload বানায়: model যা লেখে তার চেয়ে অনেক বেশি পড়ে। Provider system OpenAI-কে বেশ কয়েকটা backend-এর একটা (Ollama, Anthropic, Gemini, Groq, এবং আরো) হিসেবে treat করে, এবং OpenAI provider-ই যার একটা অবাধে editable Base URL আছে, যা এটাকে gateway hook বানায়। আগে থেকে জানার একটা behavior: Base URL stock OpenAI endpoint ছাড়া অন্য কিছু হলে, Perplexica ইচ্ছাকৃতভাবে একটা খালি default model list দেখায় এবং আপনার নিজে provider-এ যোগ করা model entry ব্যবহার করে। এটা design অনুযায়ী, যেহেতু এটা জানতে পারে না একটা কাস্টম endpoint কী serve করে। claude-sonnet-4-6 বা deepseek-v4-flash-কে একটা model entry হিসেবে যোগ করা setup-এর দ্বিতীয় অর্ধেক, workaround না।

সম্পূর্ণ সেটআপ: current release এবং legacy config.toml।

Current release সবকিছু app-এর ভেতরে configure করে। প্রথম boot-এ setup screen provider জিজ্ঞাসা করে; পরে একই field Settings-এ বাস করে। OpenAI provider বেছে নিন, API Key এবং Base URL সেট করুন, তারপর ব্যবহার করতে চাওয়া id দিয়ে chat model entry যোগ করুন। id অবশ্যই gateway catalog-এর সাথে exactly মিলতে হবে, এবং যোগ করা প্রতিটা entry search box-এর পাশে model picker-এ দেখা যায়। Legacy প্রজন্ম file-based। যদি আপনার installation-এ এখনো একটা config.toml থাকে, আপনি CUSTOM_OPENAI প্রজন্মে আছেন: নিচের 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 এক Base URL-এর বিরুদ্ধে আপনার যোগ করা যেকোনো entry পড়ে, synthesis model A/B test করা trivial: দুই tab-এ দুটো entry দিয়ে একই প্রশ্ন জিজ্ঞাসা করুন এবং citation তুলনা করুন। Per-key usage log প্রতিটা model-এর উত্তর price করে, যা আপনার প্রশ্ন mix-এ frontier synthesis তার token-এর যোগ্য কিনা তা সিদ্ধান্ত নেওয়ার honest উপায়।

  • Input token প্রাধান্য পায়। একটা quality-mode উত্তর prompt-এ বড় retrieved context ঢুকিয়ে দিতে পারে, তাই আপনার id-র per-input-token price একটা search-এর cost ঠিক করে, এটা যে ছোট উত্তর ফিরিয়ে লেখে তা না।
  • Claude-sonnet-4-6 cited synthesis-এর জন্য একটা শক্তিশালী default: source-grounding instruction ভালোভাবে follow করে এবং অনেক snippet disagree করলেও coherent থাকে।
  • High-volume personal বা team instance claude-haiku-4-5-20251001, gemini-3.5-flash, বা deepseek-v4-flash-এ ভালো চলে: উত্তর grounded থাকে এবং per-search cost quality mode চালু রাখার মতো কমে যায়।
  • একটা frontier id-কে দ্বিতীয় entry হিসেবে রাখুন। Model entry picker-এ পাশাপাশি বসে, তাই একটা কঠিন প্রশ্নকে gpt-5.5-এ escalate করা একটা dropdown change, config edit না।
  • Academic focus mode long-context model-কে reward করে, যেহেতু paper abstract এবং excerpt web snippet-এর চেয়ে bulkier।

ব্যবহার অনুযায়ী পেমেন্ট · অফিশিয়াল মূল্যের নিচে

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-specific failure mode।

খালি model list-ই classic একটা। আপনি Base URL সেট করেন, picker খালি হয়ে যায়, এবং এটা ভাঙা মনে হয়। এটা না: একটা non-default Base URL দিয়ে, Perplexica শুধু provider-এ আপনার যোগ করা model entry-ই list করে। আপনার id যোগ করুন এবং সেগুলো দেখা যাবে। Embedding একটা আলাদা slot। Perplexica result reranking-এর জন্য embedding model ব্যবহার করে, এবং OpenAI provider একই Base URL এবং key থেকে embedding serve করে। আপনার gateway সেখানে configure করা embedding id serve না করলে, reranking ভেঙে যায় যখন chat উত্তর কাজ করতে থাকে। পরিষ্কার split হলো embedding-কে local Transformers provider-এ রাখা, যা কোনো API ছাড়াই machine-এ চলে, এবং শুধু chat synthesis gateway দিয়ে route করা। Rename guide-কে ধাক্কা দেয়। Perplexica এবং Vane একই project; পুরনো tutorial perplexica Docker image এবং config.toml reference করে, current build vane হিসেবে in-app setting এবং একটা persistent data volume সহ ship করে। আপনার installation-এ কোনো config.toml না থাকলে, একটা তৈরি করবেন না, এটা পড়া হয় না; এর বদলে UI বা documented env var দিয়ে configure করুন। SearxNG independent। যদি উত্তর degrade করে বা search কিছুই না ফেরায়, সেটা SearxNG container বা এর JSON-format setting, LLM endpoint না। Base URL শুধু chat এবং embedding call move করে।

কারা একটা gateway দিয়ে Perplexica route করে।

  • Self-hoster যারা একটা Perplexity subscription replace করছে এবং token price-এ প্রতি search frontier-quality synthesis চান, প্রতি model family-তে একটা vendor account-এর বদলে এক key দিয়ে।
  • Team যারা একটা shared answering engine চালায়, যেখানে per-key usage log "search আমাদের কত খরচ করায়" প্রশ্নকে প্রতি model একটা সংখ্যায় পরিণত করে।
  • Privacy-focused setup যা retrieval সম্পূর্ণভাবে local রাখে (SearxNG প্লাস local embedding) এবং শুধু final synthesis call একটা auditable endpoint দিয়ে বাইরে পাঠায়।
  • Tinkerer যারা identical প্রশ্নে synthesis model তুলনা করছে: প্রতিটা candidate একই Base URL-এর বিরুদ্ধে একটা model entry।
  • Developer যাদের কোনো নির্দিষ্ট vendor-এর billing-এ access নেই। কোনো card requirement ছাড়া Top-up based access per-provider sign-up dependency সরিয়ে দেয়।

Endpoint verify করুন এবং প্রথম search debug করুন।

App-কে দোষারোপ করার আগে confirm করুন gateway আপনার যোগ করা id serve করে; provider-এর entry অবশ্যই /v1/models output-এর সাথে exactly মিলতে হবে। First-run failure একটা pattern অনুসরণ করে। "No chat model providers configured" মানে provider field save হয়নি বা model list এখনো খালি; কমপক্ষে একটা chat model entry যোগ করুন। Server log-এ একটা 401 মানে key Base URL field-এর endpoint-এর সাথে মেলে না। একটা model-not-found error একটা model entry-তে একটা id typo। কাজ করা উত্তর সহ Reranking error embedding slot-এর দিকে ইঙ্গিত করে, যেখানে local Transformers provider আপনাকে বাঁচায়। এবং environment variable edit করার পরেও কিছু না পাল্টালে, মনে রাখবেন config data volume-এ persist করে; UI-তে already saved field পরের env change-এর উপর জেতে, তাই Settings-এ সেগুলো edit করুন। একবার search চললে, APIsRouter console per-request model, token count, এবং spend দেখায়। Answering engine input-heavy, এবং আপনার প্রশ্ন mix-এর real tokens-per-search সংখ্যা দেখা যেকোনো estimate-এর চেয়ে ভালো।

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

সাধারণ প্রশ্ন

Perplexica কি Vane-এর মতোই project?

হ্যাঁ। Upstream repository 2026-এ Vane নামে renamed হয়েছে, এবং Docker image সেই অনুসরণ করেছে। Provider system, SearxNG integration, এবং এখানে বর্ণিত Base URL field দুটো নামের নিচেই একই; শুধু legacy release এখনো Perplexica নাম এবং config.toml ব্যবহার করে।

Perplexica কি উত্তরের জন্য Claude বা DeepSeek model ব্যবহার করতে পারে?

হ্যাঁ। OpenAI provider model id-কে আপনার সেট করা যেকোনো Base URL-এ একটা plain string হিসেবে forward করে। gateway Base URL-এর বিরুদ্ধে claude-sonnet-4-6 বা deepseek-v4-flash-কে model entry হিসেবে যোগ করুন এবং সেগুলো অন্য যেকোনো option-এর মতো model picker-এ দেখা যাবে।

Base URL পাল্টানোর পরে model list কেন খালি?

Design অনুযায়ী। একটা non-default Base URL দিয়ে, Perplexica ধরে নিতে পারে না endpoint কোন model serve করে, তাই এটা শুধু আপনার নিজে provider-এ যোগ করা entry-ই list করে। Settings-এ আপনার id যোগ করুন এবং সেগুলো সাথে সাথে দেখা যাবে।

Legacy CUSTOM_OPENAI config key কী?

config.toml প্রজন্মে (v1.10 এবং v1.11 line পর্যন্ত), [MODELS.CUSTOM_OPENAI] block API_KEY, API_URL, এবং MODEL_NAME নেয়। API_URL-কে /v1 সহ gateway endpoint-এ এবং MODEL_NAME-কে একটা catalog id-তে সেট করুন, তারপর restart করুন।

Embedding-ও কি কাস্টম Base URL দিয়ে route হয়?

যদি OpenAI provider-এ embedding model configure করেন, হ্যাঁ, সেগুলো একই Base URL এবং key ব্যবহার করে। বেশিরভাগ gateway setup এর বদলে local Transformers provider-এ embedding রাখে, যার কোনো API দরকার হয় না এবং reranking-কে chat endpoint থেকে independent রাখে।

OPENAI_API_KEY এবং OPENAI_BASE_URL environment variable কি এখনো কাজ করে?

হ্যাঁ, current release-এ OpenAI provider-এর দুটো field-এর জন্য এগুলোই documented env mapping। মনে রাখুন settings UI দিয়ে already saved value data volume-এ persist করে, তাই app আগে একবার configured হয়ে থাকলে সেখানেই edit করুন।