Tambah APIsRouter sebagai endpoint custom LibreChat.

Updated 2026-07-29

LibreChat menganggap endpoint custom serasi OpenAI sebagai ciri kelas pertama: satu blok endpoints.custom dalam librechat.yaml dengan baseURL, apiKey, dan models.fetch ditetapkan kepada true, dan seluruh katalog muncul dalam pemilih model di bawah satu kunci.

Jawapan pantas: satu blok dalam librechat.yaml.

Endpoint custom LibreChat dikonfigurasikan dalam librechat.yaml di bawah endpoints.custom, satu tatasusunan di mana setiap entri adalah satu penyedia. Tiga medan yang penting ialah name (label dalam pemilih endpoint), apiKey (yang mentafsir pembolehubah persekitaran dalam bentuk ${VARIABLE}, jadi kunci itu berada dalam .env dan tidak pernah dalam YAML), dan baseURL. Untuk APIsRouter baseURL ialah https://api.apisrouter.com/v1, dengan /v1 termasuk, kerana LibreChat melampirkan laluan route seperti /chat/completions kepada apa sahaja asas yang anda berikan. Blok models memutuskan apa yang muncul dalam dropdown model. Tetapkan models.fetch kepada true dan LibreChat menyoal senarai /v1/models endpoint semasa muat, jadi setiap id katalog menjadi boleh dipilih tanpa menyelenggara senarai tulisan tangan. models.default masih diperlukan sebagai tatasusunan dan berfungsi sebagai sandaran yang ditunjukkan sebelum atau sebagai ganti pengambilan. Ini adalah konfigurasi hulu yang terdokumentasi, bukan tampalan: struktur objek endpoint custom dalam dokumen LibreChat mentakrifkan setiap kunci yang digunakan di sini.

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

Bagaimana LibreChat menghalakan endpoint custom.

LibreChat (danny-avila di GitHub, lebih kurang 41K bintang) ialah antara muka gaya ChatGPT hos-sendiri yang paling meluas digunakan: berbilang pengguna, berbilang model, dengan carian perbualan, ejen, pengendalian fail, dan kunci per pengguna. Tidak seperti klien yang mengekod keras senarai penyedia, tatasusunan endpoints.custom-nya menerima mana-mana perkhidmatan serasi OpenAI, dan beberapa penyedia terkenal dalam dokumen dikonfigurasi melalui tepat mekanisme ini. Apabila pengguna memilih model daripada endpoint custom, LibreChat menghantar permintaan /v1/chat/completions standard ke baseURL endpoint itu dengan medan model sebagai rentetan biasa. Tiada apa dalam klien mengambil berat vendor mana yang melatih model itu; rentetan itu diteruskan sebagaimana adanya. Apabila endpoint di sebalik baseURL melayani beberapa vendor, satu entri librechat.yaml meletakkan id Claude, GPT, Gemini, DeepSeek, dan GLM dalam dropdown yang sama, dan pengguna bertukar vendor separuh perbualan sama seperti mereka akan bertukar antara dua varian GPT. Itu meruntuhkan persediaan LibreChat berbilang penyedia biasa. Bukannya satu entri custom setiap vendor, masing-masing dengan kunci sendiri dalam .env dan permukaan pengebilan sendiri, satu entri dengan satu kunci merangkumi katalog, dan pentadbir melihat penggunaan per model di satu tempat dan bukan menyesuaikan beberapa papan pemuka.

Persediaan penuh: YAML, .env, dan mount Docker.

Cipta librechat.yaml di punca projek dan letakkan kunci dalam .env. Rujukan ${APISROUTER_API_KEY} dalam YAML diselesaikan daripada persekitaran semasa permulaan, jadi fail konfigurasi kekal boleh di-commit. Langkah yang paling banyak terlepas persediaan kali pertama adalah khusus Docker: bekas tidak melihat librechat.yaml anda sehingga anda mount ia. Dokumen mengarahkan anda mencipta docker-compose.override.yml dengan mount ikatan daripada ./librechat.yaml ke /app/librechat.yaml, kemudian mencipta semula bekas. Mengedit YAML selepas itu juga memerlukan mula semula, kerana fail itu dibaca semasa permulaan, bukan dipantau. Beberapa medan pilihan berbaloi ditetapkan pada entri gateway. titleConvo mengaktifkan tajuk perbualan automatik, dan titleModel memilih model yang menulisnya; lalai terdokumentasi LibreChat untuk titleModel ialah gpt-3.5-turbo, id yang mungkin tidak dilayani endpoint bukan-OpenAI, jadi tetapkannya secara eksplisit kepada id katalog pantas atau kepada nilai khas current_model. modelDisplayLabel mengawal nama yang ditunjukkan pada mesej pembantu. Dan apiKey menerima nilai khas user_provided jika anda mahu setiap pengguna menampal kunci mereka sendiri dan bukan berkongsi kunci pelayan.

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"

