Dokumentasi

Dokumentasi

LibreChat

LibreChat menggunakan gateway dalam bentuk blok di librechat.yaml: empat kolom wajib, variabel lingkungan untuk kunci, dan proses mulai ulang. Setelah itu, pemilih menyediakan ID Claude dan GPT di balik satu nama endpoint.

LibreChat menerima gateway sebagai blok endpoints.custom di librechat.yaml — empat field wajib, key dari .env, dan restart sebelum pemilih menampilkannya.

librechat.yaml
# librechat.yaml — project root, beside your .env
version: 1.3.5          # the value the documentation's own example carries

endpoints:
  custom:
    # Required: name, apiKey, baseURL, models. The name must be unique and
    # must not reuse a built-in endpoint name such as openAI or anthropic.
    - name: "Kunavo"
      apiKey: "${KUNAVO_API_KEY}"        # resolved from .env, not written here
      # Keep the /v1. LibreChat appends /chat/completions to this by default.
      baseURL: "https://api.kunavo.com/v1"
      models:
        default: ["claude-sonnet-5", "claude-haiku-4-5"]
        fetch: true                      # fills the picker from GET /v1/models
      titleConvo: true
      titleModel: "claude-haiku-4-5"         # titles are a separate call — pin a cheap id
      modelDisplayLabel: "Kunavo"

      # Optional but worth the four lines: without it LibreChat prices your
      # traffic from a table it ships. prompt/completion are USD per million
      # tokens; context is that model's own window. All three required.
      tokenConfig:
        claude-sonnet-5:
          prompt: 1.4
          completion: 7
          context: 1000000
        claude-haiku-4-5:
          prompt: 0.7
          completion: 3.5
          context: 200000
baseURL mempertahankan /v1. Dokumentasi menjelaskan hal ini dalam uraian, bukan melalui contoh: dokumentasi menyebutkan bahwa directEndpoint tersedia untuk URL dasar yang sudah merupakan endpoint completions lengkap, dan bahwa hal ini “diperlukan karena aplikasi secara bawaan menambahkan ‘/chat/completions’ atau ‘/completion’ ke baseURL”. Jadi, https://api.kunavo.com/v1 mengarah ke /v1/chat/completions, yaitu rute yang harus diakses, dan directEndpoint tetap tidak diatur. Kedua contoh di situsnya sendiri juga memiliki akhiran yang sama — https://api.mistral.ai/v1 dan https://openrouter.ai/api/v1. Origin tanpa akhiran di sini akan menghasilkan 404, bukan kesalahan autentikasi.
Mengedit berkas saja tidak cukup untuk Docker. Halaman mulai cepat menjelaskan dengan tegas bahwa librechat.yaml harus ada di direktori root proyek, dipasang ke dalam kontainer API, dan LibreChat harus dimulai ulang agar perubahan terlihat di UI. Jika endpoint baru tidak muncul di pemilih, penyebabnya hampir selalu hal ini, bukan kredensial — periksa kredensial secara terpisah dengan curl di bawah.
Catatan penggunaan adalah hasil perhitungan LibreChat, bukan tagihannya. LibreChat menetapkan harga permintaan berdasarkan tabel yang disertakan dan mencocokkannya dengan ID model Anda. Karena itu, ID gateway dapat dikenai tarif model lain — blok tokenConfig di atas disediakan untuk menggantinya. Deklarasikan blok tersebut untuk setiap ID yang Anda sediakan, atau anggap catatan di aplikasi sebagai perkiraan dan saldo Anda di /app/billing sebagai angka yang sebenarnya.
Konfigurasi ini diambil dari dokumentasi LibreChat sendiri pada tanggal yang tertera di bawah. Kunavo belum menjalankan LibreChat terhadap endpointnya — belum ada percakapan, giliran streaming, siklus bolak-balik pemanggilan alat, atau proses Agents. Halaman penyiapan yang dipublikasikan bukanlah pengujian, dan tidak ada bagian di sini yang boleh dianggap demikian. Hal yang dapat Anda pastikan dalam sepuluh detik adalah curl di bawah; perilaku klien menjadi tanggung jawab Anda bersama LibreChat.
Kunavo tidak menyediakan model embedding, text-to-speech, atau speech-to-text, jadi endpoint ini hanya melayani chat completions. Hal ini penting karena LibreChat memiliki fitur tambahan yang memerlukan jenis penyedia lain: obrolan berkas menjalankan indeks vektornya melalui API RAG terpisah dengan kunci dan URL dasar tersendiri, sedangkan fitur suara juga menggunakan kredensial tersendiri. Fitur-fitur tersebut tetap diarahkan ke penyedia yang sudah digunakan; kunci di blok atas hanya untuk endpoint khusus dan tidak digunakan untuk hal lain di halaman ini.
Belum punya kunci? Buat akun Kunavo, buat kunci (diawali sk-kn-) dan tambahkan kredit mulai dari $10 — panggilan dibayar dari saldo tersebut, dan panggilan yang gagal tidak ditagihkan. Dasbor kemudian terbuka pada penyiapan LibreChat.

