APIsRouter کو LibreChat custom endpoint کے طور پر شامل کریں۔
Updated 2026-07-29
LibreChat custom OpenAI-compatible endpoints کو ایک first-class feature کے طور پر treat کرتا ہے: librechat.yaml میں ایک endpoints.custom block جس میں ایک baseURL، ایک apiKey، اور models.fetch true پر set ہو، اور پورا catalog ایک key کے تحت model selector میں ظاہر ہو جاتا ہے۔
فوری جواب: librechat.yaml میں ایک block۔
LibreChat کے custom endpoints librechat.yaml میں endpoints.custom کے تحت configure ہوتے ہیں، ایک array جہاں ہر entry ایک provider ہے۔ تین fields جو اہم ہیں وہ ہیں name (endpoint selector میں label)، apiKey (جو ${VARIABLE} فارم میں environment variables interpolate کرتی ہے، تو key .env میں رہتی ہے اور کبھی YAML میں نہیں)، اور baseURL۔ APIsRouter کے لیے baseURL ہے https://api.apisrouter.com/v1، /v1 سمیت، کیونکہ LibreChat آپ کے دیے گئے base پر /chat/completions جیسے route paths append کرتا ہے۔ models block طے کرتا ہے model dropdown میں کیا ظاہر ہو۔ models.fetch کو true پر set کریں اور LibreChat load پر endpoint کی /v1/models فہرست query کرتا ہے، تو catalog کا ہر id بغیر ہاتھ سے لکھی فہرست برقرار رکھے منتخب کے قابل بن جاتا ہے۔ models.default ابھی بھی ایک array کے طور پر ضروری ہے اور fetch سے پہلے یا اس کی جگہ دکھائے جانے والے fallback کے طور پر کام کرتا ہے۔ یہ upstream documented configuration ہے، کوئی patch نہیں: LibreChat docs میں custom endpoint object structure یہاں استعمال ہونے والی ہر key define کرتی ہے۔
version: 1.2.1
endpoints:
custom:
- name: "APIsRouter"
apiKey: "${APISROUTER_API_KEY}"
baseURL: "https://api.apisrouter.com/v1"
models:
default: ["claude-sonnet-4-6"]
fetch: trueLibreChat custom endpoints کیسے route کرتا ہے۔
LibreChat (GitHub پر danny-avila، تقریباً 41K stars) سب سے زیادہ deploy ہونے والا self-hosted ChatGPT-طرز کا interface ہے: multi-user، multi-model، conversation search، agents، file handling، اور فی-user keys کے ساتھ۔ ان clients کے برعکس جو provider list hardcode کرتے ہیں، اس کا endpoints.custom array کسی بھی OpenAI-compatible service کو قبول کرتا ہے، اور docs میں کئی مشہور providers بالکل اسی mechanism کے ذریعے configure کیے گئے ہیں۔ جب کوئی user custom endpoint سے model چنتا ہے، LibreChat اس endpoint کے baseURL پر ایک معیاری /v1/chat/completions request بھیجتا ہے، model field کو plain string کے طور پر۔ client میں کچھ بھی اس بات کی پروا نہیں کرتا کہ کس vendor نے model train کیا؛ string ویسے ہی forward ہوتی ہے۔ جب baseURL کے پیچھے موجود endpoint کئی vendors سرو کرے، ایک librechat.yaml entry Claude، GPT، Gemini، DeepSeek، اور GLM ids کو ایک ہی dropdown میں لے آتا ہے، اور کوئی user درمیانی گفتگو میں vendor سوئچ کرتا ہے بالکل ویسے جیسے وہ دو GPT variants کے درمیان سوئچ کرے گا۔ یہ عام multi-provider LibreChat setup کو سکیڑ دیتا ہے۔ فی-vendor ایک custom entry، ہر ایک اپنی .env میں key اور اپنی billing surface کے ساتھ، کی بجائے، ایک entry جس میں ایک key catalog cover کرتی ہے، اور admin ایک ہی جگہ فی-model استعمال دیکھتا ہے کئی dashboards reconcile کرنے کی بجائے۔
مکمل سیٹ اپ: YAML، .env، اور Docker mount۔
project root میں librechat.yaml بنائیں اور key کو .env میں رکھیں۔ YAML میں ${APISROUTER_API_KEY} reference startup پر environment سے resolve ہوتی ہے، تو config file commit ہونے کے قابل رہتی ہے۔ جو step پہلی بار کے زیادہ تر setups miss کرتے ہیں وہ Docker-specific ہے: container آپ کی librechat.yaml نہیں دیکھتا جب تک آپ اسے mount نہ کریں۔ docs آپ سے docker-compose.override.yml بنواتی ہیں جس میں ./librechat.yaml سے /app/librechat.yaml تک bind mount ہو، پھر containers دوبارہ بنائیں۔ بعد میں YAML edit کرنا بھی restart مانگتا ہے، کیونکہ file startup پر پڑھی جاتی ہے، watch نہیں کی جاتی۔ کچھ اختیاری fields gateway entry پر set کرنے کے قابل ہیں۔ titleConvo خودکار conversation titles enable کرتا ہے، اور titleModel وہ model چنتا ہے جو انہیں لکھے؛ LibreChat کا documented default titleModel کے لیے gpt-3.5-turbo ہے، ایک id جو کوئی non-OpenAI endpoint شاید سرو نہ کرے، تو اسے واضح طور پر کسی تیز catalog id پر یا special value current_model پر set کریں۔ modelDisplayLabel وہ نام کنٹرول کرتا ہے جو assistant messages پر دکھتا ہے۔ اور apiKey special value user_provided قبول کرتا ہے اگر آپ چاہیں ہر user server کی key share کرنے کی بجائے اپنی خود کی key paste کرے۔
version: 1.2.1
endpoints:
custom:
- name: "APIsRouter"
apiKey: "${APISROUTER_API_KEY}"
baseURL: "https://api.apisrouter.com/v1"
models:
default: ["claude-sonnet-4-6", "gpt-5.5", "deepseek-v4-pro"]
fetch: true
titleConvo: true
titleModel: "claude-haiku-4-5-20251001"
modelDisplayLabel: "APIsRouter"ایک مشترکہ chat workspace کے لیے models چننا۔
چونکہ ہر model اسی key پر bill ہوتا ہے، admin کے لیے عملی loop یہ ہے کہ console میں ایک ہفتے کا استعمال دیکھیں، دیکھیں users اصل میں کون سے models چنتے ہیں، اور models.default کو اسی کے مطابق trim کریں، fetch on رکھتے ہوئے تاکہ power users پھر بھی مکمل فہرست تک پہنچ سکیں۔
- Daily-driver chat کو ایک مضبوط generalist چاہیے۔ claude-sonnet-4-6 اور gpt-5.5 لمبی گفتگوئیں، file گفتگو، اور agent runs بغیر فی-message model پریشانی کے اٹھاتے ہیں۔
- زیادہ-frequency والے مختصر سوالات volume کام ہیں۔ claude-haiku-4-5-20251001 اور gemini-3.5-flash تیزی سے جواب دیتے ہیں اور many-user deployment کو throwaway turns پر spend مرکوز کرنے سے روکتے ہیں۔
- Title generation ہر conversation پر چلتا ہے۔ titleModel کو کسی تیز id پر point کریں؛ چھ لفظوں کے titles لکھنے کے لیے frontier rates ادا کرنا LibreChat deployment میں سب سے عام خاموش ضیاع ہے۔
- Multilingual teams کو اپنی حقیقی زبان mix پر deepseek-v4-pro اور glm-5.2 test کرنے چاہئیں؛ ایک multi-vendor dropdown اسے دوبارہ configuration کی بجائے in-app موازنہ بنا دیتا ہے۔
- models.fetch کا مطلب ہے نئے catalog models YAML چھوئے بغیر ظاہر ہوتے ہیں، تو upstream شامل کیا گیا model اگلی بار list refresh ہونے پر منتخب کے قابل ہوتا ہے۔
استعمال کے مطابق ادائیگی · سرکاری قیمت سے کم
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 Pro | $0.43 / $0.87 per M | $0.40 / $0.90 per M |
LibreChat سے مخصوص failure modes۔
Config کا خاموشی سے load نہ ہونا classic ہے، اور یہ تقریباً ہمیشہ Docker mount ہے۔ docker-compose.override.yml bind mount کے بغیر، container بالکل بھی librechat.yaml کے بغیر چلتا ہے، custom endpoint کبھی selector میں ظاہر نہیں ہوتا، اور کچھ بھی error نہیں دیتا۔ کچھ بھی debug کرنے سے پہلے confirm کریں file container کے اندر موجود ہے۔ ایک apiKey جو لفظی طور پر ${APISROUTER_API_KEY} کے طور پر آئے اس کا مطلب ہے variable server شروع ہونے کے وقت environment میں موجود نہیں تھی؛ interpolation startup پر .env سے ہوتی ہے، تو بعد میں شامل کی گئی key کو container restart چاہیے۔ Symptom ایک بے معنی bearer token کے ساتھ gateway کی طرف سے 401 ہے۔ بغیر /v1 والا baseURL ہر request پر 404s پیدا کرتا ہے، کیونکہ LibreChat دیے گئے base پر /chat/completions append کرتا ہے۔ الٹ غلطی، baseURL کے طور پر مکمل completions URL paste کرنا، الگ directEndpoint آپشن سے تعلق رکھتی ہے اور اسے normal entry کے ساتھ combine نہیں کرنا چاہیے۔ fetch off کے ساتھ خالی model dropdown کا مطلب ہے models.default غائب یا خالی ہے؛ یہ ایک ضروری array ہے۔ fetch on کے ساتھ، خالی dropdown عموماً یہی ہے کہ fetch خود fail ہوا، جو دوبارہ key یا baseURL کی طرف واپس جاتا ہے۔ اور ایک بصورت دیگر کام کرنے والے endpoint پر ناکام conversation titles کا مطلب ہے titleModel کا default اس id کی طرف اشارہ کر رہا ہے جو gateway سرو نہیں کرتا؛ اسے واضح طور پر set کریں۔
LibreChat کو gateway کے ذریعے کون route کرتا ہے۔
- وہ teams جو ایک مشترکہ chat workspace self-host کرتی ہیں اور Claude، GPT، Gemini، اور DeepSeek ایک dropdown میں چاہتی ہیں بغیر فی-vendor ایک endpoints.custom entry اور ایک account رکھے۔
- وہ admins جو multi-user deployments چلاتے ہیں اور ایک usage surface چاہتے ہیں۔ Per-key logs دکھاتے ہیں team اصل میں کون سے models استعمال کرتی ہے، priced، بغیر vendor dashboards ملائے۔
- وہ operators جو departments کو اپنی own keys دیتے ہیں: وہی YAML، فی-group ایک key، اور usage log فی-team cost report بن جاتا ہے۔
- Households اور چھوٹے groups جو کئی chat subscriptions کو ایک metered endpoint سے بدلتے ہیں، seats کی بجائے استعمال شدہ tokens کے لیے ادائیگی کرتے ہوئے۔
- وہ developers جن کے پاس کسی مخصوص vendor کی billing تک رسائی نہیں۔ Top-up پر مبنی رسائی بغیر کارڈ کی شرط کے فی-provider sign-up کا انحصار ختم کر دیتی ہے۔
Endpoint verify کریں اور پہلا message debug کریں۔
LibreChat کو چھونے سے پہلے gateway کا حصہ ثابت کریں: اپنی key کے ساتھ models فہرست کریں، اور confirm کریں models.default میں موجود ids ظاہر ہوتی ہیں۔ اگر یہ کام کرے، تو باقی ہر symptom LibreChat کی طرف کی wire پر ہے۔ پھر stack شروع کریں اور endpoint selector کھولیں۔ APIsRouter entry کا بالکل ظاہر ہونا ثابت کرتا ہے YAML load ہوئی؛ model list بھرنا fetch اور key ثابت کرتا ہے؛ پہلا reply chat path ثابت کرتا ہے۔ ان تینوں پر ایک ساتھ کی بجائے ترتیب سے کام کریں، کیونکہ ہر ایک کا اپنا الگ failure set ہے، بالترتیب mount، env var، اور baseURL۔ جب messages چلنے لگیں تو APIsRouter console فی-request model، token counts، اور spend دکھاتا ہے۔ ایک مشترکہ LibreChat instance بالکل وہی طرح کا deployment ہے جہاں استعمال خاموشی سے دو تین models پر مرکوز ہو جاتا ہے، اور usage log وہ طریقہ ہے جس سے آپ یہ invoice سے پہلے جان لیتے ہیں۔
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50عمومی سوالات
LibreChat میں custom OpenAI-compatible endpoint کہاں configure کروں؟
librechat.yaml میں endpoints.custom کے تحت، provider entries کا ایک array جس میں name، apiKey، baseURL، اور ایک models block ہو۔ Docker installs پر file کو docker-compose.override.yml کے ذریعے container میں bind-mount کرنا ضروری ہے ورنہ یہ خاموشی سے نظر انداز ہو جاتی ہے۔
کیا baseURL میں /v1 شامل ہونا چاہیے؟
APIsRouter کے لیے، جی ہاں: https://api.apisrouter.com/v1۔ LibreChat آپ کے دیے گئے base پر /chat/completions جیسے route paths append کرتا ہے، تو غائب /v1 ہر request پر 404s پیدا کرتا ہے۔
کیا ایک LibreChat endpoint Claude، GPT، اور DeepSeek models کو ساتھ سرو کر سکتا ہے؟
جی ہاں۔ LibreChat منتخب کردہ model id کو plain string کے طور پر endpoint کے baseURL پر forward کرتا ہے۔ جب endpoint کئی vendors سرو کرے، ایک endpoints.custom entry ان سب کی ids کو ایک ہی dropdown میں لے آتا ہے، اور models.fetch اس فہرست کو خودکار طور پر current رکھتا ہے۔
میرا custom endpoint selector سے کیوں غائب ہے؟
YAML load نہیں ہوئی۔ Docker پر عام وجہ librechat.yaml کے لیے missing bind mount ہے؛ container file کے بغیر چلتا ہے اور کچھ بھی error نہیں دیتا۔ confirm کریں file container کے اندر موجود ہے، پھر restart کریں، کیونکہ config startup پر پڑھی جاتی ہے۔
chat کام کرنے کے باوجود conversation titles کیوں fail ہوتے ہیں؟
titleConvo titleModel استعمال کرتا ہے، جس کا documented default gpt-3.5-turbo ہے، ایک id جو آپ کا endpoint شاید سرو نہ کرے۔ titleModel کو واضح طور پر claude-haiku-4-5-20251001 جیسی تیز catalog id پر، یا special value current_model پر set کریں۔
کیا ہر user server کی key share کرنے کی بجائے اپنی own key لا سکتا ہے؟
جی ہاں۔ apiKey کو special value user_provided پر set کریں اور LibreChat ہر user سے ایک key مانگتا ہے، فی-user store کی گئی۔ یہ gateway keys پر اچھی طرح fit بیٹھتا ہے، چونکہ فی-user ایک key usage log کو فی-person cost view بنا دیتی ہے۔