Dodaj chmurowe modele z katalogu do Jan, nie porzucając local-first.

Updated 2026-07-29

Jan z założenia uruchamia modele na Twojej maszynie, a jego ustawienia Model Providers akceptują dowolny endpoint kompatybilny z OpenAI na dni, kiedy lokalnie to za mało: dodaj dostawcę, ustaw Base URL na https://api.apisrouter.com/v1, wklej jeden klucz, a identyfikatory Claude, GPT, Gemini i DeepSeek dołączą do Twojego lokalnego składu.

Szybka odpowiedź: jeden dostawca w Settings.

Otwórz Settings w Jan i przejdź do Model Providers. Kliknij przycisk plus obok listy dostawców, żeby dodać niestandardowego dostawcę, nadaj mu nazwę (APIsRouter), a w nowszych buildach wybierz format OpenAI API, gdy zapyta o to okno dialogowe (Jan v0.8.1 dodał selektor formatu OpenAI-albo-Anthropic; dla bramki wybierz OpenAI). Potem wypełnij dwa pola, które mają znaczenie: Base URL https://api.apisrouter.com/v1 i Twój klucz API. Dodaj modele, które chcesz, po identyfikatorze: dokumentacja Jan wprost mówi, że właściwość id musi zgadzać się z nazwą modelu obsługiwaną przez endpoint, więc kopiuj identyfikatory z listingu katalogu (claude-sonnet-4-6, gpt-5.4-mini, gemini-3.5-flash), zamiast wpisywać je z pamięci. Zapisz, a identyfikatory pojawią się w selektorze modeli obok tego, co uruchamiasz lokalnie. Etykiety przesuwały się między wydaniami (starsze wersje nazywały ten obszar Remote Engines), więc traktuj dostawcę, format, URL, klucz, modele jako stabilny szkielet.

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

Jak Jan traktuje zdalnych dostawców.

Jan (menloresearch na GitHubie, około 44 tys. gwiazdek) to desktopowy klient local-first: modele pobierają się na Twoją maszynę, działają przez llama.cpp i pracują offline, a aplikacja eksponuje nawet własny serwer kompatybilny z OpenAI pod http://127.0.0.1:1337/v1 dla innych narzędzi. Zdalni dostawcy to celowy drugi pas ruchu, dla modeli zbyt dużych, żeby działać lokalnie, albo zadań zasługujących na jakość frontier. Niestandardowy dostawca w formacie OpenAI to zwykły opis endpointu: base URL, klucz, zadeklarowane identyfikatory modeli. Rozmowy z tymi identyfikatorami wychodzą jako standardowe żądania chat-completions z identyfikatorem jako stringiem modelu, więc wielodostawcowa bramka potrzebuje dokładnie jednego wpisu. Claude do starannego pisania, DeepSeek do wolumenowego streszczania, Gemini do szybkości, jeden klucz za nimi wszystkimi. Filozoficzne dopasowanie jest lepsze, niż brzmi na pierwszy rzut oka. Użytkownicy local-first mają tendencję do bycia świadomymi tego, co opuszcza maszynę, a bramka utrzymuje zdalny pas ruchu równie świadomym: jeden endpoint do firewallowania, jeden log użycia do czytania, jedno saldo, które rusza się tylko wtedy, gdy zdecydujesz się coś wysłać na zewnątrz. Nic w lokalnym pasie ruchu się nie zmienia; Twoje pobrane modele nadal działają offline dokładnie jak wcześniej.

Deklarowanie modeli: kontrakt identyfikatora.

