APIsRouter को LibreChat custom endpoint के तौर पर add करें।

Updated 2026-07-29

LibreChat custom OpenAI-compatible endpoints को एक first-class feature की तरह treat करता है: librechat.yaml में एक baseURL, एक apiKey, और models.fetch true पर set वाला एक endpoints.custom block, और पूरा catalog एक key के नीचे model selector में दिख जाता है।

Quick answer: librechat.yaml में एक block।

LibreChat के custom endpoints librechat.yaml में endpoints.custom के नीचे configure होते हैं, एक array जिसमें हर entry एक provider है। तीन fields जो matter करती हैं वे हैं name (endpoint selector में label), apiKey (जो ${VARIABLE} form में environment variables interpolate करती है, तो key .env में रहती है और कभी YAML में नहीं), और baseURL। APIsRouter के लिए baseURL https://api.apisrouter.com/v1 है, /v1 सहित, क्योंकि LibreChat आपके दिए base पर /chat/completions जैसे route paths append करता है। models block decide करता है कि model dropdown में क्या दिखता है। models.fetch को true set करें और LibreChat load पर endpoint की /v1/models listing query करता है, तो हर catalog id बिना हाथ से लिखी list maintain किए selectable बन जाती है। models.default फिर भी एक array के तौर पर required है और fetch से पहले या उसके बदले दिखने वाले fallback के रूप में काम करता है। यह upstream documented configuration है, कोई patch नहीं: LibreChat docs में custom endpoint object structure यहां use होने वाली हर 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: true

LibreChat custom endpoints को कैसे route करता है।

LibreChat (GitHub पर danny-avila, लगभग 41K stars) सबसे widely deployed self-hosted ChatGPT-style interface है: multi-user, multi-model, conversation search, agents, file handling, और per-user keys के साथ। एक hardcoded provider list रखने वाले clients के उलट, इसकी endpoints.custom array किसी भी OpenAI-compatible service को accept करती है, और docs में कई well-known providers बिल्कुल इसी mechanism के through configure होते हैं। जब कोई user एक custom endpoint से model चुनता है, LibreChat उस endpoint के baseURL पर model field को एक plain string के रूप में लेकर एक standard /v1/chat/completions request भेजता है। Client को इससे फर्क नहीं पड़ता कि कौन सा vendor model train करता है; string as-is forward होती है। जब baseURL के पीछे का endpoint कई vendors serve करता है, एक librechat.yaml entry Claude, GPT, Gemini, DeepSeek, और GLM ids को same dropdown में डाल देती है, और एक user conversation के बीच में vendors ऐसे switch करता है जैसे वह दो GPT variants के बीच switch कर रहा हो। यह usual multi-provider LibreChat setup को collapse कर देता है। प्रति vendor एक custom entry की बजाय, हर एक अपनी .env key और अपनी billing surface के साथ, एक entry और एक key पूरा catalog cover करती है, और admin एक ही जगह प्रति model usage देखता है, कई dashboards reconcile करने की बजाय।

पूरा setup: YAML, .env, और Docker mount।

Project root में librechat.yaml बनाएं और key .env में डालें। YAML में ${APISROUTER_API_KEY} reference startup पर environment से resolve होती है, तो config file committable बनी रहती है। Pehli बार setups में जो step सबसे ज़्यादा miss होता है वह Docker-specific है: container आपकी librechat.yaml को तब तक नहीं देखता जब तक आप उसे mount न करें। Docs आपको docker-compose.override.yml बनाने के लिए कहते हैं ./librechat.yaml से /app/librechat.yaml तक एक bind mount के साथ, फिर containers recreate करें। बाद में YAML edit करने के लिए भी restart चाहिए, क्योंकि file startup पर पढ़ी जाती है, watch नहीं की जाती। एक gateway entry पर कुछ optional fields set करने लायक हैं। titleConvo automatic conversation titles enable करता है, और titleModel वह model pick करता है जो उन्हें लिखता है; LibreChat का documented titleModel default gpt-3.5-turbo है, एक ऐसी id जो एक non-OpenAI endpoint शायद serve न करे, तो इसे explicitly किसी fast catalog id पर या special value current_model पर set करें। modelDisplayLabel assistant messages पर दिखने वाला name control करता है। और apiKey special value user_provided accept करता है अगर आप चाहते हैं कि server की key share करने की बजाय हर user अपनी 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"

एक shared chat workspace के लिए models चुनना।

चूंकि हर model same key के through bill होता है, एक admin के लिए practical loop यह है कि console में एक हफ्ते का usage देखें, यह देखें users actually कौन से models pick करते हैं, और models.default को उसी हिसाब से prune करें, fetch on रखते हुए ताकि power users पूरी list तक पहुंच सकें।

  • Daily-driver chat को एक strong generalist चाहिए। claude-sonnet-4-6 और gpt-5.5 लंबी conversations, file discussion, और agent runs को प्रति-message model anxiety के बिना carry करते हैं।
  • High-frequency short questions volume work हैं। claude-haiku-4-5-20251001 और gemini-3.5-flash तेज़ जवाब देते हैं और एक many-user deployment को throwaway turns पर spend concentrate करने से रोकते हैं।
  • Title generation हर conversation पर fire होता है। titleModel को एक fast id पर point करें; छह-शब्द titles लिखने के लिए frontier rates pay करना किसी LibreChat deployment में सबसे common silent waste है।
  • Multilingual teams को deepseek-v4-pro और glm-5.2 अपने real language mix पर test करने चाहिए; एक multi-vendor dropdown इसे reconfiguration की बजाय एक in-app comparison बना देता है।
  • models.fetch का मतलब है नए catalog models बिना YAML छुए दिखते हैं, तो upstream add किया गया model list refresh होने पर अगली बार selectable होता है।

