Dokumentasi

Dokumentasi

NextChat

NextChat yang dihosting sendiri terhubung ke Kunavo melalui variabel yang sudah tersedia untuk OpenAI: OPENAI_API_KEY menyimpan kunci, BASE_URL menyimpan origin, dan CUSTOM_MODELS menyimpan ID. Tidak perlu fork atau patch.

Tiga variabel lingkungan — OPENAI_API_KEY, BASE_URL (origin tanpa tambahan), dan CUSTOM_MODELS — menempatkan NextChat yang di-host sendiri pada Claude dan GPT melalui satu key.

Variabel lingkungan — pengaturan proyek Vercel, docker -e, atau .env.local
CODE=your-access-password
OPENAI_API_KEY=sk-kn-...
BASE_URL=https://api.kunavo.com
HIDE_USER_API_KEY=1
CUSTOM_MODELS=-all,+claude-sonnet-5@OpenAI,+claude-opus-5@OpenAI,+claude-haiku-4-5@OpenAI,+gpt-5-6-sol@OpenAI,+gpt-5-6-terra@OpenAI
BASE_URL menggunakan origin dasar, tanpa /v1. Halaman dokumentasi tidak menjelaskan sufiks ini dalam kalimat, tetapi nilai default pada barisnya memastikan bahwa yang digunakan adalah https://api.openai.com, bukan https://api.openai.com/v1 — NextChat menambahkan sisa jalurnya sendiri. Jika /v1 ditambahkan secara manual, hasilnya menjadi /v1/v1/chat/completions dan mengembalikan 404, yang tampak seperti endpoint rusak alih-alih kesalahan ketik.
Penentuan pihak yang memegang kunci merupakan keputusan penerapan, bukan nilai default. Jika OPENAI_API_KEY ditetapkan, server memanggil Kunavo dengan kunci Anda, dan siapa pun yang berhasil melewati CODE akan menggunakan saldo Anda. HIDE_USER_API_KEY=1 didokumentasikan sebagai "If you do not want users to input their own API key, set this value to 1". Jika dibiarkan tanpa nilai, setiap pengunjung dapat memasukkan kuncinya sendiri di Settings. Inilah konfigurasi yang sesuai untuk instans bersama.
Awalan -all dan sufiks @OpenAI tidak tercantum dalam tabel dokumentasi, yang hanya mencakup +, -, dan name=displayName. Informasi tersebut berasal dari kode pengumpulan model NextChat sendiri, yang diperiksa pada hari yang sama: -all mengosongkan daftar bawaan agar pemilih tidak menawarkan ID yang akan ditolak Kunavo, sedangkan @OpenAI menetapkan penyedia OpenAI untuk setiap ID baru agar ID tersebut dikirim ke BASE_URL. ID yang ditulis tanpa sufiks itu akan mendapatkan nama penyedia yang sama dengan ID-nya dan tidak melewati jalur yang Anda konfigurasi. Penggunaan huruf besar dan kecil harus persis.
Kunavo tidak menyediakan model text-to-speech atau speech-to-text, jadi fitur suara NextChat tidak dapat berfungsi dengannya. Biarkan ENABLE_BALANCE_QUERY tidak ditetapkan juga: pemeriksaan saldo memanggil jalur penagihan dasbor OpenAI sendiri, yang tidak termasuk dalam antarmuka kompatibel OpenAI. Saldo Anda dapat dilihat di /app/billing.
Halaman ini disusun berdasarkan dokumentasi NextChat, bukan hasil pengujian — Kunavo belum menjalankan NextChat dengan endpoint ini, dan halaman penyiapan yang dipublikasikan bukanlah uji kompatibilitas. Penyelesaian chat adalah antarmuka yang didokumentasikan di kedua sisi; hal lain di luar itu belum diuji di sini.
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 NextChat.

