Tambahkan model katalog cloud ke Jan tanpa meninggalkan local-first.

Updated 2026-07-29

Jan menjalankan model di mesin Anda secara desain, dan pengaturan Model Providers-nya menerima endpoint OpenAI-compatible apa pun untuk hari-hari di mana lokal tidak cukup: tambahkan provider, set Base URL ke https://api.apisrouter.com/v1, tempel satu key, dan id Claude, GPT, Gemini, dan DeepSeek bergabung dengan jajaran lokal Anda.

Jawaban singkat: satu provider di Settings.

Buka Settings Jan dan masuk ke Model Providers. Klik kontrol plus di sebelah daftar provider untuk menambahkan provider custom, beri nama (APIsRouter), dan pada build terbaru pilih format OpenAI API saat dialog bertanya (Jan v0.8.1 menambahkan selektor format OpenAI-atau-Anthropic; untuk gateway pilih OpenAI). Lalu isi dua field yang penting: Base URL https://api.apisrouter.com/v1 dan API key Anda. Tambahkan model yang Anda inginkan per id: dokumentasi Jan menyatakan eksplisit bahwa properti id harus cocok dengan nama model yang dilayani endpoint, jadi salin id dari listing katalog (claude-sonnet-4-6, gpt-5.4-mini, gemini-3.5-flash) alih-alih mengetik dari ingatan. Simpan, dan id muncul di selektor model di sebelah apa pun yang Anda jalankan secara lokal. Label sudah berpindah antar rilis (versi lama menyebut area ini Remote Engines), jadi perlakukan provider, format, URL, key, models sebagai kerangka yang stabil.

Name:        APIsRouter
API Format:  OpenAI          (v0.8.1+ selector)
Base URL:    https://api.apisrouter.com/v1
API Key:     sk-YOUR-APISROUTER-KEY

Models: add ids that match the endpoint, e.g.
  claude-sonnet-4-6, gpt-5.4-mini, gemini-3.5-flash

Bagaimana Jan memperlakukan provider remote.

Jan (menloresearch di GitHub, sekitar 44K bintang) adalah client desktop local-first: model diunduh ke mesin Anda, berjalan lewat llama.cpp, dan bekerja offline, dengan app bahkan mengekspos server OpenAI-compatible-nya sendiri di http://127.0.0.1:1337/v1 untuk tool lain. Provider remote adalah jalur kedua yang disengaja, untuk model yang terlalu besar untuk dijalankan lokal atau tugas yang pantas mendapat kualitas frontier. Provider custom dalam format OpenAI adalah deskripsi endpoint polos: base URL, key, id model yang dideklarasikan. Percakapan terhadap id itu keluar sebagai request chat-completions standar dengan id sebagai string model, jadi gateway multi-vendor hanya butuh persis satu entri. Claude untuk penulisan yang cermat, DeepSeek untuk summarization volume, Gemini untuk kecepatan, satu key di balik semuanya. Kecocokan filosofisnya lebih baik dari kedengarannya pada awalnya. Pengguna local-first cenderung sengaja soal apa yang keluar dari mesin, dan gateway menjaga jalur remote sama-sama disengaja: satu endpoint untuk di-firewall, satu log penggunaan untuk dibaca, satu saldo yang hanya bergerak saat Anda memilih mengirim sesuatu keluar. Tidak ada yang berubah soal jalur lokal; model yang sudah diunduh tetap bekerja offline persis seperti sebelumnya.

Mendeklarasikan model: kontrak id.