जितना उपयोग उतना भुगतान · आधिकारिक मूल्य से कम

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 के लिए specific failure modes।

Config silently load न होना classic है, और यह लगभग हमेशा Docker mount है। docker-compose.override.yml bind mount के बिना, container बिना किसी librechat.yaml के चलता है, custom endpoint selector में कभी नहीं दिखता, और कुछ भी error नहीं करता। किसी और चीज़ को debug करने से पहले confirm करें कि file container के अंदर exist करती है। एक apiKey जो literally ${APISROUTER_API_KEY} के तौर पर आती है उसका मतलब है variable server के startup environment में मौजूद नहीं थी; interpolation .env से startup पर होता है, तो बाद में add की गई key को container restart चाहिए। Symptom gateway से एक nonsense bearer token वाला 401 है। बिना /v1 वाला baseURL हर request पर 404s produce करता है, क्योंकि LibreChat दिए गए base पर /chat/completions append करता है। Reverse mistake, baseURL के तौर पर एक full completions URL paste करना, अलग directEndpoint option की है और एक normal entry के साथ combine नहीं होनी चाहिए। fetch off के साथ एक empty model dropdown का मतलब है models.default missing है या empty है; यह एक required array है। fetch on के साथ, एक empty dropdown का मतलब आमतौर पर fetch खुद fail हुआ, जो वापस key या baseURL तक जाता है। और एक otherwise working endpoint पर failed conversation titles titleModel default का मतलब है जो एक ऐसी id पर point करता है जो gateway serve नहीं करता; इसे explicitly set करें।

कौन LibreChat को एक gateway के through route करता है।

  • Teams जो एक shared chat workspace self-host करती हैं और Claude, GPT, Gemini, और DeepSeek एक dropdown में चाहती हैं, प्रति vendor account के साथ एक endpoints.custom entry maintain किए बिना।
  • Admins जो multi-user deployments चलाते हैं जिन्हें एक usage surface चाहिए। Per-key logs दिखाते हैं team actually कौन से models use करती है, priced, बिना vendor dashboards merge किए।
  • Operators जो departments को अपनी keys देते हैं: same YAML, प्रति group एक key, और usage log प्रति-team cost report बन जाता है।
  • Households और छोटे groups जो कई chat subscriptions को एक metered endpoint से replace करते हैं, seats की बजाय used tokens के लिए pay करते हुए।
  • Developers जिनके पास किसी given vendor की billing तक access नहीं है। बिना card requirement वाला top-up based access प्रति provider sign-up dependency हटा देता है।

Endpoint verify करें और पहले message को debug करें।

LibreChat को छूने से पहले gateway half prove करें: अपनी key के साथ models list करें, और confirm करें कि आपने models.default में जो ids डालीं वे दिखती हैं। अगर यह काम करता है, तो बाकी हर symptom LibreChat के तार वाले side पर है। फिर stack शुरू करें और endpoint selector खोलें। APIsRouter entry का बिल्कुल दिखना prove करता है कि YAML load हुई; model list populate होना fetch और key prove करता है; पहला reply chat path prove करता है। इन तीनों को एक साथ की बजाय order में work through करें, क्योंकि हर एक का अपना अलग failure set है, क्रमशः mount, env var, और baseURL। एक बार messages flow होने लगें, APIsRouter console प्रति-request model, token counts, और spend दिखाता है। एक shared LibreChat instance बिल्कुल वैसी deployment है जहां usage चुपचाप दो या तीन models पर concentrate हो जाता है, और 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 के नीचे, name, apiKey, baseURL, और एक models block वाले provider entries की एक array। Docker installs पर file को docker-compose.override.yml के through bind-mount करना ज़रूरी है वरना यह silently ignore हो जाती है।

क्या baseURL में /v1 शामिल होना चाहिए?

APIsRouter के लिए हां: https://api.apisrouter.com/v1। LibreChat दिए गए base पर /chat/completions जैसे route paths append करता है, तो एक missing /v1 हर request पर 404s produce करता है।

क्या एक LibreChat endpoint Claude, GPT, और DeepSeek models एक साथ serve कर सकता है?

हां। LibreChat selected model id को endpoint के baseURL पर एक plain string के तौर पर forward करता है। जब endpoint कई vendors serve करता है, एक endpoints.custom entry उन सभी की ids को same dropdown में डाल देती है, और models.fetch उस list को automatically current रखता है।

मेरा custom endpoint selector से क्यों missing है?

YAML load नहीं हुई। Docker पर usual cause librechat.yaml के लिए एक missing bind mount है; container बिना file के चलता है और कुछ भी error नहीं करता। Confirm करें कि file container के अंदर exist करती है, फिर restart करें, क्योंकि config startup पर पढ़ी जाती है।

Chat काम करने पर conversation titles क्यों fail होते हैं?

titleConvo titleModel use करता है, जिसका documented default gpt-3.5-turbo है, एक ऐसी id जो शायद आपका endpoint serve न करे। titleModel को explicitly claude-haiku-4-5-20251001 जैसी एक fast catalog id पर, या special value current_model पर set करें।

क्या हर user server की key share करने की बजाय अपनी खुद की key ला सकता है?

हां। apiKey को special value user_provided पर set करें और LibreChat हर user से एक key मांगता है, प्रति user stored। यह gateway keys के साथ अच्छा fit होता है, क्योंकि प्रति user एक key usage log को प्रति-person cost view बना देती है।