Спрямуйте NextChat на кастомний OpenAI-сумісний ендпоінт.

Updated 2026-07-29

NextChat перевизначає свій API-хост однією змінною середовища BASE_URL на серверних деплоях або внутрішнім кастомним ендпоінтом у Settings на клієнтах. Додайте id каталогу через CUSTOM_MODELS із суфіксом @OpenAI — і Claude, Gemini та DeepSeek з'являться в тому самому селекторі моделей під одним ключем.

Коротка відповідь: BASE_URL, один ключ і список моделей.

На серверному деплої (Vercel, Docker чи голий Node) усю роботу виконують три змінні середовища. BASE_URL перевизначає, куди йдуть API-запити; README описує це як «override openai api request base url» зі значенням за замовчуванням https://api.openai.com, і значення вводиться без /v1, оскільки NextChat сам додає шлях запиту. OPENAI_API_KEY несе ключ шлюзу. CUSTOM_MODELS керує селектором моделей: плюс додає модель, мінус приховує одну, -all очищає типовий список, а name=displayName перейменовує запис. Деталь, що робить мультивендорні id робочими, — суфікс провайдера. NextChat постачається з окремими шляхами клієнтського коду для кількох вендорів, тож голий id Claude, доданий у CUSTOM_MODELS, може випливти під шляхом Anthropic, який очікує інший ключ і формат запиту. Додавання @OpenAI до id, як у +claude-sonnet-4-6@OpenAI, закріплює модель за OpenAI-сумісним шляхом, тож запит іде до вашого BASE_URL у стандартному форматі chat-completions незалежно від того, який вендор тренував модель.

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-6

Як NextChat резолвить свій ендпоінт.

NextChat (ChatGPTNextWeb на GitHub, приблизно 88 тис. зірок) — один із найпоширеніших чат-фронтендів у світі: легкий веб-застосунок з деплоєм на Vercel в один клік плюс упаковані клієнти для iOS, macOS, Android, Windows і Linux. Його популярність пояснюється саме тим механізмом, який використовує ця сторінка, — усе є поверхнею конфігурації, а ендпоінт — просто ще одне налаштування. Таких поверхонь дві. Серверні деплої зчитують змінні середовища при збірці й запуску: BASE_URL вирішує хост, OPENAI_API_KEY автентифікує, а CUSTOM_MODELS формує селектор для кожного користувача цього деплою. Клієнти й веб-UI додатково пропонують шлях у самому застосунку: Settings, Model Provider, обрати OpenAI, потім заповнити поля ендпоінта й ключа та перелічити додаткові id у полі кастомних назв моделей. Шлях у застосунку зберігає значення локально на пристрої, що робить його правильною поверхнею для особистого клієнта, тоді як змінні середовища — правильна поверхня для деплою, яким користуються інші люди. У будь-якому разі запит, що виходить з NextChat, — це стандартний chat completion до вашого ендпоінта з id моделі як звичайним рядком. З мультивендорним шлюзом за BASE_URL той самий деплой обслуговує Claude для довгих відповідей, швидкий id Gemini для швидких питань і DeepSeek чи GLM для двомовного трафіку — усе під одним ключем.

Повне налаштування: серверний деплой чи налаштування в застосунку.

Для деплою на Vercel встановіть змінні в налаштуваннях середовища проєкту й передеплойте; Vercel запікає значення середовища під час збірки, тож редагування змінної без передеплою нічого не змінює. Для Docker передайте ті самі змінні прапорцями -e чи файлом середовища. Змінну CODE варто встановити на будь-якому публічному деплої — вона захищає доступ паролем, щоб сторонні не витрачали ваш ключ. Шлях у застосунку взагалі не потребує деплою. У Settings оберіть провайдера OpenAI, замініть ендпоінт на https://api.apisrouter.com, вставте ключ і додайте id в полі кастомних назв моделей за тим самим синтаксисом, що й змінна середовища. Саме так десктопний і мобільний клієнти працюють зі шлюзом, і це також найшвидший спосіб протестувати значення, перш ніж закріплювати їх у серверному деплої. DEFAULT_MODEL обирає, з чого починаються нові чати, а це має більше значення, ніж здається, на спільному деплої: більшість користувачів ніколи не змінюють модель, тож типовий id — те місце, куди потрапляє більшість витрат. Встановлюйте його свідомо на модель, яку хочете нести повсякденний трафік.

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-web

Вибір моделей для селектора.

Оскільки весь селектор оплачується через один ключ, цикл налаштування — спостережний: прогоніть тиждень, прочитайте використання по моделях у консолі й перебудуйте CUSTOM_MODELS навколо того, що люди справді натискали, а не того, що ви передбачали.

  • Починайте список з -all. Стандартний селектор — довге меню лише з OpenAI; очищення його та додавання чотирьох-п'яти свідомих id дає користувачам селектор, де кожен вибір — той, що ви оцінили.
  • Типова модель несе весь деплой. claude-haiku-4-5-20251001 чи gemini-3.5-flash як DEFAULT_MODEL тримають переважну більшість повсякденних ходів швидкими й недорогими, а сильніші id — на відстані одного кліку.
  • Довга робота заслуговує на слот фронтиру. claude-sonnet-4-6 і gpt-5.5 — вибір користувачів, коли важливі чернетка чи аналіз.
  • Двомовні деплої мають включати deepseek-v4-pro чи glm-5.2; NextChat має величезну китаємовну базу користувачів, і ці id природно підходять цьому трафіку.
  • Перейменування — безкоштовна документація: записи на кшталт claude-sonnet-4-6=Sonnet (writing) роблять селектор самопояснювальним для нетехнічних користувачів.