Memilih model untuk ruang kerja sembang yang dikongsi.

Kerana setiap model dibilkan melalui kunci yang sama, gelung praktikal untuk pentadbir ialah memerhati seminggu penggunaan dalam konsol, melihat model mana yang benar-benar dipilih pengguna, dan memangkas models.default supaya sepadan, mengekalkan fetch dihidupkan supaya pengguna power tetap boleh mencapai senarai penuh.

  • Sembang pemandu harian mahukan generalis kuat. claude-sonnet-4-6 dan gpt-5.5 membawa perbualan panjang, perbincangan fail, dan larian ejen tanpa kebimbangan model per mesej.
  • Soalan pendek kekerapan tinggi adalah kerja volum. claude-haiku-4-5-20251001 dan gemini-3.5-flash menjawab pantas dan mengelakkan penempatan berbilang pengguna daripada memusatkan perbelanjaan pada giliran buangan.
  • Penjanaan tajuk menembak pada setiap perbualan. Arahkan titleModel ke id pantas; membayar kadar frontier untuk menulis tajuk enam patah perkataan adalah pembaziran senyap paling biasa dalam penempatan LibreChat.
  • Pasukan berbilang bahasa harus menguji deepseek-v4-pro dan glm-5.2 pada campuran bahasa sebenar mereka; dropdown berbilang vendor menjadikan itu perbandingan dalam-aplikasi dan bukan konfigurasi semula.
  • models.fetch bermaksud model katalog baharu muncul tanpa menyentuh YAML, jadi model yang ditambah hulu boleh dipilih pada kali seterusnya senarai itu disegar semula.

Bayar mengikut penggunaan · bawah harga rasmi

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

ModelHarga RasmiHarga Kami
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

Mod kegagalan khusus LibreChat.

Konfigurasi yang secara senyap tidak dimuatkan adalah klasik, dan ia hampir selalu mount Docker. Tanpa mount ikatan docker-compose.override.yml, bekas berjalan tanpa librechat.yaml sama sekali, endpoint custom tidak pernah muncul dalam pemilih, dan tiada apa memberi ralat. Sahkan fail itu wujud di dalam bekas sebelum menyahpepijat apa-apa lagi. apiKey yang tiba secara literal sebagai ${APISROUTER_API_KEY} bermaksud pembolehubah itu tidak hadir dalam persekitaran pelayan bermula; tafsiran berlaku semasa permulaan daripada .env, jadi kunci yang ditambah kemudian memerlukan mula semula bekas. Gejalanya ialah 401 daripada gateway dengan token pembawa yang tidak masuk akal. baseURL tanpa /v1 menghasilkan 404 pada setiap permintaan, kerana LibreChat melampirkan /chat/completions kepada asas seperti yang diberikan. Kesilapan sebaliknya, menampal URL completions penuh sebagai baseURL, tergolong kepada pilihan directEndpoint yang berasingan dan tidak sepatutnya digabungkan dengan entri biasa. Dropdown model kosong dengan fetch dimatikan bermaksud models.default hilang atau kosong; ia adalah tatasusunan diperlukan. Dengan fetch dihidupkan, dropdown kosong biasanya bermaksud pengambilan itu sendiri gagal, yang kembali kepada kunci atau baseURL. Dan tajuk perbualan gagal pada endpoint yang sebaliknya berfungsi adalah lalai titleModel mengarah kepada id yang tidak dilayani gateway; tetapkannya secara eksplisit.

