Ituro ang NextChat sa isang custom OpenAI-compatible endpoint.
Updated 2026-07-29
Ini-override ng NextChat ang API host nito gamit ang isang BASE_URL environment variable sa mga server deploy, o isang in-app na custom endpoint sa Settings sa mga client. Idagdag ang mga id ng katalogo sa pamamagitan ng CUSTOM_MODELS gamit ang @OpenAI suffix at lumilitaw ang Claude, Gemini, at DeepSeek sa parehong model picker sa ilalim ng isang key.
Mabilisang sagot: BASE_URL, isang key, at isang models list.
Sa isang server deploy (Vercel, Docker, o plain Node), tatlong environment variable ang gumagawa ng buong trabaho. Ini-override ng BASE_URL kung saan pupunta ang mga API request; inilalarawan ito ng README bilang "override openai api request base url" na may default na https://api.openai.com, at inilalagay ang value nang walang /v1 dahil ini-append mismo ng NextChat ang request path. Ang OPENAI_API_KEY ang nagdadala ng gateway key. Kinokontrol ng CUSTOM_MODELS ang model picker: nagdadagdag ng model ang plus, nagtatago ng isa ang minus, nililinis ng -all ang default na listahan, at pinapalitan ng pangalan ng name=displayName ang isang entry. Ang detalyeng nagpapagana sa mga multi-vendor na id ay ang provider suffix. Magkahiwalay na client code path para sa ilang vendor ang binabaon ng NextChat, kaya ang isang bare na claude id na idinagdag sa CUSTOM_MODELS ay maaaring lumitaw sa Anthropic path, na umaasa sa ibang key at request format. Ang pagdadagdag ng @OpenAI sa id, tulad ng +claude-sonnet-4-6@OpenAI, ay nagpipin sa model sa OpenAI-compatible na path kaya pumupunta ang request sa BASE_URL mo sa standard chat-completions format anuman ang vendor na nag-train ng 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-6Paano nire-resolve ng NextChat ang endpoint nito.
Ang NextChat (ChatGPTNextWeb sa GitHub, humigit-kumulang 88K stars) ay isa sa pinaka-na-deploy na chat frontend na umiiral: isang magaang web app na may one-click na Vercel deployment kasama ang mga packaged client para sa iOS, macOS, Android, Windows, at Linux. Ang popularidad nito ay nagmumula mismo sa mekanismong ginagamit ng pahinang ito, ang lahat ay configuration surface, at ang endpoint ay isa lamang setting. May dalawang surface na iyon. Binabasa ng mga server deploy ang mga environment variable sa build at boot: ang BASE_URL ang nagdedesisyon sa host, ang OPENAI_API_KEY ang nagpapatunay, at ang CUSTOM_MODELS ang humuhubog sa picker para sa bawat user ng deployment na iyon. Inilalantad din ng mga client at web UI ang isang in-app na path: Settings, Model Provider, piliin ang OpenAI, pagkatapos ay punan ang mga field ng endpoint at key at ilista ang mga karagdagang id sa custom model names field. Naka-store nang lokal per device ang mga value ng in-app na path, kaya ito ang tamang surface para sa isang personal na client, habang ang mga env var ang tamang surface para sa isang deployment na ginagamit ng ibang tao. Alinman diyan, ang request na umaalis sa NextChat ay isang standard chat completion laban sa endpoint mo gamit ang model id bilang plain string. Sa isang multi-vendor gateway sa likod ng BASE_URL, naglilingkod ang parehong deployment ng Claude para sa mahahabang sagot, isang mabilis na id ng Gemini para sa mabilisang tanong, at DeepSeek o GLM para sa bilingual na traffic, lahat sa pamamagitan ng isang key.
Buong setup: server deploy o in-app settings.
Para sa Vercel deploy, itakda ang mga variable sa environment settings ng project at i-redeploy; ini-bake ng Vercel ang mga env value sa build, kaya walang binabago ang pag-edit ng variable nang walang redeploy. Para sa Docker, ipasa ang parehong mga variable gamit ang -e flags o isang env file. Sulit itakda ang CODE variable sa anumang public na deployment, pinapaharangan nito ng password ang access kaya hindi magagastos ng estranghero ang key mo. Walang kailangang deployment ang in-app na path. Sa Settings, piliin ang OpenAI provider, palitan ang endpoint ng https://api.apisrouter.com, i-paste ang key, at magdagdag ng mga id sa custom model names field gamit ang parehong syntax ng env variable. Ganito gumagana ang desktop at mobile na client sa isang gateway, at ito rin ang pinakamabilis na paraan para subukan ang mga value bago ikinabit sa isang server deploy. Pinipili ng DEFAULT_MODEL kung ano ang sinisimulan ng mga bagong chat, na mas mahalaga kaysa sa tunog nito sa isang shared na deployment: hindi kailanman pinapalitan ng karamihan ng user ang model, kaya ang default na id ang lugar kung saan napupunta ang karamihan ng gastos. Itakda ito nang sinasadya sa model na gusto mong magdala ng casual na traffic.
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-webPagpili ng mga model para sa picker.
Dahil bini-bill ang buong picker sa isang key, ang tuning loop ay observational: magpatakbo nang isang linggo, basahin ang per-model na usage sa console, at hubugin muli ang CUSTOM_MODELS ayon sa talagang kinlik ng mga tao sa halip na sa hinulaan mo.
- Simulan ang listahan gamit ang -all. Mahaba ang stock picker na menu na OpenAI lamang; ang paglinis dito at pagdadagdag ng apat o limang sinasadyang id ay nagbibigay sa mga user ng picker kung saan bawat pagpili ay isang pinresyuhan mo.
- Ang default model ang nagdadala sa deployment. Pinapanatili ng claude-haiku-4-5-20251001 o gemini-3.5-flash bilang DEFAULT_MODEL na mabilis at mura ang karamihan ng casual na turns, na may mas malalakas na id na isang click lang ang layo.
- Karapat-dapat sa isang frontier na slot ang long-form na trabaho. Ang claude-sonnet-4-6 at gpt-5.5 ang mga pili ng mga user kapag mahalaga ang isang draft o analysis.
- Dapat isama ng mga bilingual na deployment ang deepseek-v4-pro o glm-5.2; malaki ang install base ng NextChat na Chinese-speaking at natural na akma ang mga id na iyon sa traffic na iyon.
- Libreng dokumentasyon ang mga rename: gumagawa ng mga entry na tulad ng claude-sonnet-4-6=Sonnet (writing) ang isang picker na self-explanatory para sa mga di-technical na user.
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 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 |
Mga failure mode na specific sa NextChat.
Kabaligtaran ng direksyon ng karamihan ng tools ang pagkakamali sa /v1. Ini-append mismo ng NextChat ang request path sa BASE_URL, kaya walang /v1 ang value; ang pag-paste ng https://api.apisrouter.com/v1 ay gumagawa ng doble-doble na path na nagbibigay ng 404. Umaasa ang mga tool tulad ng LibreChat na kasama ang /v1 sa base URL, kung kaya't dinadala ng mga tao ang maling gawi sa parehong direksyon. Ang isang id ng Claude na nagbibigay ng error tungkol sa keys o headers ay ang kulang na @OpenAI suffix. Kung wala ito, maaaring i-route ng NextChat ang id sa pamamagitan ng native nitong Anthropic path, na kailanman hindi kumukonsulta sa BASE_URL para sa gateway mo at umaasa sa vendor-format na authentication. I-pin ang bawat gateway id gamit ang @OpenAI at kukunin ng lahat ng request ang compatible na path. Problema sa redeploy ang mga env edit na walang binabago. Sa Vercel, binabasa ang mga variable sa build; sa Docker, kailangang gawin ulit ang container. Kabaliktaran, agad na kumakabisa ang in-app settings pero sa device na iyon lamang, na siyang kabilang kalahati ng parehong kalituhan. Kadalasang napagpapalit ang CODE at OPENAI_API_KEY. Ang CODE ang access password na tina-type ng mga user sa UI; ang key ang ginagastos ng server. Kung nag-uulat ang mga user ng unauthorized na pahina bago pa man mag-chat, iyon ang CODE; kung nabibigo ang mga chat laban sa endpoint, iyon ang key.
Sino ang nagru-route ng NextChat sa pamamagitan ng isang gateway.
- Mga taong nagpapatakbo ng personal na deployment sa Vercel na gustong magkaroon ng isang metered na key sa likod nito sa halip na subscription per vendor.
- Maliliit na team na nagbabahagi ng isang instance ng NextChat, gamit ang CODE para sa access control at isang gateway key kaya ang usage log ang doble bilang cost report.
- Mga desktop at mobile client user na itinuturo ang in-app na endpoint sa isang gateway para maabot ang Claude, Gemini, at DeepSeek mula sa isang picker sa bawat device.
- Mga bilingual na user na naghahalo ng mga id ng GLM at DeepSeek sa Claude at GPT sa isang deployment, na ginagawang awkward ng mga native na provider silo.
- 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 chat.
Patunayan ang endpoint bago mag-deploy: ilista ang mga model gamit ang key at kumpirmahin na lumitaw ang bawat id na balak mong ilagay sa CUSTOM_MODELS, na eksaktong binabaybay. Ipinapasa bilang strings ang mga id, kaya ang output ng /v1/models ang authoritative na baybay. Pagkatapos, mag-deploy at magpadala ng isang mensahe per model sa picker. Ang 404 sa lahat ay ang pagkakamali ng /v1-sa-BASE_URL. Ang 401 ay ang key, mali man o wala man sa environment na talagang ginamit ng build. Ang error sa mga id ng Claude lamang ay ang kulang na @OpenAI suffix. Ang isang picker na nagpapakita ng mga model na hindi mo idinagdag ay nangangahulugang nawala ang -all prefix ng CUSTOM_MODELS o hindi umabot sa build ang variable. Kapag dumadaloy na ang mga chat, ipinapakita ng APIsRouter console ang per-request na model, token counts, at gastos. Para sa isang deployment na may higit sa isang user, sinasagot ng view na iyon ang tanong na kalaunan ay itatanong ng bawat admin ng NextChat, kung aling model ang tahimik na kumakain ng balance, na may datos sa halip na hula.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50Mga madalas itanong
Dapat bang may /v1 ang BASE_URL ng NextChat?
Hindi. Ini-append mismo ng NextChat ang request path, kaya itakda ang BASE_URL=https://api.apisrouter.com nang walang /v1. Ang pagsasama nito ay gumagawa ng doble-doble na path na nagbibigay ng 404. Kabaligtaran ito ng convention ng mga tool tulad ng LibreChat, na umaasang kasama ang /v1 sa base URL.
Paano ako magdadagdag ng mga model ng Claude o Gemini sa NextChat sa pamamagitan ng isang endpoint?
Idagdag ang mga ito sa CUSTOM_MODELS gamit ang @OpenAI suffix, halimbawa +claude-sonnet-4-6@OpenAI. Ipinipin ng suffix ang id sa OpenAI-compatible na request path kaya pumupunta ito sa BASE_URL mo, sa halip na sa native na Anthropic o Google client paths ng NextChat.
Ano ang pagkakaiba ng mga env variable at ng in-app settings?
Kino-configure ng mga environment variable ang isang server deployment para sa bawat user at nangangailangan ng redeploy para magbago. Naka-store nang lokal per device ang custom endpoint sa Settings at agad na kumakabisa, na angkop sa mga personal na desktop at mobile client.
Paano ko aalisin ang default na listahan ng OpenAI models sa picker?
Simulan ang CUSTOM_MODELS gamit ang -all, pagkatapos ay idagdag ang mga id nang tahasan: CUSTOM_MODELS=-all,+claude-sonnet-4-6@OpenAI,+gpt-5.5@OpenAI. Makikita lamang ng mga user ang mga model na sinasadya mong inilista at pinresyuhan.
Ano ang ginagawa ng CODE variable?
Nagtatakda ito ng isa o higit pang access password para sa deployment. Kailangang mag-enter ng code ang mga bisita bago mag-chat, na pumipigil sa isang public na URL sa Vercel na gastusin ang key mo. Wala itong kinalaman sa API key mismo.
Bakit walang epekto ang pagbabago ng isang environment variable?
Binabasa ng NextChat ang mga env value sa build o sa pagsisimula ng container. Sa Vercel, i-edit ang variable at i-redeploy; sa Docker, gawin ulit ang container. Ang in-app settings lamang ang kumakabisa nang walang restart, at naninirahan iyon per device.