Langkah demi langkah

  1. Buat key di /app/keys dan salin — key hanya ditampilkan sekali.
  2. Untuk Docker, pasang konfigurasi terlebih dahulu: panduan mulai cepat meminta Anda menyalin docker-compose.override.yml.example ke docker-compose.override.yml dan menghapus komentar pada volume librechat.yaml. Instalasi langsung tanpa Docker tidak memerlukan langkah ini.
  3. Buat atau edit librechat.yaml di direktori root proyek — direktori yang sama dengan .env — lalu tambahkan entri endpoints.custom di atas.
  4. Simpan kunci di .env sebagai KUNAVO_API_KEY=sk-kn-.... Placeholder ${KUNAVO_API_KEY} dalam YAML akan diisi dari sana, sehingga rahasia tidak tersimpan dalam berkas konfigurasi yang Anda commit.
  5. Mulai ulang LibreChat, lalu buka pemilih endpoint: Kunavo akan muncul sebagai entri tersendiri di samping entri bawaan. Daftar model diambil dari GET /v1/models atau, jika pengambilan gagal, menggunakan array models.default Anda.
  6. Kirim satu pesan, lalu pastikan pemilih model benar-benar beralih model — ID diselesaikan di endpoint, jadi ID Claude dan GPT dalam satu entri adalah hal yang wajar di sini, bukan kesalahan konfigurasi.

Diperiksa terhadap Referensi objek endpoint khusus LibreChat pada 21 September 2026. Pengaturan pihak ketiga dapat berubah; jika nama bidang di sini tidak lagi sama dengan yang Anda lihat, halaman tersebut adalah acuan, bukan halaman ini.

Ini versi singkatnya. Panduan lengkap — pilihan model, biaya sesi nyata, dan mode kegagalan — ada di biaya sebenarnya untuk menjalankan LibreChat.

Verifikasi sebelum men-debug klien

Satu permintaan menentukan apakah masalahnya ada pada endpoint, kunci, atau berkas konfigurasi. Jika ini mengembalikan JSON, base URL dan kunci yang sama berfungsi di LibreChat.

# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
  -H "Authorization: Bearer sk-kn-..."

ID model yang harus dimasukkan ke bidang

Setiap model teks dapat diakses melalui ID model — daftar terkininya ada di GET /v1/models, dan katalog beserta harga ada di halaman model. Tarif dalam USD per 1 juta token, input / output.

ID modelKunavo masuk / keluarKegunaannya di LibreChat
claude-sonnet-5$1.40 / $7.00entri bawaan di models.default — model untuk percakapan sehari-hari
claude-opus-5$3.50 / $17.50ID yang Anda pilih untuk analisis panjang, saat jawaban yang lebih baik sepadan dengan biaya satu giliran
claude-haiku-4-5$0.70 / $3.50lalu lintas volume instans bersama dan titleModel — LibreChat memberi judul pada setiap percakapan melalui panggilan terpisah
gpt-5-6-terra$0.70 / $4.20dokumen panjang yang ditempel, saat jendela konteks menjadi faktor penentu
Penagihan dilakukan per token dari saldo prabayar tanpa biaya bulanan — lihat penagihan. Pada konteks berulang — yang merupakan sebagian besar kiriman editor atau klien obrolan — caching prompt lebih memengaruhi tagihan daripada pilihan model.

Tiga kolom opsional dengan perilaku berbeda di balik gateway

Semua informasi dalam tabel ini berasal dari referensi kolom yang sama, dibaca pada tanggal di atas. Ini adalah penjelasan LibreChat tentang konfigurasinya sendiri — bukan hasil pengujian Kunavo dan bukan klaim tentang perilaku ID model tertentu setelah permintaan meninggalkan klien.

KolomIsi menurut referensiDampaknya bagi gateway
providerMengarahkan endpoint khusus melalui klien penyedia bawaan. Saat ini, Anthropic adalah nilai yang didukung.Pengaturan ini mengganti protokol komunikasi, bukan vendor: blok yang sama dapat menggunakan Anthropic Messages alih-alih chat completions. Pengambilan model bergaya OpenAI tidak digunakan pada jalur ini, jadi cantumkan ID secara eksplisit di models.default.
models.fetchJika bernilai true, sistem mencoba mengambil daftar model dari API dan dapat memperlambat penggunaan awal jika respons tertunda.Kunavo merespons GET /v1/models, sehingga pemilih terisi dengan sendirinya. models.default menjadi pilihan cadangan jika panggilan tersebut gagal — karena itu, ada baiknya kolom tersebut diisi meskipun pengambilan model diaktifkan.
tokenConfigMenentukan jendela konteks khusus model dan tarif per sejuta token untuk pelacakan biaya dan penghitungan penggunaan.Tanpanya, catatan penggunaan menetapkan harga lalu lintas Anda berdasarkan tabel bawaan LibreChat yang dicocokkan dengan ID yang tidak pernah dirancang untuk tabel itu. Dengan pengaturan ini, angka di UI sesuai dengan nilai yang Anda tetapkan.