Siapa yang menghalakan LibreChat melalui gateway.

  • Pasukan yang hos sendiri ruang kerja sembang dikongsi yang mahu Claude, GPT, Gemini, dan DeepSeek dalam satu dropdown tanpa menyelenggara satu entri endpoints.custom dan satu akaun vendor setiap satu.
  • Pentadbir yang menjalankan penempatan berbilang pengguna yang memerlukan satu permukaan penggunaan. Log per-kunci menunjukkan model mana yang benar-benar digunakan pasukan, dihargakan, tanpa menggabungkan papan pemuka vendor.
  • Operator yang memberi jabatan kunci mereka sendiri: YAML yang sama, satu kunci setiap kumpulan, dan log penggunaan menjadi laporan kos per-pasukan.
  • Isi rumah dan kumpulan kecil yang menggantikan beberapa langganan sembang dengan satu endpoint berukur, membayar token yang digunakan dan bukan seat.
  • Pembangun tanpa akses kepada pengebilan vendor tertentu. Akses berasaskan top-up tanpa keperluan kad menghapuskan kebergantungan pendaftaran setiap penyedia.

Sahkan endpoint dan nyahpepijat mesej pertama.

Buktikan separuh gateway sebelum menyentuh LibreChat: senaraikan model dengan kunci anda, dan sahkan id yang anda letakkan dalam models.default muncul. Jika itu berfungsi, setiap gejala yang tinggal berada di sisi LibreChat pada wayar. Kemudian mulakan tindanan dan buka pemilih endpoint. Entri APIsRouter muncul langsung membuktikan YAML dimuatkan; senarai model diisi membuktikan pengambilan dan kunci; balasan pertama membuktikan laluan sembang. Selesaikan tiga itu mengikut susunan dan bukan sekali gus, kerana setiap satu mempunyai set kegagalan tersendiri, mount, pembolehubah env, dan baseURL masing-masing. Sebaik sahaja mesej mengalir, konsol APIsRouter menunjukkan model per permintaan, kiraan token, dan perbelanjaan. Instans LibreChat yang dikongsi adalah tepat jenis penempatan di mana penggunaan secara senyap memusat pada dua atau tiga model, dan log penggunaan adalah cara anda mengetahui yang mana sebelum invois melakukannya.

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

Soalan lazim

Di mana saya mengkonfigurasi endpoint custom serasi OpenAI dalam LibreChat?

Dalam librechat.yaml di bawah endpoints.custom, tatasusunan entri penyedia dengan name, apiKey, baseURL, dan blok models. Pada pemasangan Docker fail itu mesti di-bind-mount ke dalam bekas melalui docker-compose.override.yml atau ia diabaikan secara senyap.

Patutkah baseURL termasuk /v1?

Ya untuk APIsRouter: https://api.apisrouter.com/v1. LibreChat melampirkan laluan route seperti /chat/completions kepada asas seperti yang diberikan, jadi /v1 yang hilang menghasilkan 404 pada setiap permintaan.

Bolehkah satu endpoint LibreChat melayani model Claude, GPT, dan DeepSeek bersama?

Ya. LibreChat meneruskan id model yang dipilih sebagai rentetan biasa ke baseURL endpoint. Apabila endpoint melayani berbilang vendor, satu entri endpoints.custom meletakkan semua id mereka dalam dropdown yang sama, dan models.fetch mengekalkan senarai itu terkini secara automatik.

Mengapa endpoint custom saya hilang daripada pemilih?

YAML itu tidak dimuatkan. Pada Docker punca biasa ialah mount ikatan yang hilang untuk librechat.yaml; bekas berjalan tanpa fail itu dan tiada apa memberi ralat. Sahkan fail itu wujud di dalam bekas, kemudian mula semula, kerana konfigurasi itu dibaca semasa permulaan.

Mengapa tajuk perbualan gagal apabila sembang berfungsi?

titleConvo menggunakan titleModel, yang lalai terdokumentasinya ialah gpt-3.5-turbo, id yang mungkin tidak dilayani endpoint anda. Tetapkan titleModel secara eksplisit kepada id katalog pantas seperti claude-haiku-4-5-20251001, atau kepada nilai khas current_model.

Bolehkah setiap pengguna membawa kunci mereka sendiri dan bukan berkongsi kunci pelayan?

Ya. Tetapkan apiKey kepada nilai khas user_provided dan LibreChat meminta setiap pengguna untuk kunci, disimpan per pengguna. Itu sesuai dengan kunci gateway dengan baik, kerana satu kunci setiap pengguna menjadikan log penggunaan pandangan kos per orang.