Trỏ NextChat vào một endpoint tương thích OpenAI tùy chỉnh.
Updated 2026-07-29
NextChat ghi đè host API của nó bằng một biến môi trường BASE_URL trên các deploy server, hoặc một endpoint tùy chỉnh trong app tại Settings trên các client. Thêm id catalog qua CUSTOM_MODELS với hậu tố @OpenAI và Claude, Gemini, và DeepSeek xuất hiện trong cùng bộ chọn model dưới một key.
Câu trả lời nhanh: BASE_URL, một key, và một danh sách model.
Trên một deploy server (Vercel, Docker, hoặc Node trần), ba biến môi trường làm toàn bộ công việc. BASE_URL ghi đè nơi request API đi tới; README mô tả nó là "override openai api request base url" với mặc định là https://api.openai.com, và giá trị được nhập không có /v1 vì NextChat tự nối thêm đường dẫn request. OPENAI_API_KEY mang key gateway. CUSTOM_MODELS kiểm soát bộ chọn model: dấu cộng thêm một model, dấu trừ ẩn một model, -all xóa danh sách mặc định, và name=displayName đổi tên một entry. Chi tiết khiến các id đa vendor hoạt động là hậu tố provider. NextChat có các đường code client riêng cho nhiều vendor, nên một id claude trần thêm vào CUSTOM_MODELS có thể nổi lên dưới đường Anthropic, thứ mong đợi một key và định dạng request khác. Thêm @OpenAI vào id, như trong +claude-sonnet-4-6@OpenAI, ghim model vào đường tương thích OpenAI để request đi tới BASE_URL của bạn theo định dạng chat-completions chuẩn bất kể vendor nào huấn luyện 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-6Cách NextChat phân giải endpoint của nó.
NextChat (ChatGPTNextWeb trên GitHub, khoảng 88K star) là một trong những giao diện chat được deploy nhiều nhất từng có: một web app nhẹ với deploy Vercel một-cú-nhấp cộng các client đóng gói cho iOS, macOS, Android, Windows, và Linux. Sự phổ biến của nó đến từ chính cơ chế trang này dùng, mọi thứ đều là một bề mặt cấu hình, và endpoint chỉ là một cài đặt khác. Có hai bề mặt như vậy. Deploy server đọc biến môi trường lúc build và khởi động: BASE_URL quyết định host, OPENAI_API_KEY xác thực, và CUSTOM_MODELS định hình bộ chọn cho mọi người dùng của deployment đó. Client và web UI còn phơi ra một con đường trong app: Settings, Model Provider, chọn OpenAI, sau đó điền field endpoint và key và liệt kê thêm id trong field tên model tùy chỉnh. Con đường trong app lưu giá trị cục bộ theo từng thiết bị, khiến nó thành bề mặt đúng cho một client cá nhân, trong khi biến env là bề mặt đúng cho một deployment người khác dùng. Dù bằng cách nào, request rời NextChat là một chat completion chuẩn nhắm vào endpoint của bạn với model id là một chuỗi thuần. Với một gateway đa vendor đứng sau BASE_URL, cùng deployment phục vụ Claude cho câu trả lời dài, một id Gemini nhanh cho câu hỏi nhanh, và DeepSeek hoặc GLM cho lưu lượng song ngữ, tất cả qua một key.
Cài đặt đầy đủ: deploy server hoặc cài đặt trong app.
Với một deploy Vercel, đặt các biến trong cài đặt môi trường của project và redeploy; Vercel nướng giá trị env vào lúc build, nên sửa một biến mà không redeploy sẽ không thay đổi gì. Với Docker, truyền cùng các biến bằng cờ -e hoặc một file env. Biến CODE đáng đặt trên bất kỳ deployment công khai nào, nó chặn truy cập bằng mật khẩu để người lạ không thể tiêu key của bạn. Con đường trong app không cần deploy gì cả. Trong Settings, chọn provider OpenAI, thay endpoint bằng https://api.apisrouter.com, dán key, và thêm id trong field tên model tùy chỉnh dùng cùng cú pháp với biến env. Đây là cách các client desktop và mobile làm việc với một gateway, và cũng là cách nhanh nhất để thử giá trị trước khi chốt chúng vào một deploy server. DEFAULT_MODEL chọn cái gì chat mới bắt đầu trên, quan trọng hơn nghe qua trên một deployment chia sẻ: hầu hết người dùng không bao giờ đổi model, nên id mặc định là nơi hầu hết chi tiêu rơi vào. Hãy đặt nó có chủ đích vào model bạn muốn mang lưu lượng thông thường.
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-webChọn model cho bộ chọn.
Vì toàn bộ bộ chọn thanh toán qua một key, vòng lặp tinh chỉnh là quan sát: chạy một tuần, đọc sử dụng theo từng model trong console, và định hình lại CUSTOM_MODELS xung quanh những gì mọi người thực sự nhấp thay vì những gì bạn dự đoán.
- Bắt đầu danh sách bằng -all. Bộ chọn mặc định là một menu chỉ-OpenAI dài; xóa nó và thêm bốn hoặc năm id có chủ đích cho người dùng một bộ chọn nơi mọi lựa chọn đều do bạn định giá.
- Model mặc định mang cả deployment. claude-haiku-4-5-20251001 hoặc gemini-3.5-flash làm DEFAULT_MODEL giữ đa số lượt thông thường nhanh và rẻ, với các id mạnh hơn chỉ cách một cú nhấp.
- Công việc dài xứng đáng có một slot đỉnh cao. claude-sonnet-4-6 và gpt-5.5 là lựa chọn người dùng tìm tới khi một bản nháp hoặc một phân tích quan trọng.
- Deployment song ngữ nên gồm deepseek-v4-pro hoặc glm-5.2; NextChat có một lượng người dùng nói tiếng Trung khổng lồ và các id đó phù hợp tự nhiên với lưu lượng đó.
- Đổi tên là tài liệu miễn phí: các entry kiểu claude-sonnet-4-6=Sonnet (writing) khiến bộ chọn tự giải thích cho người dùng không rành kỹ thuật.
Trả theo mức sử dụng · thấp hơn giá chính thức
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| Mô hình | Giá chính thức | Giá của chúng tôi |
|---|---|---|
| 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 |
Các kiểu lỗi đặc thù của NextChat.
Lỗi /v1 chạy theo hướng ngược lại với hầu hết công cụ khác. NextChat tự nối thêm đường dẫn request vào BASE_URL, nên giá trị nên không có /v1; dán https://api.apisrouter.com/v1 tạo ra các đường dẫn thừa gây lỗi 404. Các công cụ như LibreChat mong đợi /v1 được gồm vào, đây chính xác là lý do người ta mang thói quen sai theo cả hai hướng. Một id Claude báo lỗi về key hoặc header là thiếu hậu tố @OpenAI. Không có nó, NextChat có thể định tuyến id qua đường Anthropic gốc, thứ không bao giờ tham chiếu BASE_URL cho gateway của bạn và mong đợi xác thực theo định dạng vendor. Ghim mọi id gateway bằng @OpenAI và mọi request đi theo đường tương thích. Sửa biến env mà không thay đổi gì là vấn đề redeploy. Trên Vercel, biến được đọc lúc build; trên Docker, container cần được tạo lại. Cài đặt trong app, ngược lại, áp dụng ngay lập tức nhưng chỉ trên thiết bị đó, đó là nửa còn lại của cùng sự nhầm lẫn. CODE và OPENAI_API_KEY bị hoán đổi bất ngờ thường xuyên. CODE là mật khẩu truy cập người dùng gõ vào giao diện; key là thứ server tiêu. Nếu người dùng báo cáo một trang không được phép trước khi chat bắt đầu, đó là CODE; nếu chat thất bại với endpoint, đó là key.
Ai định tuyến NextChat qua một gateway.
- Người chạy một deployment cá nhân trên Vercel muốn một key được đo lường đứng sau nó thay vì một gói thuê bao cho mỗi vendor.
- Các đội nhỏ chia sẻ một instance NextChat, dùng CODE để kiểm soát truy cập và một key gateway để log sử dụng đồng thời làm báo cáo chi phí.
- Người dùng client desktop và mobile trỏ endpoint trong app vào một gateway để tới Claude, Gemini, và DeepSeek từ một bộ chọn trên mọi thiết bị.
- Người dùng song ngữ trộn id GLM và DeepSeek với Claude và GPT trong một deployment, thứ các silo provider gốc khiến trở nên vụng về.
- Lập trình viên không có quyền truy cập billing của một vendor cụ thể. Truy cập dựa trên nạp tiền không yêu cầu thẻ loại bỏ phụ thuộc đăng ký theo từng provider.
Xác minh endpoint và debug chat đầu tiên.
Chứng minh endpoint trước khi deploy: liệt kê model với key và xác nhận mọi id bạn định đặt trong CUSTOM_MODELS xuất hiện, viết chính xác. Các id được chuyển tiếp dưới dạng chuỗi, nên output /v1/models là cách viết chuẩn. Sau đó deploy và gửi một tin nhắn cho mỗi model trong bộ chọn. Lỗi 404 trên mọi thứ là lỗi /v1-trong-BASE_URL. Lỗi 401 là key, hoặc sai hoặc không có trong môi trường mà build thực sự dùng. Lỗi chỉ trên id Claude là thiếu hậu tố @OpenAI. Một bộ chọn hiển thị model bạn chưa từng thêm nghĩa là CUSTOM_MODELS mất tiền tố -all hoặc biến không tới được build. Khi chat đã chạy, console APIsRouter hiển thị model theo từng request, số lượng token, và chi tiêu. Với một deployment có hơn một người dùng, góc nhìn đó trả lời câu hỏi mọi admin NextChat cuối cùng đều hỏi, model nào đang âm thầm ăn số dư, bằng dữ liệu thay vì phỏng đoán.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50Câu hỏi thường gặp
BASE_URL của NextChat có nên gồm /v1 không?
Không. NextChat tự nối thêm đường dẫn request, nên hãy đặt BASE_URL=https://api.apisrouter.com không có /v1. Gồm nó tạo ra các đường dẫn thừa gây lỗi 404. Đây là quy ước ngược với các công cụ như LibreChat, thứ mong đợi /v1 trong base URL.
Làm sao để thêm model Claude hoặc Gemini vào NextChat qua một endpoint?
Thêm chúng trong CUSTOM_MODELS với hậu tố @OpenAI, ví dụ +claude-sonnet-4-6@OpenAI. Hậu tố ghim id vào đường request tương thích OpenAI để nó đi tới BASE_URL của bạn, thay vì các đường client Anthropic hoặc Google gốc của NextChat.
Khác biệt giữa biến env và cài đặt trong app là gì?
Biến môi trường cấu hình một deployment server cho mọi người dùng và cần redeploy để thay đổi. Endpoint tùy chỉnh trong app tại Settings lưu giá trị cục bộ theo từng thiết bị và áp dụng ngay lập tức, phù hợp cho client desktop và mobile cá nhân.
Làm sao để xóa danh sách model OpenAI mặc định khỏi bộ chọn?
Bắt đầu CUSTOM_MODELS bằng -all, sau đó thêm id rõ ràng: CUSTOM_MODELS=-all,+claude-sonnet-4-6@OpenAI,+gpt-5.5@OpenAI. Người dùng khi đó chỉ thấy các model bạn cố ý liệt kê và định giá.
Biến CODE làm gì?
Nó đặt một hoặc nhiều mật khẩu truy cập cho deployment. Khách truy cập phải nhập một mã trước khi chat, giữ cho một URL Vercel công khai không tiêu key của bạn. Nó không liên quan tới chính API key.
Vì sao đổi một biến môi trường không có tác dụng?
NextChat đọc giá trị env lúc build hoặc khởi động container. Trên Vercel, sửa biến và redeploy; trên Docker, tạo lại container. Chỉ cài đặt trong app áp dụng mà không cần khởi động lại, và chúng sống theo từng thiết bị.