Jan tidak mengambil katalog endpoint custom untuk Anda; model yang Anda deklarasikan adalah model yang Anda dapat, dan id adalah kontraknya. Ejaan otoritatif berasal dari listing /v1/models gateway, termasuk suffix versi. Id yang dideklarasikan yang melenceng dari listing menghasilkan error not-found hanya saat model itu dipilih, yang terbaca seperti provider yang tidak stabil sampai Anda membandingkan string-nya. Deklarasikan dengan sengaja. Picker local-first bekerja terbaik saat baris remote sedikit dan bertujuan: satu id cepat untuk giliran remote sehari-hari (gpt-5.4-mini atau claude-haiku-4-5-20251001), satu id frontier untuk kerja yang membenarkan keluar dari mesin (claude-sonnet-4-6), dan spesialis apa pun yang layak didapat workload Anda (deepseek-v4-flash untuk ringkasan multibahasa panjang, gemini-3.5-flash saat latensi adalah fiturnya). Setiap baris mudah ditambahkan nanti; katalog yang ditempel mentah adalah noise yang Anda scroll lewati setiap hari. Jika Anda juga memakai server API lokal Jan untuk melayani tool lain, jaga model mentalnya tetap lurus: server itu adalah Jan menjadi provider di 127.0.0.1:1337/v1; entri provider custom adalah Jan menjadi client. Keduanya independen, dan mengonfigurasi satu tidak pernah memengaruhi yang lain.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50
# declare these ids verbatim in the provider's model list

Memilih percakapan mana yang keluar dari mesin.

Karena penggunaan remote bersifat prabayar dan termeteri per-key, biaya jalur remote adalah angka yang Anda baca, bukan langganan yang Anda tebak. Jalankan sebulan pembagian nyata Anda dan log penggunaan memberi tahu persis berapa biaya keluar dari mesin, per model, per hari.

  • Giliran remote sehari-hari, pertanyaan cepat, rewrite, terjemahan, milik tier cepat: gpt-5.4-mini dan claude-haiku-4-5-20251001 menjawab cepat dan menjaga saldo nyaris diam.
  • claude-sonnet-4-6 adalah peningkatan untuk kerja yang jelas tidak bisa dibawa model lokal: penyusunan draf panjang yang cermat, code review yang halus, analisis yang akan Anda teruskan.
  • gemini-3.5-flash pantas dapat barisnya karena latensi; untuk giliran interaktif pendek ia terasa paling dekat dengan responsivitas model lokal.
  • deepseek-v4-flash adalah pilihan volume untuk meringkas dokumen panjang yang tidak akan Anda suapkan ke model lokal kecil.
  • Simpan materi privat sepenuhnya di model lokal; pemisahan antar jalur itulah inti menjalankan Jan sejak awal.

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.

ModelHarga ResmiHarga Kami
Claude Haiku 4.5 20251001$1.00 / $5.00 per M$0.80 / $4.00 per M
Claude Sonnet 4.6$3.00 / $15.00 per M$2.40 / $12.00 per M
GPT-5.4 mini$0.75 / $4.50 per M$0.60 / $3.60 per M
Gemini 3.5 Flash$1.50 / $9.00 per M$1.20 / $7.20 per M
DeepSeek V4 Flash$0.14 / $0.28 per M$0.10 / $0.30 per M

Mode kegagalan spesifik Jan.

Error not-found pada model tertentu adalah kontrak id: id yang dideklarasikan tidak cocok dengan ejaan endpoint. Bandingkan dengan output /v1/models karakter demi karakter. Kegagalan autentikasi di setiap request adalah field key. Provider yang tersimpan tapi tidak pernah menjawab biasanya punya masalah Base URL: suffix /v1 harus ada, karena Jan menambahkan path route seperti /chat/completions ke base yang Anda berikan, dan segmen yang dobel atau hilang ber-404. Jika provider dibuat di build lama, cek format API-nya: v0.8.1 memperkenalkan selektor OpenAI-atau-Anthropic, dan entri gateway yang tidak sengaja diset ke format Anthropic berbicara dialek yang salah ke endpoint /v1/chat/completions. Dan ingat jalur mana yang Anda debug. Kegagalan model lokal (VRAM, quantization, pengaturan llama.cpp) dan kegagalan remote (URL, key, id) berbagi jendela chat tapi tidak berbagi apa pun lagi; selektor model menunjukkan jalur mana yang dimiliki percakapan yang gagal sebelum Anda mulai menarik benang yang salah.