Jan nie pobiera za Ciebie katalogu niestandardowego endpointu; modele, które deklarujesz, to modele, które dostajesz, a identyfikator jest kontraktem. Autorytatywny zapis pochodzi z listingu /v1/models bramki, łącznie z sufiksami wersji. Zadeklarowany identyfikator, który odjeżdża od listingu, produkuje błędy not-found tylko wtedy, gdy ten model jest wybrany, co czyta się jak niestabilny dostawca, dopóki nie porównasz stringów. Deklaruj świadomie. Picker local-first działa najlepiej, gdy zdalne wiersze są nieliczne i celowe: jeden szybki identyfikator na codzienne zdalne tury (gpt-5.4-mini albo claude-haiku-4-5-20251001), jeden identyfikator frontier na pracę uzasadniającą opuszczenie maszyny (claude-sonnet-4-6) i dowolny specjalista, na jakiego zasługuje Twoje obciążenie (deepseek-v4-flash na długie wielojęzyczne streszczenia, gemini-3.5-flash, gdy latencja jest funkcją). Każdy wiersz łatwo dodać później; wklejony cały katalog to szum, który codziennie przewijasz. Jeśli używasz też lokalnego serwera API Jan do obsługi innych narzędzi, trzymaj model myślowy w porządku: ten serwer to Jan będący dostawcą pod 127.0.0.1:1337/v1; wpis niestandardowego dostawcy to Jan będący klientem. Te dwie rzeczy są niezależne, a konfigurowanie jednej nigdy nie wpływa na drugą.

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

Dobór, które rozmowy opuszczają maszynę.

Ponieważ zdalne użycie jest przedpłacone i mierzone per klucz, koszt zdalnego pasa ruchu to liczba, którą czytasz, a nie subskrypcja, którą zgadujesz. Uruchom miesiąc swojego rzeczywistego podziału, a log użycia powie Ci dokładnie, ile kosztuje opuszczenie maszyny, per model, per dzień.

  • Codzienne zdalne tury, szybkie pytania, przepisywanie, tłumaczenia, należą do szybkiego poziomu: gpt-5.4-mini i claude-haiku-4-5-20251001 odpowiadają szybko i utrzymują saldo niemal w bezruchu.
  • claude-sonnet-4-6 to krok w górę dla pracy, z którą lokalny model widocznie sobie nie radzi: długie, staranne szkicowanie, subtelny przegląd kodu, analiza, którą przekażesz dalej.
  • gemini-3.5-flash zasługuje na swój wiersz dzięki latencji; przy krótkich interaktywnych turach jest najbliższy responsywności modelu lokalnego.
  • deepseek-v4-flash to wolumenowy wybór do streszczania długich dokumentów, których nie podałbyś małemu modelowi lokalnemu.
  • Trzymaj prywatne materiały wyłącznie na modelach lokalnych; podział między pasami ruchu jest właśnie sensem uruchamiania Jan.

Płatność za użycie · poniżej cen oficjalnych

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

ModelCena oficjalnaNasza cena
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

Tryby awarii charakterystyczne dla Jan.

Błędy not-found na konkretnym modelu to kontrakt identyfikatora: zadeklarowany identyfikator nie zgadza się z zapisem endpointu. Porównaj z wynikiem /v1/models znak w znak. Błędy uwierzytelniania przy każdym żądaniu to pole klucza. Dostawca, który się zapisuje, ale nigdy nie odpowiada, zwykle ma problem z Base URL: sufiks /v1 musi być obecny, ponieważ Jan dokleja ścieżki tras, takie jak /chat/completions, do bazy, którą podajesz, a zdublowany albo brakujący segment daje 404. Jeśli dostawca został utworzony na starszym buildzie, sprawdź format API: v0.8.1 wprowadził selektor OpenAI-albo-Anthropic, a wpis bramki przypadkiem ustawiony na format Anthropic mówi złym dialektem do endpointu /v1/chat/completions. I pamiętaj, który pas ruchu debugujesz. Awarie modelu lokalnego (VRAM, kwantyzacja, ustawienia llama.cpp) i awarie zdalne (URL, klucz, identyfikatory) dzielą okno czatu, ale nic więcej; selektor modelu pokazuje, do którego pasa ruchu należy zawodząca rozmowa, zanim zaczniesz ciągnąć za zły wątek.

