Idagdag ang mga cloud model ng katalogo sa Jan nang hindi umaalis sa local-first.
Updated 2026-07-29
Sadyang pinapatakbo ng Jan ang mga model sa sarili mong makina, at tinatanggap ng Model Providers settings nito ang anumang OpenAI-compatible endpoint para sa mga araw na kulang ang local: magdagdag ng provider, itakda ang Base URL sa https://api.apisrouter.com/v1, i-paste ang isang key, at sumasali ang mga id ng Claude, GPT, Gemini, at DeepSeek sa local lineup mo.
Mabilisang sagot: isang provider sa Settings.
Buksan ang Settings ng Jan at pumunta sa Model Providers. I-click ang plus control sa tabi ng listahan ng provider para magdagdag ng custom provider, bigyan ito ng pangalan (APIsRouter), at sa mga bagong build, piliin ang OpenAI API format kapag tinanong ka ng dialog (naidagdag sa Jan v0.8.1 ang OpenAI-or-Anthropic format selector; para sa isang gateway, piliin ang OpenAI). Pagkatapos, punan ang dalawang field na mahalaga: Base URL na https://api.apisrouter.com/v1 at ang API key mo. Idagdag ang mga model na gusto mo sa pamamagitan ng id: malinaw ang docs ng Jan na dapat tumugma ang id property sa pangalan ng model na si-serve ng endpoint, kaya kopyahin ang mga id mula sa listahan ng katalogo (claude-sonnet-4-6, gpt-5.4-mini, gemini-3.5-flash) sa halip na i-type mula sa memorya. I-save, at lalabas ang mga id sa model selector katabi ng kahit anong pinapatakbo mo nang lokal. Nagbago ang mga label sa pagitan ng mga release (tinawag ng mas lumang bersyon ang lugar na ito na Remote Engines), kaya ituring ang provider, format, URL, key, models, bilang matatag na balangkas.
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-flashPaano itinuturing ng Jan ang mga remote provider.
Ang Jan (menloresearch sa GitHub, humigit-kumulang 44K stars) ang local-first na desktop client: nagda-download ang mga model sa makina mo, tumatakbo sa pamamagitan ng llama.cpp, at gumagana offline, kahit inilalantad pa ng app ang sarili nitong OpenAI-compatible server sa http://127.0.0.1:1337/v1 para sa ibang tools. Ang mga remote provider ang sinasadyang pangalawang lane, para sa mga model na masyadong malaki para tumakbo nang lokal o mga gawain na karapat-dapat sa frontier na kalidad. Ang isang custom provider sa OpenAI format ay isang plain na deskripsyon ng endpoint: base url, key, deklaradong model ids. Umaalis ang mga usapan laban sa mga id na iyon bilang standard chat-completions requests gamit ang id bilang model string, kaya isang entry lamang ang kailangan ng isang multi-vendor gateway. Claude para sa maingat na pagsusulat, DeepSeek para sa volume na summarization, Gemini para sa bilis, isang key sa likod ng lahat ng ito. Mas maayos kaysa sa unang tunog ang pagkakatugma sa pilosopiya. Ang mga local-first na user ay malamang na maingat tungkol sa kung ano ang umaalis sa makina, at pinapanatili ng isang gateway na kasinginat ang remote lane: isang endpoint na fi-firewall, isang usage log na babasahin, isang balance na kumikilos lamang kapag pinili mong magpadala ng isang bagay palabas. Walang nagbabago sa local lane; nagpapatuloy pa rin ang mga na-download mong model na gumagana offline nang eksakto tulad noon.
Pagdedeklara ng mga model: ang kontrata ng id.
Hindi kinukuha ng Jan ang katalogo ng isang custom endpoint para sa iyo; ang mga model na idineklara mo ang mga model na makukuha mo, at ang id ang kontrata. Ang authoritative na baybay ay mula sa listahan ng /v1/models ng gateway, kasama ang mga version suffix. Ang isang deklaradong id na lumihis sa listahan ay gumagawa ng not-found na error lamang kapag napili ang model na iyon, na parang hindi mapagkakatiwalaang provider hanggang ihambing mo ang mga string. Magdeklara nang sinasadya. Pinakamahusay gumana ang isang local-first na picker kapag kaunti at may layunin ang mga remote row: isang mabilis na id para sa pang-araw-araw na remote turns (gpt-5.4-mini o claude-haiku-4-5-20251001), isang frontier id para sa gawaing karapat-dapat umalis sa makina (claude-sonnet-4-6), at anumang espesyalista na karapat-dapat sa workload mo (deepseek-v4-flash para sa mahahabang multilingual na summary, gemini-3.5-flash kung ang latency ang feature). Madaling idagdag ang bawat row mamaya; ang isang pinaste na katalogo ay ingay na dinadaanan mo araw-araw. Kung gumagamit ka rin ng local API server ng Jan para maglingkod sa ibang tools, panatilihing malinaw ang mental model: ang server na iyon ay ang Jan bilang provider sa 127.0.0.1:1337/v1; ang custom provider entry ay ang Jan bilang client. Hiwalay ang dalawa, at hindi kailanman apektado ang isa kapag ni-configure mo ang isa.
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 listPagpili kung aling mga usapan ang aalis sa makina.
Dahil prepaid at per-key metered ang remote usage, ang gastos ng remote lane ay isang numerong babasahin mo, hindi isang subscription na hihilahin. Patakbuhin ang isang buwan ng tunay mong split at sasabihin ng usage log kung magkano talaga ang gastos ng pag-alis sa makina, per model, per araw.
- Ang mga pang-araw-araw na remote turns, mabilisang tanong, rewrites, translations, ay dapat nasa mabilis na tier: sumasagot nang mabilis ang gpt-5.4-mini at claude-haiku-4-5-20251001 at halos hindi gumagalaw ang balance.
- Ang claude-sonnet-4-6 ang step-up para sa gawaing halatang hindi kaya ng isang local model: mahaba, maingat na pagdadraft, banayad na code review, analysis na ipapadala mo.
- Karapat-dapat sa row nito ang gemini-3.5-flash dahil sa latency; para sa maiikling interactive turns, pinakamalapit itong maramdaman sa responsiveness ng isang local model.
- Ang deepseek-v4-flash ang volume pick para sa pag-summarize ng mahahabang dokumento na hindi mo ipapakain sa isang maliit na local model.
- Panatilihin ang pribadong materyal nang lubusan sa local models; ang paghihiwalay ng dalawang lane ang punto ng pagpapatakbo ng Jan sa unang lugar.
Pay-as-you-go · mas mababa sa opisyal na presyo
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| Model | Opisyal na Presyo | Aming Presyo |
|---|---|---|
| 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 |
Mga failure mode na specific sa Jan.
Ang mga not-found na error sa isang partikular na model ay ang kontrata ng id: hindi tumutugma ang deklaradong id sa baybay ng endpoint. Ihambing laban sa output ng /v1/models nang letra-por-letra. Ang mga authentication failure sa bawat request ay ang key field. Ang isang provider na na-save pero kailanman hindi sumasagot ay karaniwang may problema sa Base URL: dapat naroon ang /v1 suffix, dahil ini-append ng Jan ang mga route path tulad ng /chat/completions sa base na ibinigay mo, at ang dinoble o nawawalang segment ay nagbibigay ng 404. Kung ginawa sa mas lumang build ang provider, suriin ang API format: naidagdag sa v0.8.1 ang OpenAI-or-Anthropic selector, at ang isang gateway entry na aksidenteng itinakda sa Anthropic format ay nagsasalita ng maling dialect sa isang /v1/chat/completions na endpoint. At tandaan kung aling lane ang dine-debug mo. Nagbabahagi ng chat window ang mga local model failure (VRAM, quantization, llama.cpp settings) at remote failures (URL, key, ids) pero wala nang iba; ipinapakita ng model selector kung aling lane kinabibilangan ng isang nabigong usapan bago ka humila sa maling hibla.
Sino ang nagdadagdag ng gateway lane sa Jan.
- Mga local-first na user na paminsan-minsang nangangailangan ng frontier na kalidad at gustong nasa prepaid na balance ang paminsan-minsang lane na iyon sa halip na vendor subscription.
- Mga developer sa mga makinang hindi kayang tumakbo nang maayos ang malalaking local model, gamit ang Jan bilang interface at ang gateway para sa mabigat na gawain.
- Mga privacy-deliberate na user na gustong isang remote endpoint lamang ang pagninilayan, i-firewall, at i-audit, sa halip na isa per vendor.
- Mga taong naghahambing ng local kumpara sa cloud na output sa tunay na gawain, kung saan ang mga remote na kandidato ay deklaradong rows, hindi mga bagong account.
- Mga developer na walang access sa billing ng isang partikular na vendor. Ang top-up based na access na walang kailangang card ay inaalis ang per-provider na sign-up dependency.
I-verify ang endpoint at i-debug ang unang remote turn.
I-curl muna ang models listing at isang chat completion; kapag pumasa ang dalawa, nasa provider entry na lamang ang lahat ng natitira. Ibinibigay rin nito ang eksaktong baybay ng id na dedeklarahin mo. Sa loob ng Jan, magpadala ng isang maikling mensahe sa mabilis na remote id. Ang mga authentication error ay ang key; ang not-found ay ang id; ang katahimikan o 404s ay ang hugis ng Base URL. Kung gumagana ang remote lane pero pakiramdam ay mabagal sa frontier id, iyon ay latency ng model, hindi problema sa configuration; nagtatagal ang mga reasoning model sa mahahabang turns. Kapag dumadaloy na ang mga remote turns, ipinapakita ng APIsRouter console ang per-request na model, token counts, at gastos. Para sa isang local-first na user, kakaibang kasiya-siya ang pagbabasa ng log na ito: ito ang kumpletong rekord ng lahat ng umalis na sa makina, per model, per araw, na walang anumang kontribusyon ang local lane dito.
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"}]}'Mga madalas itanong
Paano ako magdadagdag ng custom OpenAI-compatible provider sa Jan?
Settings, Model Providers, pagkatapos ang plus control para magdagdag ng provider. Pangalanan ito, piliin ang OpenAI API format sa mga build na nagtatanong (v0.8.1+), itakda ang Base URL na https://api.apisrouter.com/v1, i-paste ang key mo, at ideklara ang mga model id na tumutugma sa listahan ng endpoint.
Bakit nagbabalik ng not-found ang deklarado kong model?
Ipinapadala ng Jan ang deklaradong id nang literal bilang model string, at hinihiling ng docs nito na dapat eksaktong tumugma ang id sa pangalan ng model ng endpoint. Kunin ang listahan ng /v1/models at kopyahin ang baybay, kasama ang mga version suffix, sa halip na i-type ang mga id mula sa memorya.
Nagbabago ba ang paggana ng local models kapag nagdagdag ako ng remote provider?
Hindi. Nagpapatuloy ang mga local model na tumakbo on-device sa pamamagitan ng llama.cpp, kasama ang offline. Nagdadagdag ang provider entry ng hiwalay na remote lane sa selector, at humihipo lamang sa network ang mga usapan kapag pinili mo ang isang remote id.
Dapat bang kasama ang /v1 sa Base URL?
Oo: https://api.apisrouter.com/v1. Ini-append ng Jan ang mga route tulad ng /chat/completions sa base na ini-configure mo, kaya nagbibigay ng 404 ang kulang na /v1 at gayundin ang dinoble. Kung nabibigo ang mga request, basahin ang binuong URL sa error bago baguhin ang iba pa.
Maaabot ba ng Jan ang Claude at Gemini sa pamamagitan ng isang provider entry?
Oo. Sa OpenAI format, naglalakbay ang model id bilang plain string, kaya maaaring ideklara ang claude-sonnet-4-6, gemini-3.5-flash, gpt-5.4-mini, at deepseek-v4-flash sa ilalim ng isang entry, bini-bill sa isang key, at napapalitan per usapan.
Pareho ba ito sa local API server ng Jan?
Hindi. Ang local server sa 127.0.0.1:1337/v1 ay ang Jan na naglilingkod ng local models nito sa ibang tools. Ang custom provider entry ay ang Jan na kumukonsumo ng remote endpoint. Hiwalay na feature ang mga ito na nagkataong nagbabahagi ng OpenAI wire format.