Оплата за фактом · нижче офіційних цін

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

МодельОфіційна цінаНаша ціна
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

Збої, специфічні саме для NextChat.

Помилка з /v1 йде в протилежному напрямку від більшості інструментів. NextChat сам додає шлях запиту до BASE_URL, тож значення належить без /v1; вставлення https://api.apisrouter.com/v1 дає подвоєні шляхи, що падають з 404. Інструменти на кшталт LibreChat очікують /v1 включеним, і саме тому люди носять неправильну звичку в обидва боки. Id Claude, що дає помилки про ключі чи заголовки, — це відсутній суфікс @OpenAI. Без нього NextChat може маршрутизувати id через свій нативний шлях Anthropic, який ніколи не звертається до BASE_URL для вашого шлюзу й очікує автентифікацію у форматі вендора. Закріплюйте кожен id шлюзу через @OpenAI — і всі запити підуть сумісним шляхом. Редагування середовища, що нічого не змінюють, — це проблема передеплою. На Vercel змінні зчитуються при збірці; на Docker контейнер потребує перестворення. Налаштування в застосунку, навпаки, застосовуються негайно, але лише на цьому пристрої — це інша половина тієї самої плутанини. CODE і OPENAI_API_KEY на диво часто плутають. CODE — це пароль доступу, який користувачі вводять в UI; ключ — те, чим витрачає сервер. Якщо користувачі повідомляють про сторінку неавторизованого доступу до будь-якого чату, це CODE; якщо чати падають проти ендпоінта, це ключ.

Хто спрямовує NextChat через шлюз.

  • Люди, що запускають особистий деплой на Vercel і хочуть один вимірюваний ключ за ним замість підписки на кожного вендора.
  • Невеликі команди, що діляться інстансом NextChat, використовуючи CODE для контролю доступу й один ключ шлюзу, тож лог використання подвоює звіт про витрати.
  • Користувачі десктопних і мобільних клієнтів, що спрямовують внутрішній ендпоінт на шлюз, щоб дістатися Claude, Gemini і DeepSeek з одного селектора на кожному пристрої.
  • Двомовні користувачі, що змішують id GLM і DeepSeek з Claude і GPT в одному деплої, що нативні силоси провайдерів роблять незручним.
  • Розробники без доступу до білінгу певного постачальника. Доступ на основі поповнення без вимоги картки прибирає залежність від реєстрації в кожного провайдера.

Перевірте ендпоінт і налагодьте перший чат.

Доведіть ендпоінт перед деплоєм: перелічіть моделі з ключем і підтвердіть, що кожен id, який плануєте вписати в CUSTOM_MODELS, з'являється, написаний точно. Id пересилаються як рядки, тож вивід /v1/models — авторитетне написання. Потім задеплойте й надішліть по одному повідомленню на кожну модель у селекторі. 404 на всьому — це помилка з /v1 у BASE_URL. 401 — це ключ, або неправильний, або відсутній у середовищі, яке фактично використала збірка. Помилка лише на id Claude — це відсутній суфікс @OpenAI. Селектор, що показує моделі, які ви ніколи не додавали, означає, що CUSTOM_MODELS втратив префікс -all, або змінна не дісталася збірки. Щойно чати потечуть, консоль APIsRouter показує модель на запит, кількість токенів і витрати. Для деплою з більш ніж одним користувачем цей вигляд відповідає на питання, яке рано чи пізно ставить кожен адмін NextChat — яка модель тихо з'їдає баланс — даними, а не здогадками.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50

Поширені запитання

Чи має BASE_URL NextChat включати /v1?

Ні. NextChat сам додає шлях запиту, тож встановіть BASE_URL=https://api.apisrouter.com без /v1. Включення його дає подвоєні шляхи, що падають з 404. Це протилежна домовленість до таких інструментів, як LibreChat, які очікують /v1 у base URL.

Як додати моделі Claude чи Gemini до NextChat через один ендпоінт?

Додайте їх у CUSTOM_MODELS із суфіксом @OpenAI, наприклад +claude-sonnet-4-6@OpenAI. Суфікс закріплює id за OpenAI-сумісним шляхом запиту, тож він іде на ваш BASE_URL, а не на нативні шляхи клієнта NextChat для Anthropic чи Google.

Яка різниця між змінними середовища й налаштуваннями в застосунку?

Змінні середовища налаштовують серверний деплой для кожного користувача й вимагають передеплою для зміни. Внутрішній кастомний ендпоінт у Settings зберігає значення локально на пристрої й застосовується негайно, що підходить для особистих десктопних і мобільних клієнтів.

Як прибрати типовий список моделей OpenAI з селектора?

Почніть CUSTOM_MODELS з -all, потім додайте id явно: CUSTOM_MODELS=-all,+claude-sonnet-4-6@OpenAI,+gpt-5.5@OpenAI. Користувачі тоді бачать лише моделі, які ви свідомо перелічили й оцінили.

Що робить змінна CODE?

Вона встановлює один чи кілька паролів доступу для деплою. Відвідувачі мають ввести код перед чатом, що не дає публічному URL на Vercel витрачати ваш ключ. Вона не пов'язана з самим API-ключем.

Чому зміна змінної середовища не мала ефекту?

NextChat зчитує значення середовища при збірці чи запуску контейнера. На Vercel відредагуйте змінну й передеплойте; на Docker перестворіть контейнер. Лише налаштування в застосунку застосовуються без перезапуску, і вони живуть на кожному пристрої окремо.