Langkah demi langkah

  1. Buat key di /app/keys dan salin — key hanya ditampilkan sekali.
  2. Atur OPENAI_API_KEY ke kunci tersebut dan BASE_URL ke https://api.kunavo.com. Di Vercel, keduanya adalah variabel lingkungan proyek; di Docker, keduanya berupa flag -e; untuk penggunaan lokal, masukkan ke .env.local.
  3. Atur CODE ke kata sandi akses, atau deployment Anda terbuka bagi siapa pun yang menemukan URL-nya, sementara kunci Anda yang menanggung biayanya.
  4. Cantumkan id yang Anda inginkan di CUSTOM_MODELS, masing-masing dengan sufiks @OpenAI, dan awali dengan -all untuk menghapus id bawaan.
  5. Lakukan deployment ulang — server membaca variabel lingkungan, jadi proyek Vercel memerlukan deployment baru dan kontainer perlu dimulai ulang. Mengedit variabel saja tidak mengubah apa pun pada instans yang sedang berjalan.
  6. Buka aplikasi, pilih salah satu id Anda dari pemilih model, lalu kirim pesan. Jika balasan diterima, ketiga variabel tersebut sudah sesuai.

Diperiksa terhadap Halaman Variabel Lingkungan NextChat 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.

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 NextChat.

# 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 NextChat
claude-sonnet-5$1.40 / $7.00percakapan sehari-hari — obrolan panjang tanpa harus mengawasi saldo
claude-opus-5$3.50 / $17.50satu pertanyaan setiap minggu yang layak dijawab dengan model mahal
claude-haiku-4-5$0.70 / $3.50merangkum, mengganti nama obrolan, dan percakapan singkat yang mendominasi instans bersama
gpt-5-6-sol$2.00 / $12.00keluarga model kedua dalam pemilih yang sama, dengan kunci yang sama
gpt-5-6-terra$0.70 / $4.20dokumen panjang yang ditempelkan, saat jendela konteks menjadi fitur 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.

Pertanyaan umum

Bagaimana cara mengarahkan NextChat ke endpoint API khusus?

Atur BASE_URL ke origin endpoint dan OPENAI_API_KEY ke kunci yang diberikan, keduanya sebagai variabel lingkungan pada deployment yang di-host sendiri. Halaman Variabel Lingkungan NextChat sendiri mendokumentasikan BASE_URL sebagai "Override OpenAI API request base URL", jadi tidak perlu melakukan patch: aplikasi tetap menggunakan format wire OpenAI dan mengirim permintaan ke tempat lain. Lakukan deployment ulang setelahnya — nilai-nilai tersebut dibaca di server, sehingga instans yang sedang berjalan tidak akan menggunakannya.

Apakah BASE_URL NextChat perlu diakhiri dengan /v1?

Tidak. NextChat menambahkan segmen versi dan rutenya sendiri. Karena itu, nilai default BASE_URL yang didokumentasikan adalah origin tanpa jalur https://api.openai.com, bukan https://api.openai.com/v1. Tulis https://api.kunavo.com saja. Menambahkan sufiks sendiri akan menggandakan jalur dan menghasilkan 404, yang mudah disalahartikan sebagai endpoint yang sedang tidak tersedia.

Bagaimana cara menambahkan model khusus ke daftar model NextChat?

CUSTOM_MODELS menerima daftar dipisahkan koma: + menambahkan model, - menyembunyikan model, dan name=displayName mengganti namanya. Id yang belum dikenal NextChat akan dibuat saat itu juga, jadi +claude-sonnet-5@OpenAI memasukkan id tersebut ke pemilih. Ada dua detail yang perlu disalin persis: awali daftar dengan -all agar id OpenAI bawaan dihapus, alih-alih gagal saat seseorang memilihnya, dan pertahankan sufiks @OpenAI agar id diarahkan melalui BASE_URL, bukan ke penyedia yang namanya diambil dari nama model.

Sebaiknya NextChat menggunakan kunci API server atau membiarkan tiap pengguna memasukkan kuncinya sendiri?

Keduanya didukung; pilihannya bergantung pada siapa yang membayar. Kunci di OPENAI_API_KEY adalah milik server, jadi setiap pengunjung yang melewati kata sandi CODE menggunakan saldo yang sama — masuk akal untuk instans pribadi, tetapi mahal untuk tautan bersama. Jika HIDE_USER_API_KEY tidak diatur, pengunjung dapat memasukkan kunci sendiri di Pengaturan dan membayar sendiri; jika nilainya diatur ke 1, kolom tersebut dihapus. Bagaimanapun, kunci tidak akan sampai ke browser kecuali pengguna mengetikkannya di sana.