Siapa yang menambahkan jalur gateway ke Jan.

  • Pengguna local-first yang sesekali butuh kualitas frontier dan menginginkan jalur sesekali itu di saldo prabayar alih-alih langganan vendor.
  • Developer di mesin yang tidak bisa menjalankan model lokal besar dengan baik, memakai Jan sebagai interface dan gateway untuk kerja berat.
  • Pengguna yang sengaja soal privasi yang menginginkan persis satu endpoint remote untuk dinalar, di-firewall, dan diaudit, alih-alih satu per vendor.
  • Orang yang membandingkan output lokal versus cloud pada tugas nyata, di mana kandidat remote adalah baris yang dideklarasikan, bukan akun baru.
  • Developer tanpa akses ke billing vendor tertentu. Akses berbasis top-up tanpa syarat kartu menghilangkan ketergantungan sign-up per provider.

Verifikasi endpoint dan debug giliran remote pertama.

Curl listing model dan satu chat completion dulu; jika keduanya lolos, semua yang tersisa ada di entri provider. Ini juga memberi Anda ejaan id persis untuk dideklarasikan. Di dalam Jan, kirim satu pesan pendek di id remote cepat. Error autentikasi adalah key-nya; not-found adalah id-nya; diam atau 404 adalah bentuk Base URL-nya. Jika jalur remote berfungsi tapi terasa lambat di id frontier, itu latensi model, bukan masalah konfigurasi; model reasoning butuh waktu untuk giliran panjang. Setelah giliran remote mengalir, konsol APIsRouter menunjukkan model per request, hitungan token, dan pengeluaran. Untuk pengguna local-first, log ini bacaan yang tidak biasa memuaskan: ini adalah catatan lengkap segala sesuatu yang pernah keluar dari mesin, per model, per hari, dengan jalur lokal berkontribusi persis nol untuk itu.

curl -s https://api.apisrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $APISROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-5.4-mini",
       "messages":[{"role":"user","content":"ping"}]}'

Pertanyaan umum

Bagaimana cara menambahkan provider OpenAI-compatible custom ke Jan?

Settings, Model Providers, lalu kontrol plus untuk menambahkan provider. Beri nama, pilih format OpenAI API pada build yang bertanya (v0.8.1+), set Base URL https://api.apisrouter.com/v1, tempel key Anda, dan deklarasikan id model yang cocok dengan listing endpoint.

Mengapa model yang saya deklarasikan mengembalikan not-found?

Jan mengirim id yang dideklarasikan apa adanya sebagai string model, dan dokumentasinya mensyaratkan id cocok persis dengan nama model endpoint. Ambil listing /v1/models dan salin ejaannya, termasuk suffix versi, alih-alih mengetik id dari ingatan.

Apakah menambahkan provider remote mengubah cara kerja model lokal?

Tidak. Model lokal terus berjalan on-device lewat llama.cpp, termasuk offline. Entri provider menambahkan jalur remote terpisah ke selektor, dan percakapan hanya menyentuh jaringan saat Anda memilih id remote.

Haruskah Base URL menyertakan /v1?

Ya: https://api.apisrouter.com/v1. Jan menambahkan route seperti /chat/completions ke base yang Anda konfigurasi, jadi /v1 yang hilang ber-404 dan yang dobel juga begitu. Jika request gagal, baca URL hasil susunan di error sebelum mengubah hal lain.

Bisakah Jan menjangkau Claude dan Gemini melalui satu entri provider?

Ya. Dalam format OpenAI, id model ikut sebagai string biasa, jadi claude-sonnet-4-6, gemini-3.5-flash, gpt-5.4-mini, dan deepseek-v4-flash semuanya bisa dideklarasikan di bawah satu entri, ditagih melalui satu key, dan ditukar per percakapan.

Apakah ini sama dengan server API lokal Jan?

Tidak. Server lokal di 127.0.0.1:1337/v1 adalah Jan melayani model lokalnya ke tool lain. Entri provider custom adalah Jan mengonsumsi endpoint remote. Keduanya fitur independen yang kebetulan berbagi format wire OpenAI.