Tambahkan APIsRouter sebagai endpoint kustom LibreChat.
Updated 2026-07-29
LibreChat memperlakukan endpoint OpenAI-compatible kustom sebagai fitur kelas satu: satu blok endpoints.custom di librechat.yaml dengan baseURL, apiKey, dan models.fetch diatur ke true, dan seluruh katalog muncul di selector model di bawah satu key.
Jawaban singkat: satu blok di librechat.yaml.
Endpoint kustom LibreChat dikonfigurasi di librechat.yaml di bawah endpoints.custom, sebuah array di mana setiap entri adalah satu provider. Tiga field yang penting adalah name (label di selector endpoint), apiKey (yang menginterpolasi environment variable dalam bentuk ${VARIABLE}, jadi key-nya hidup di .env dan tidak pernah di YAML), dan baseURL. Untuk APIsRouter baseURL-nya adalah https://api.apisrouter.com/v1, dengan /v1 disertakan, karena LibreChat menambahkan path route seperti /chat/completions ke base apa pun yang Anda berikan. Blok models memutuskan apa yang muncul di dropdown model. Atur models.fetch ke true dan LibreChat mengkueri listing /v1/models endpoint saat load, jadi setiap id katalog menjadi bisa dipilih tanpa memelihara daftar tulisan tangan. models.default tetap diperlukan sebagai array dan berfungsi sebagai fallback yang ditampilkan sebelum atau sebagai ganti fetch. Ini konfigurasi upstream yang terdokumentasi, bukan patch: struktur objek endpoint kustom di dokumentasi LibreChat mendefinisikan setiap key 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: trueBagaimana LibreChat merutekan endpoint kustom.
LibreChat (danny-avila di GitHub, sekitar 41K bintang) adalah interface bergaya ChatGPT self-hosted yang paling banyak digunakan: multi-user, multi-model, dengan pencarian percakapan, agent, penanganan file, dan key per pengguna. Tidak seperti client yang hardcode daftar provider, array endpoints.custom-nya menerima layanan OpenAI-compatible apa pun, dan beberapa provider terkenal di dokumentasinya dikonfigurasi melalui mekanisme persis ini. Saat pengguna memilih model dari endpoint kustom, LibreChat mengirim request /v1/chat/completions standar ke baseURL endpoint itu dengan field model sebagai string biasa. Tidak ada yang di client peduli vendor mana yang melatih model itu; string-nya diteruskan apa adanya. Saat endpoint di balik baseURL melayani beberapa vendor, satu entri librechat.yaml menempatkan id Claude, GPT, Gemini, DeepSeek, dan GLM di dropdown yang sama, dan pengguna berpindah vendor di tengah percakapan dengan cara yang sama seperti mereka beralih antar dua varian GPT. Itu meruntuhkan setup LibreChat multi-provider yang biasa. Alih-alih satu entri kustom per vendor, masing-masing dengan key sendiri di .env dan permukaan billing sendiri, satu entri dengan satu key mencakup katalog, dan admin melihat penggunaan per model di satu tempat alih-alih merekonsiliasi beberapa dashboard.
Setup lengkap: YAML, .env, dan mount Docker.
Buat librechat.yaml di root proyek dan taruh key di .env. Referensi ${APISROUTER_API_KEY} di YAML ter-resolve dari environment saat startup, jadi file konfigurasinya tetap bisa di-commit. Langkah yang paling sering terlewat pada setup pertama kali adalah spesifik-Docker: container tidak melihat librechat.yaml Anda sampai Anda me-mount-nya. Dokumentasinya meminta Anda membuat docker-compose.override.yml dengan bind mount dari ./librechat.yaml ke /app/librechat.yaml, lalu me-recreate container. Mengedit YAML setelahnya juga membutuhkan restart, karena file-nya dibaca saat startup, bukan diawasi. Beberapa field opsional layak diatur pada entri gateway. titleConvo mengaktifkan judul percakapan otomatis, dan titleModel memilih model yang menulisnya; default titleModel yang terdokumentasi LibreChat adalah gpt-3.5-turbo, id yang mungkin tidak dilayani endpoint non-OpenAI, jadi atur secara eksplisit ke id katalog yang cepat atau ke nilai khusus current_model. modelDisplayLabel mengontrol nama yang ditampilkan di pesan asisten. Dan apiKey menerima nilai khusus user_provided jika Anda ingin setiap pengguna menempel key mereka sendiri alih-alih berbagi key server.
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 workspace chat bersama.
Karena setiap model ditagih melalui key yang sama, loop praktis untuk admin adalah mengamati seminggu penggunaan di konsol, melihat model mana yang benar-benar dipilih pengguna, dan memangkas models.default agar cocok, menjaga fetch tetap nyala agar power user masih bisa menjangkau daftar lengkap.
- Chat daily-driver menginginkan generalist yang kuat. claude-sonnet-4-6 dan gpt-5.5 mengangkut percakapan panjang, diskusi file, dan run agent tanpa kecemasan model per pesan.
- Pertanyaan singkat berfrekuensi tinggi adalah kerja volume. claude-haiku-4-5-20251001 dan gemini-3.5-flash menjawab cepat dan menjaga deployment banyak-pengguna dari memusatkan pengeluaran pada giliran sekali pakai.
- Pembuatan judul menembak di setiap percakapan. Arahkan titleModel ke id cepat; membayar tarif frontier untuk menulis judul enam kata adalah pemborosan diam paling umum dalam deployment LibreChat.
- Tim multibahasa harus menguji deepseek-v4-pro dan glm-5.2 pada campuran bahasa nyata mereka; dropdown multi-vendor membuatnya perbandingan dalam-app alih-alih rekonfigurasi.
- models.fetch berarti model katalog baru muncul tanpa menyentuh YAML, jadi model yang ditambahkan upstream bisa dipilih kali berikutnya daftarnya di-refresh.
Bayar sesuai pemakaian · di bawah harga resmi
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| Model | Harga Resmi | Harga 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 |
Mode kegagalan spesifik LibreChat.
Konfigurasi yang diam-diam tidak termuat adalah klasiknya, dan hampir selalu mount Docker. Tanpa bind mount docker-compose.override.yml, container berjalan tanpa librechat.yaml sama sekali, endpoint kustom tidak pernah muncul di selector, dan tidak ada yang error. Konfirmasi file-nya ada di dalam container sebelum debug apa pun lainnya. apiKey yang tiba secara literal sebagai ${APISROUTER_API_KEY} berarti variabelnya tidak ada di environment tempat server dimulai; interpolasi terjadi saat startup dari .env, jadi key yang ditambahkan setelahnya butuh restart container. Gejalanya adalah 401 dari gateway dengan bearer token yang tidak masuk akal. baseURL tanpa /v1 menghasilkan 404 pada setiap request, karena LibreChat menambahkan /chat/completions ke base yang diberikan. Kesalahan sebaliknya, menempel URL completions lengkap sebagai baseURL, milik opsi directEndpoint yang terpisah dan tidak boleh digabung dengan entri normal. Dropdown model kosong dengan fetch mati berarti models.default hilang atau kosong; ia array yang wajib. Dengan fetch nyala, dropdown kosong biasanya berarti fetch-nya sendiri gagal, yang kembali ke key atau baseURL. Dan judul percakapan yang gagal pada endpoint yang sebaliknya berfungsi adalah default titleModel yang mengarah ke id yang tidak dilayani gateway; atur secara eksplisit.
Siapa yang merutekan LibreChat melalui gateway.
- Tim yang self-host workspace chat bersama yang ingin Claude, GPT, Gemini, dan DeepSeek di satu dropdown tanpa memelihara satu entri endpoints.custom dan satu akun vendor masing-masing.
- Admin yang menjalankan deployment multi-user yang butuh satu permukaan penggunaan. Log per-key menunjukkan model mana yang benar-benar digunakan tim, diberi harga, tanpa menggabung dashboard vendor.
- Operator yang memberi departemen key mereka sendiri: YAML yang sama, satu key per grup, dan log penggunaan menjadi laporan biaya per tim.
- Rumah tangga dan grup kecil yang mengganti beberapa langganan chat dengan satu endpoint bermeter, membayar token yang digunakan alih-alih seat.
- Developer tanpa akses ke billing vendor tertentu. Akses berbasis top-up tanpa syarat kartu menghilangkan ketergantungan sign-up per provider.
Verifikasi endpoint dan debug pesan pertama.
Buktikan separuh gateway sebelum menyentuh LibreChat: daftar model dengan key Anda, dan konfirmasi id yang Anda taruh di models.default muncul. Jika itu berfungsi, setiap gejala tersisa ada di sisi LibreChat dari koneksinya. Lalu jalankan stack-nya dan buka selector endpoint. Entri APIsRouter muncul sama sekali membuktikan YAML termuat; daftar model terisi membuktikan fetch dan key-nya; balasan pertama membuktikan jalur chat. Kerjakan ketiganya secara berurutan alih-alih sekaligus, karena masing-masing punya set kegagalan berbeda, mount, env var, dan baseURL secara berturut-turut. Setelah pesan mengalir, konsol APIsRouter menunjukkan model per request, hitungan token, dan pengeluaran. Instance LibreChat bersama adalah persis jenis deployment di mana penggunaan diam-diam terkonsentrasi pada dua atau tiga model, dan log penggunaan adalah cara Anda mengetahui mana sebelum invoice-nya yang memberi tahu.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50Pertanyaan umum
Di mana saya mengonfigurasi endpoint OpenAI-compatible kustom di LibreChat?
Di librechat.yaml di bawah endpoints.custom, array entri provider dengan name, apiKey, baseURL, dan blok models. Pada instalasi Docker file-nya harus di-bind-mount ke container melalui docker-compose.override.yml atau ia diam-diam diabaikan.
Haruskah baseURL menyertakan /v1?
Ya untuk APIsRouter: https://api.apisrouter.com/v1. LibreChat menambahkan path route seperti /chat/completions ke base yang diberikan, jadi /v1 yang hilang menghasilkan 404 di setiap request.
Bisakah satu endpoint LibreChat melayani model Claude, GPT, dan DeepSeek bersama?
Ya. LibreChat meneruskan id model yang dipilih sebagai string biasa ke baseURL endpoint. Saat endpoint melayani beberapa vendor, satu entri endpoints.custom menempatkan semua id mereka di dropdown yang sama, dan models.fetch menjaga daftar itu tetap terkini secara otomatis.
Mengapa endpoint kustom saya hilang dari selector?
YAML-nya tidak termuat. Di Docker penyebab biasanya adalah bind mount yang hilang untuk librechat.yaml; container berjalan tanpa file-nya dan tidak ada yang error. Konfirmasi file-nya ada di dalam container, lalu restart, karena konfigurasinya dibaca saat startup.
Mengapa judul percakapan gagal padahal chat berfungsi?
titleConvo menggunakan titleModel, yang default terdokumentasinya adalah gpt-3.5-turbo, id yang mungkin tidak dilayani endpoint Anda. Atur titleModel secara eksplisit ke id katalog yang cepat seperti claude-haiku-4-5-20251001, atau ke nilai khusus current_model.
Bisakah setiap pengguna membawa key mereka sendiri alih-alih berbagi key server?
Ya. Atur apiKey ke nilai khusus user_provided dan LibreChat meminta key dari setiap pengguna, disimpan per pengguna. Itu cocok dengan key gateway dengan baik, karena satu key per pengguna mengubah log penggunaan menjadi tampilan biaya per orang.