Onyx-কে একটা কাস্টম OpenAI-compatible LLM provider-এ চালান।
Updated 2026-07-29
Onyx তার admin panel-এ একটা Add Custom LLM Provider flow শিপ করে: Provider Name-কে openai সেট করুন, Base URL-কে https://api.apisrouter.com/v1-এ point করুন, আপনার model id যোগ করুন, এবং workspace chat ও assistant gateway দিয়ে উত্তর দেয় প্রতিটা catalog model এক key-এর পেছনে নিয়ে।
দ্রুত উত্তর: admin panel-এ Add Custom LLM Provider।
Onyx-এর documentation explicit যে একটা কাস্টম provider ততক্ষণ কাজ করে যতক্ষণ এটা OpenAI-compatible endpoint expose করে, এবং এর example Base URL shape ঠিক একটা gateway-style https://yourprovider.com/v1। Flow: আপনার profile icon থেকে Admin Panel খুলুন, Configuration-এ যান, তারপর Language Models, এবং Add Custom LLM Provider বেছে নিন। সেই form-এ চারটা decision গুরুত্বপূর্ণ। Display Name cosmetic। Provider Name অবশ্যই একটা LiteLLM provider key-র সাথে মিলতে হবে, কারণ Onyx ভেতরে LiteLLM দিয়ে model call route করে; একটা OpenAI-compatible gateway-এর জন্য সেটা openai। Base URL হলো /v1 suffix সহ gateway endpoint। এবং Model Configurations section-ই যেখানে আপনি প্রতিটা model id register করেন যা available চান, catalog যেভাবে serve করে ঠিক সেভাবে spelled। Save করুন, একটা default বেছে নিন, এবং chat সাথে সাথে gateway দিয়ে route হবে।
Admin Panel -> Configuration -> Language Models
-> Add Custom LLM Provider
Display Name: APIsRouter
Provider Name: openai (LiteLLM provider key)
Base URL: https://api.apisrouter.com/v1
API Key: sk-YOUR-APISROUTER-KEY
Model Configurations:
claude-sonnet-4-6
claude-haiku-4-5-20251001
deepseek-v4-proOnyx-এর architecture-এ LLM কোথায় বসে।
Onyx (GitHub-এ onyx-dot-app, প্রায় 31K star, আগে Danswer) হলো company knowledge-এর জন্য একটা open-source AI platform: এটা Slack, Google Drive, Confluence, এবং আরো ডজন-খানেক connector-এর মতো source index করে, তারপর একটা chat UI, assistant, এবং agent workflow দিয়ে তাদের উপর প্রশ্নের উত্তর দেয়। এটা সবচেয়ে বেশি deployed self-hosted enterprise search stack-এর একটা, যে কারণেই এর LLM bill একটা default-এর বদলে একটা routing decision-এর যোগ্য। Pipeline পরিষ্কারভাবে দুই ভাগে split হয়। Indexing এবং retrieval, document embedding এবং reranking সহ, Onyx-এর নিজস্ব model server-এ default local model দিয়ে চলে; এর কিছুই আপনার LLM provider touch করে না। Answer generation বাকি অর্ধেক: retrieval relevant passage assemble করার পরে, একটা LLM সেগুলো পড়ে এবং grounded response লেখে, এবং সেই call LiteLLM দিয়ে admin যে provider configure করেছেন সেখানে যায়। কাস্টম provider flow ঠিক এই অর্ধেকের destination swap করে। যেহেতু LiteLLM একটা openai-type provider-কে model id প্লেইন string হিসেবে forward করে, Model Configurations-এ যা register করেন সেটা Base URL-এর পেছনের endpoint যা-ই serve করুক তাই হতে পারে: careful grounded উত্তরের জন্য Claude, volume-এর জন্য DeepSeek, খুব লম্বা source context-এর জন্য Gemini। ভিন্ন assistant ভিন্ন model default করতে পারে, তাই একটা support assistant এবং একটা engineering assistant একই provider entry দিয়ে ভিন্ন price point চড়তে পারে।
সম্পূর্ণ সেটআপ, এবং যা অক্ষত থাকে।
Provider form-ই পুরো integration; এর জন্য edit করার মতো কোনো config file বা rebuild করার মতো container নেই। Save করার পরে, workspace-এর জন্য default model সেট করুন, এবং যেখানে ভিন্ন quality tier চান সেখানে per-assistant model optionally override করুন। ইচ্ছাকৃতভাবে যা অক্ষত থাকে: connector তাদের নিজস্ব credential রাখে, index অপ্রভাবিত, এবং search-এর জন্য configured embedding model move করে না। সেই separation বলার যোগ্য কারণ এটা একে একটা low-risk change বানায়। যদি gateway misbehave করত, search এবং source তবুও কাজ করত; শুধু answer generation error করত, এবং default-কে আগের provider-এ ফিরিয়ে দেওয়া একটা dropdown মাত্র। যেসব team deployment automate করে, তাদের জন্য UI দিয়ে click করার বদলে Onyx-এর API দিয়ে একই provider definition seed করা যায়, কিন্তু admin panel path-ই documented এবং stable surface, এবং one-time setup খুব কমই বেশি কিছুর যোগ্য।
# confirm the gateway lists the ids you plan to register
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50
# confirm a chat completion works end to end
curl -s https://api.apisrouter.com/v1/chat/completions \
-H "Authorization: Bearer $APISROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-4-6",
"messages":[{"role":"user","content":"ping"}]}'Grounded enterprise উত্তরের জন্য model বেছে নেওয়া।
Onyx-এ model evaluation অস্বাভাবিকভাবে concrete: একই connector-এর বিরুদ্ধে দুইটা ভিন্ন assistant default দিয়ে একই প্রশ্ন জিজ্ঞাসা করুন এবং তুলনা করুন কোনটা সঠিক passage cite করে। per-key usage log আপনার real প্রশ্ন mix-এ দুই candidate-ই price করে।
- Grounded answering input-heavy: model retrieved passage পড়ে যা এটা লেখা উত্তরকে ছাড়িয়ে যায়। তাই output price-এর চেয়ে আপনার id-র per-input-token price প্রতি প্রশ্নের cost বেশি ঠিক করে।
- claude-sonnet-4-6 একটা শক্তিশালী workspace default: retrieved source-এর ভেতরে থাকতে disciplined এবং document-এ নেই এমন policy invent করতে প্রতিরোধী।
- High-traffic assistant (IT helpdesk, HR FAQ) claude-haiku-4-5-20251001 বা deepseek-v4-pro-তে ভালো চলে, যেখানে volume pricing per-seat cost predictable রাখে।
- লম্বা source document long-context id-কে সুবিধা দেয়; বড় design doc বা contract context-এ টানা assistant-এর জন্য gemini-3.1-pro-preview test করার যোগ্য।
- এক provider entry-তে একাধিক id register করুন এবং প্রতি assistant-এ assign করুন। প্রতি team quality tier একটা global compromise model-এর চেয়ে ভালো।
ব্যবহার অনুযায়ী পেমেন্ট · অফিশিয়াল মূল্যের নিচে
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.6 Terra | $2.50 / $15.00 per M | $2.00 / $12.00 per M |
| Gemini 3.1 Pro Preview | $2.00 / $12.00 per M | $1.60 / $9.60 per M |
| DeepSeek V4 Pro | $0.43 / $0.87 per M | $0.40 / $0.90 per M |
Onyx-specific failure mode।
Provider Name কোনো free-text label না। এটা অবশ্যই একটা LiteLLM provider key-র সাথে মিলতে হবে, এবং একটা gateway-এর জন্য সেই key openai। একটা বানানো নাম form ঠিকঠাক save হওয়া সত্ত্বেও request time-এ একটা LiteLLM provider error দিয়ে fail করে। Base URL /v1 suffix চায়। Onyx-এর নিজস্ব documentation /v1-এ শেষ হওয়া endpoint shape দেখায়; এটা ছাড়া, chat-completions path ভুলভাবে resolve হয় এবং request gateway-তে 404 করে। Model id Model Configurations-এ বাস করে। সেখানে কখনো register না করা একটা model default হিসেবে select করা যায় না, এবং একটা registered id-তে একটা typo save time-এ না বরং প্রথম ব্যবহারে একটা model-not-found error হিসেবে surface করে। Gateway-এর /v1/models listing-ই authoritative spelling। যদি আপনার admin UI-তে custom-models form-এ Base URL field missing থাকে, একটা missing feature-এর বদলে আপনি কিছু 2026 release-এ একটা reported UI regression-এ পড়েছেন; upgrade করা field ফিরিয়ে দেয়। এবং মনে রাখবেন আপনি কোন অর্ধেক move করেছেন: যদি search result ভুল বা stale দেখায়, সেটা indexing এবং connector, যা কাস্টম provider-কে কখনো touch করে না। শুধু generated answer-ই gateway দিয়ে route হয়।
কারা একটা gateway দিয়ে Onyx route করে।
- Self-hosted team যারা per-vendor account-কে একটা endpoint, একটা key, এবং একটা workspace বা department-এ পরিষ্কারভাবে map হওয়া per-key usage দিয়ে replace করছে।
- Enterprise যারা internal search-এর জন্য Onyx standardize করেছে এবং একটা আলাদা Anthropic billing relationship ছাড়াই Claude-quality grounded উত্তর চায়।
- Platform team যারা ভিন্ন quality tier-এ একাধিক assistant চালায়, এক provider-এ registered model id দিয়ে per assistant priced।
- Evaluator যারা identical corpus জুড়ে model family-র উত্তর quality তুলনা করছে, যেখানে প্রতিটা candidate একটা নতুন provider integration-এর বদলে একটা registered id।
- Developer যাদের কোনো নির্দিষ্ট vendor-এর billing-এ access নেই। কোনো card requirement ছাড়া Top-up based access per-provider sign-up dependency সরিয়ে দেয়।
Endpoint verify করুন এবং প্রথম chat debug করুন।
Form touch করার আগে উপরের দুটো curl check gateway অর্ধেক কভার করে: register করতে চাওয়া id অবশ্যই /v1/models-এ দেখা যেতে হবে, এবং একটা direct chat completion উত্তর দেওয়া উচিত। Onyx-এর ভেতরে, failure দ্রুত localize হয়। LiteLLM নাম দিয়ে একটা provider error মানে Provider Name একটা valid key না; এটাকে openai-তে সেট করুন। প্রথম chat-এ একটা authentication error মানে API Key Base URL-এর endpoint-এর অন্তর্গত না। একটা model-not-found error Model Configurations এবং catalog-এর মধ্যে একটা id mismatch। যে উত্তর generate হয় কিন্তু আপনার document ignore করে তা একটা retrieval বা connector সমস্যা, সম্পূর্ণভাবে LLM provider-এর আগের। একবার chat চললে, APIsRouter console per-request model, token count, এবং spend দেখায়। একটা workspace tool-এর জন্য যেখানে প্রতিটা প্রশ্ন retrieved context বহন করে, সেই per-question token সংখ্যা capacity planning-এর honest ভিত্তি, এবং প্রতি workspace এক key usage log-কে একটা department-level cost report-এ পরিণত করে।
সাধারণ প্রশ্ন
Onyx কি কাস্টম OpenAI-compatible LLM provider সাপোর্ট করে?
হ্যাঁ, একটা documented flow হিসেবে: Admin Panel, Configuration, Language Models, Add Custom LLM Provider। docs বলে provider অবশ্যই OpenAI-compatible endpoint expose করবে এবং /v1-এ শেষ হওয়া Base URL shape দেখায়, যা ঠিক একটা gateway যা দেয়।
একটা gateway-এর জন্য Provider Name-এ আমি কী দেব?
openai। Onyx LiteLLM দিয়ে call route করে, এবং Provider Name অবশ্যই একটা LiteLLM provider key-র সাথে মিলতে হবে; openai হলো একটা কাস্টম Base URL-এ পাওয়া যায় এমন যেকোনো OpenAI-compatible endpoint-এর জন্য key।
এই setup দিয়ে Onyx কি Claude বা DeepSeek model দিয়ে উত্তর দিতে পারে?
হ্যাঁ। provider-এর Model Configurations section-এ id register করুন (উদাহরণস্বরূপ claude-sonnet-4-6 বা deepseek-v4-pro)। LiteLLM এগুলো Base URL-এ plain string হিসেবে forward করে, তাই gateway যা কিছু serve করে তা selectable।
কাস্টম provider কি Onyx-এর document indexing বা embedding পাল্টায়?
না। Indexing, embedding, এবং reranking Onyx-এর নিজস্ব model server-এ চলে, default local, এবং connector তাদের নিজস্ব credential রাখে। কাস্টম LLM provider শুধু answer generation move করে।
ভিন্ন assistant কি এক provider-এ ভিন্ন model ব্যবহার করতে পারে?
হ্যাঁ। Provider-এর Model Configurations-এ একাধিক id register করুন, তারপর per assistant default সেট করুন। একটা high-volume helpdesk assistant একটা fast id চালাতে পারে যখন একটা research assistant একটা frontier id-তে default করে, সবই একই endpoint এবং key দিয়ে।
এটা কি Danswer-এও একই ছিল?
Onyx হলো renamed Danswer project, এবং কাস্টম provider concept বহাল রয়েছে। Current documentation Onyx নামের নিচে বাস করে, এবং এখানে বর্ণিত admin-panel flow-ই current surface; পুরনো Danswer guide পুরনো field layout দেখাতে পারে।