Panduan empat langkah — pasang, konfigurasi, tetapkan variabel lingkungan, lalu mulai ulang — tersedia di halaman mulai cepat LibreChat untuk endpoint khusus, yang menggunakan gateway sebagai contoh.

Pertanyaan umum

Bagaimana cara menambahkan endpoint khusus ke LibreChat?

Buat librechat.yaml di direktori root proyek, berdampingan dengan .env, lalu tambahkan entri di bawah endpoints.custom dengan empat kolom wajib: name, apiKey, baseURL, dan models. name harus unik dan tidak boleh menggunakan kembali nama endpoint bawaan seperti openAI atau anthropic. Simpan kredensial di .env dan rujuk dari YAML sebagai ${YOUR_ENV_VAR}, lalu mulai ulang. Untuk Docker, berkas tersebut juga harus dipasang ke dalam kontainer API melalui docker-compose.override.yml. Entri baru hanya muncul di pemilih endpoint setelah proses mulai ulang.

Apakah baseURL LibreChat harus diakhiri dengan /v1?

Ya, untuk gateway yang kompatibel dengan OpenAI. Referensi kolom LibreChat sendiri menyebutkan bahwa opsi directEndpoint tersedia untuk URL dasar yang sudah berupa endpoint completions lengkap, dan opsi tersebut diperlukan karena aplikasi secara bawaan menambahkan /chat/completions atau /completion ke baseURL. Jadi, URL dasar harus berupa root API dengan akhiran /v1 — https://api.kunavo.com/v1 — dan directEndpoint tidak diatur. Kedua contoh di situs LibreChat menggunakan format yang sama. Kesalahan dalam pengaturan ini menghasilkan 404, bukan kegagalan autentikasi; inilah cara membedakannya dari kunci yang keliru.

Mengapa biaya yang dilaporkan LibreChat tidak sesuai dengan jumlah yang ditagihkan penyedia?

Karena LibreChat menetapkan harga permintaan berdasarkan tabel harga bawaan, bukan jumlah yang ditagihkan penyedia, lalu mencocokkan tabel tersebut dengan ID model Anda. ID gateway yang menyerupai entri tabel akan dikenai tarif entri tersebut, sedangkan ID yang sama sekali tidak cocok akan menggunakan tarif tetap. Solusinya adalah menambahkan blok tokenConfig di bawah endpoint khusus dan mencantumkan prompt, completion, serta context untuk setiap ID yang Anda sediakan, dalam USD per sejuta token. LibreChat memeriksa pengaturan tersebut sebelum merujuk tabelnya sendiri. Anggap catatan dalam aplikasi sebagai perkiraan dan saldo penyedia sebagai catatan yang sebenarnya.

Bisakah LibreChat menggunakan model Claude melalui endpoint khusus?

Bisa, dengan dua cara. Endpoint khusus biasa yang kompatibel dengan OpenAI meneruskan ID model langsung ke baseURL Anda. Jadi, ID Claude diselesaikan di endpoint tersebut, bukan di LibreChat, dan Anda tidak memerlukan akun Anthropic. Cara lainnya, kolom provider mengarahkan blok yang sama melalui klien Anthropic Messages bawaan LibreChat — saat ini, nilai yang didukung adalah anthropic. Pada jalur tersebut, pengambilan model bergaya OpenAI tidak digunakan, jadi cantumkan ID yang diinginkan di models.default alih-alih mengandalkan pengambilan otomatis.

Apakah Kunavo telah menguji LibreChat?

Belum. Konfigurasi di halaman ini disalin dari dokumentasi endpoint khusus LibreChat sendiri pada tanggal yang tertera, dan tidak ada bagian yang merupakan hasil saat dijalankan — belum ada percakapan, giliran streaming, siklus bolak-balik pemanggilan alat, atau proses Agents. Hal yang sama berlaku untuk setiap klien yang didokumentasikan di sini; halaman penyiapan yang dipublikasikan bukanlah pengujian. Anda dapat memeriksa sendiri dalam sepuluh detik apakah URL dasar dan kunci berfungsi, menggunakan curl di halaman ini; selebihnya bergantung pada perilaku LibreChat dengan ID model yang Anda pilih.