Kto dodaje pas ruchu bramki do Jan.

  • Użytkownicy local-first, którzy okazjonalnie potrzebują jakości frontier i chcą, żeby ten okazjonalny pas ruchu był na przedpłaconym saldzie zamiast subskrypcji u dostawcy.
  • Deweloperzy na maszynach, które nie radzą sobie dobrze z dużymi modelami lokalnymi, używający Jan jako interfejsu, a bramki do ciężkiej pracy.
  • Świadomi prywatności użytkownicy, którzy chcą mieć dokładnie jeden zdalny endpoint do rozważenia, firewallowania i audytu, zamiast jednego na każdego dostawcę.
  • Ludzie porównujący wynik lokalny kontra chmurowy na rzeczywistych zadaniach, gdzie zdalni kandydaci to zadeklarowane wiersze, nie nowe konta.
  • Deweloperzy bez dostępu do rozliczeń danego dostawcy. Dostęp oparty na doładowaniu, bez wymogu karty, usuwa zależność od rejestracji u każdego dostawcy z osobna.

Zweryfikuj endpoint i debuguj pierwszą zdalną turę.

Odpytaj curlem listing modeli i jedno chat completion najpierw; gdy oba przejdą, wszystko, co zostało, jest we wpisie dostawcy. To też daje Ci dokładne zapisy identyfikatorów do zadeklarowania. Wewnątrz Jan wyślij jedną krótką wiadomość na szybkim zdalnym identyfikatorze. Błędy uwierzytelniania to klucz; not-found to identyfikator; cisza albo 404 to kształt Base URL. Jeśli zdalny pas ruchu działa, ale wydaje się wolny na identyfikatorze frontier, to latencja modelu, nie problem konfiguracji; modele rozumujące poświęcają swój czas na długie tury. Gdy zdalne tury już płyną, konsola APIsRouter pokazuje model per żądanie, liczbę tokenów i wydatki. Dla użytkownika local-first ten log jest niezwykle satysfakcjonującą lekturą: to kompletny zapis wszystkiego, co kiedykolwiek opuściło maszynę, per model, per dzień, przy czym lokalny pas ruchu wnosi do tego dokładnie zero.

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"}]}'

Częste pytania

Jak dodać niestandardowego dostawcę kompatybilnego z OpenAI do Jan?

Settings, Model Providers, a potem przycisk plus, żeby dodać dostawcę. Nadaj mu nazwę, wybierz format OpenAI API na buildach, które o to pytają (v0.8.1+), ustaw Base URL https://api.apisrouter.com/v1, wklej swój klucz i zadeklaruj identyfikatory modeli zgodne z listingiem endpointu.

Dlaczego mój zadeklarowany model zwraca not-found?

Jan wysyła zadeklarowany identyfikator dosłownie jako string modelu, a jego dokumentacja wymaga, żeby identyfikator dokładnie zgadzał się z nazwą modelu endpointu. Pobierz listing /v1/models i skopiuj zapis, łącznie z sufiksami wersji, zamiast wpisywać identyfikatory z pamięci.

Czy dodanie zdalnego dostawcy zmienia działanie modeli lokalnych?

Nie. Modele lokalne nadal działają na urządzeniu przez llama.cpp, offline włącznie. Wpis dostawcy dodaje osobny zdalny pas ruchu do selektora, a rozmowy dotykają sieci tylko wtedy, gdy wybierzesz zdalny identyfikator.

Czy Base URL powinien zawierać /v1?

Tak: https://api.apisrouter.com/v1. Jan dokleja trasy, takie jak /chat/completions, do bazy, którą skonfigurujesz, więc brak /v1 daje 404 i zdublowany też. Jeśli żądania zawodzą, przeczytaj złożony URL w błędzie, zanim zmienisz cokolwiek innego.

Czy Jan może dosięgnąć Claude i Gemini przez jeden wpis dostawcy?

Tak. W formacie OpenAI identyfikator modelu podróżuje jako zwykły string, więc claude-sonnet-4-6, gemini-3.5-flash, gpt-5.4-mini i deepseek-v4-flash mogą wszystkie zostać zadeklarowane pod jednym wpisem, rozliczane przez jeden klucz i przełączane per rozmowa.

Czy to to samo co lokalny serwer API Jan?

Nie. Lokalny serwer pod 127.0.0.1:1337/v1 to Jan obsługujący swoje lokalne modele dla innych narzędzi. Wpis niestandardowego dostawcy to Jan konsumujący zdalny endpoint. To niezależne funkcje, które akurat dzielą format przesyłu OpenAI.