Wskaż NextChat na niestandardowy endpoint kompatybilny z OpenAI.
Updated 2026-07-29
NextChat nadpisuje swojego hosta API jedną zmienną środowiskową BASE_URL na wdrożeniach serwerowych, albo niestandardowym endpointem w aplikacji, w Settings na klientach. Dodaj identyfikatory z katalogu przez CUSTOM_MODELS z sufiksem @OpenAI, a Claude, Gemini i DeepSeek pojawią się w tym samym pickerze modeli pod jednym kluczem.
Szybka odpowiedź: BASE_URL, jeden klucz i lista modeli.
Na wdrożeniu serwerowym (Vercel, Docker albo zwykły Node) całą pracę wykonują trzy zmienne środowiskowe. BASE_URL nadpisuje, dokąd idą żądania API; README opisuje ją jako "override openai api request base url" z domyślną wartością https://api.openai.com, a wartość wpisuje się bez /v1, ponieważ NextChat sam dokleja ścieżkę żądania. OPENAI_API_KEY niesie klucz bramki. CUSTOM_MODELS kontroluje picker modeli: plus dodaje model, minus ukrywa jeden, -all czyści domyślną listę, a name=displayName zmienia nazwę wpisu. Szczegółem, który sprawia, że identyfikatory wielodostawcowe działają, jest sufiks dostawcy. NextChat dostarcza osobne ścieżki kodu klienckiego dla kilku dostawców, więc goły identyfikator claude dodany do CUSTOM_MODELS może wypłynąć pod ścieżką Anthropic, która oczekuje innego klucza i formatu żądania. Doklejenie @OpenAI do identyfikatora, jak w +claude-sonnet-4-6@OpenAI, przypina model do ścieżki kompatybilnej z OpenAI, więc żądanie trafia do Twojego BASE_URL w standardowym formacie chat-completions, niezależnie od tego, który dostawca trenował model.
BASE_URL=https://api.apisrouter.com # no /v1
OPENAI_API_KEY=sk-APIsRouter-...
CUSTOM_MODELS=-all,+claude-sonnet-4-6@OpenAI,+gpt-5.5@OpenAI,+deepseek-v4-pro@OpenAI
DEFAULT_MODEL=claude-sonnet-4-6Jak NextChat rozwiązuje swój endpoint.
NextChat (ChatGPTNextWeb na GitHubie, około 88 tys. gwiazdek) to jeden z najczęściej wdrażanych frontendów czatu w istnieniu: lekka aplikacja webowa z wdrożeniem na Vercel jednym kliknięciem, plus spakowani klienci dla iOS, macOS, Androida, Windowsa i Linuksa. Jej popularność bierze się dokładnie z mechanizmu, którego używa ta strona: wszystko jest powierzchnią konfiguracji, a endpoint to po prostu kolejne ustawienie. Są dwie takie powierzchnie. Wdrożenia serwerowe czytają zmienne środowiskowe przy buildzie i starcie: BASE_URL decyduje o hoście, OPENAI_API_KEY uwierzytelnia, a CUSTOM_MODELS kształtuje picker dla każdego użytkownika tego wdrożenia. Klienci i UI webowe dodatkowo eksponują ścieżkę w aplikacji: Settings, Model Provider, wybierz OpenAI, potem wypełnij pola endpointu i klucza i wylistuj dodatkowe identyfikatory w polu niestandardowych nazw modeli. Ścieżka w aplikacji przechowuje wartości lokalnie per urządzenie, co czyni ją właściwą powierzchnią dla osobistego klienta, podczas gdy zmienne środowiskowe są właściwą powierzchnią dla wdrożenia używanego przez innych ludzi. Tak czy inaczej, żądanie, które opuszcza NextChat, to standardowe chat completion względem Twojego endpointu z identyfikatorem modelu jako zwykłym stringiem. Z wielodostawcową bramką za BASE_URL to samo wdrożenie obsługuje Claude do długich odpowiedzi, szybki identyfikator Gemini do szybkich pytań i DeepSeek albo GLM do ruchu dwujęzycznego, wszystko przez jeden klucz.
Pełna konfiguracja: wdrożenie serwerowe albo ustawienia w aplikacji.
Dla wdrożenia na Vercel ustaw zmienne w ustawieniach środowiska projektu i wdróż ponownie; Vercel wypieka wartości środowiskowe przy buildzie, więc edycja zmiennej bez ponownego wdrożenia niczego nie zmienia. Dla Dockera przekaż te same zmienne flagami -e albo plikiem env. Warto ustawić zmienną CODE na każdym publicznym wdrożeniu; zabezpiecza dostęp hasłem, żeby obcy nie wydawali Twojego klucza. Ścieżka w aplikacji nie wymaga żadnego wdrożenia. W Settings wybierz dostawcę OpenAI, zamień endpoint na https://api.apisrouter.com, wklej klucz i dodaj identyfikatory w polu niestandardowych nazw modeli, używając tej samej składni co zmienna środowiskowa. Tak działają klienci desktopowi i mobilni z bramką, i to też najszybszy sposób, żeby przetestować wartości, zanim zacommitujesz je do wdrożenia serwerowego. DEFAULT_MODEL wybiera, na czym startują nowe czaty, co ma większe znaczenie, niż brzmi, na współdzielonym wdrożeniu: większość użytkowników nigdy nie zmienia modelu, więc identyfikator domyślny to miejsce, gdzie ląduje większość wydatków. Ustaw go świadomie na model, który ma nosić zwykły ruch.
docker run -d -p 3000:3000 \
-e BASE_URL=https://api.apisrouter.com \
-e OPENAI_API_KEY=$APISROUTER_API_KEY \
-e CUSTOM_MODELS="-all,+claude-sonnet-4-6@OpenAI,+claude-haiku-4-5-20251001@OpenAI,+gemini-3.5-flash@OpenAI" \
-e DEFAULT_MODEL=claude-haiku-4-5-20251001 \
-e CODE=your-access-password \
yidadaa/chatgpt-next-webDobór modeli do pickera.
Ponieważ cały picker rozlicza się przez jeden klucz, pętla dostrajania jest obserwacyjna: uruchom tydzień, przeczytaj użycie per model w konsoli i przekształć CUSTOM_MODELS wokół tego, co ludzie faktycznie kliknęli, zamiast tego, co przewidziałeś.
- Zacznij listę od -all. Fabryczny picker to długie menu tylko z OpenAI; wyczyszczenie go i dodanie czterech albo pięciu celowych identyfikatorów daje użytkownikom picker, gdzie każdy wybór jest tym, który wyceniłeś.
- Model domyślny niesie wdrożenie. claude-haiku-4-5-20251001 albo gemini-3.5-flash jako DEFAULT_MODEL utrzymuje zwykłą większość tur szybką i tanią, z silniejszymi identyfikatorami o jedno kliknięcie dalej.
- Długoformowa praca zasługuje na slot frontier. claude-sonnet-4-6 i gpt-5.5 to wybory, po które sięgają użytkownicy, gdy liczy się szkic albo analiza.
- Dwujęzyczne wdrożenia powinny obejmować deepseek-v4-pro albo glm-5.2; NextChat ma ogromną chińskojęzyczną bazę instalacji, a te identyfikatory pasują do tego ruchu natywnie.
- Zmiany nazw to darmowa dokumentacja: wpisy w stylu claude-sonnet-4-6=Sonnet (pisanie) czynią picker samowyjaśniającym się dla nietechnicznych użytkowników.
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.
| Model | Cena oficjalna | Nasza cena |
|---|---|---|
| Claude Sonnet 4.6 | $3.00 / $15.00 per M | $2.40 / $12.00 per M |
| Claude Haiku 4.5 20251001 | $1.00 / $5.00 per M | $0.80 / $4.00 per M |
| GPT-5.5 | $5.00 / $30.00 per M | $4.00 / $24.00 per M |
| Gemini 3.5 Flash | $1.50 / $9.00 per M | $1.20 / $7.20 per M |
| GLM-5.2 | $1.14 / $4.00 per M | $1.10 / $4.00 per M |
Tryby awarii charakterystyczne dla NextChat.
Błąd /v1 działa w przeciwnym kierunku niż w większości narzędzi. NextChat sam dokleja ścieżkę żądania do BASE_URL, więc wartość należy wpisać bez /v1; wklejenie https://api.apisrouter.com/v1 produkuje zdublowane ścieżki, które dają 404. Narzędzia takie jak LibreChat oczekują /v1 włączonego, dlatego dokładnie ludzie noszą zły nawyk w obu kierunkach. Identyfikator Claude, który zgłasza błąd o kluczach albo nagłówkach, to brakujący sufiks @OpenAI. Bez niego NextChat może skierować identyfikator przez swoją natywną ścieżkę Anthropic, która nigdy nie konsultuje BASE_URL Twojej bramki i oczekuje uwierzytelniania w formacie dostawcy. Przypnij każdy identyfikator bramki @OpenAI, a żądania wszystkie wezmą ścieżkę kompatybilną. Edycje środowiska, które nic nie zmieniają, to problem ponownego wdrożenia. Na Vercel zmienne są czytane przy buildzie; na Dockerze kontener trzeba odtworzyć. Ustawienia w aplikacji, w przeciwieństwie, stosują się natychmiast, ale tylko na tym urządzeniu, co jest drugą połową tego samego zamieszania. CODE i OPENAI_API_KEY są zaskakująco często mylone. CODE to hasło dostępu, które użytkownicy wpisują w UI; klucz to to, co wydaje serwer. Jeśli użytkownicy zgłaszają stronę unauthorized, zanim dojdzie do jakiegokolwiek czatu, to CODE; jeśli czaty zawodzą względem endpointu, to klucz.
Kto kieruje NextChat przez bramkę.
- Ludzie prowadzący osobiste wdrożenie na Vercel, którzy chcą jednego mierzonego klucza za nim zamiast subskrypcji na każdego dostawcę.
- Małe zespoły dzielące instancję NextChat, używające CODE do kontroli dostępu i jednego klucza bramki, żeby log użycia pełnił jednocześnie funkcję raportu kosztów.
- Użytkownicy klientów desktopowych i mobilnych wskazujący endpoint w aplikacji na bramkę, żeby dosięgnąć Claude, Gemini i DeepSeek z jednego pickera na każdym urządzeniu.
- Dwujęzyczni użytkownicy mieszający identyfikatory GLM i DeepSeek z Claude i GPT w jednym wdrożeniu, co natywne silosy dostawców czynią niezręcznym.
- 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 pierwszy czat.
Udowodnij endpoint przed wdrożeniem: wylistuj modele kluczem i potwierdź, że każdy identyfikator, który planujesz umieścić w CUSTOM_MODELS, pojawia się, zapisany dokładnie. Identyfikatory są przekazywane jako stringi, więc wynik /v1/models jest autorytatywnym zapisem. Potem wdróż i wyślij jedną wiadomość na model w pickerze. 404 na wszystkim to błąd /v1-w-BASE_URL. 401 to klucz, albo zły, albo nieobecny w środowisku, którego build faktycznie użył. Błąd tylko na identyfikatorach Claude to brakujący sufiks @OpenAI. Picker pokazujący modele, których nigdy nie dodałeś, oznacza, że CUSTOM_MODELS zgubił swój prefiks -all albo zmienna nie dotarła do builda. Gdy czaty już płyną, konsola APIsRouter pokazuje model per żądanie, liczbę tokenów i wydatki. Dla wdrożenia z więcej niż jednym użytkownikiem ten widok odpowiada na pytanie, które w końcu zadaje każdy administrator NextChat: który model po cichu zjada saldo, danymi zamiast domysłów.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50Częste pytania
Czy BASE_URL w NextChat powinien zawierać /v1?
Nie. NextChat sam dokleja ścieżkę żądania, więc ustaw BASE_URL=https://api.apisrouter.com bez /v1. Włączenie go produkuje zdublowane ścieżki, które dają 404. To odwrotna konwencja niż w narzędziach takich jak LibreChat, które oczekują /v1 w base URL.
Jak dodać modele Claude albo Gemini do NextChat przez jeden endpoint?
Dodaj je w CUSTOM_MODELS z sufiksem @OpenAI, na przykład +claude-sonnet-4-6@OpenAI. Sufiks przypina identyfikator do ścieżki żądania kompatybilnej z OpenAI, więc trafia do Twojego BASE_URL, zamiast do natywnych ścieżek klienckich NextChat dla Anthropic albo Google.
Jaka jest różnica między zmiennymi środowiskowymi a ustawieniami w aplikacji?
Zmienne środowiskowe konfigurują wdrożenie serwerowe dla każdego użytkownika i wymagają ponownego wdrożenia, żeby je zmienić. Niestandardowy endpoint w aplikacji w Settings przechowuje wartości lokalnie per urządzenie i stosuje się natychmiast, co pasuje do osobistych klientów desktopowych i mobilnych.
Jak usunąć domyślną listę modeli OpenAI z pickera?
Zacznij CUSTOM_MODELS od -all, a potem dodaj identyfikatory jawnie: CUSTOM_MODELS=-all,+claude-sonnet-4-6@OpenAI,+gpt-5.5@OpenAI. Użytkownicy widzą wtedy tylko modele, które celowo wylistowałeś i wyceniłeś.
Co robi zmienna CODE?
Ustawia jedno albo więcej haseł dostępu dla wdrożenia. Odwiedzający muszą wpisać kod przed czatowaniem, co powstrzymuje publiczny URL na Vercel przed wydawaniem Twojego klucza. Nie ma to związku z samym kluczem API.
Dlaczego zmiana zmiennej środowiskowej nie dała efektu?
NextChat czyta wartości środowiskowe przy buildzie albo starcie kontenera. Na Vercel edytuj zmienną i wdróż ponownie; na Dockerze odtwórz kontener. Tylko ustawienia w aplikacji stosują się bez restartu, i te żyją per urządzenie.