文件
NextChat
自架的 NextChat 透過既有的 OpenAI 環境變數連線至 Kunavo:OPENAI_API_KEY 存放金鑰,BASE_URL 存放來源網址,CUSTOM_MODELS 存放模型 ID。無需分支版本,也無需修補程式。
三個環境變數 — OPENAI_API_KEY、BASE_URL(純 origin)與 CUSTOM_MODELS — 讓自託管 NextChat 透過一組金鑰使用 Claude 與 GPT。
CODE=your-access-password
OPENAI_API_KEY=sk-kn-...
BASE_URL=https://api.kunavo.com
HIDE_USER_API_KEY=1
CUSTOM_MODELS=-all,+claude-sonnet-5@OpenAI,+claude-opus-5@OpenAI,+claude-haiku-4-5@OpenAI,+gpt-5-6-sol@OpenAI,+gpt-5-6-terra@OpenAIBASE_URL 填入不含路徑的來源網址,後面不加 /v1。說明文件頁面沒有用句子說明後綴規則,但其中的項目已給出答案:文件記載的預設值是 https://api.openai.com,而非 https://api.openai.com/v1 — NextChat 會自動附加其餘路徑。若手動加上 /v1,就會變成 /v1/v1/chat/completions,並回傳 404;這看起來像是端點故障,而不像是網址打錯。OPENAI_API_KEY 後,伺服器會使用你的金鑰呼叫 Kunavo,任何通過 CODE 的人都會使用你的餘額。HIDE_USER_API_KEY=1 的文件說明為:「如果你不希望使用者輸入自己的 API 金鑰,請將此值設為 1」— 若不設定此值,每位訪客就能在「設定」中貼上自己的金鑰;共用執行個體應採用這種方式。-all 前綴和 @OpenAI 後綴,表格只涵蓋 +、- 和 name=displayName。這些資訊來自同日查閱的 NextChat 自己的模型收集程式碼:-all 會清除內建清單,避免選擇器提供 Kunavo 會拒絕的 ID;@OpenAI 則會將每個新 ID 固定至 OpenAI 服務商,使其傳送至 BASE_URL。若模型 ID 未加上該後綴,服務商名稱就會使用模型 ID 本身,也不會經過你設定的路徑。大小寫必須完全相同。ENABLE_BALANCE_QUERY:餘額檢查會呼叫 OpenAI 自己的儀表板帳務路徑,這些路徑不屬於 OpenAI 相容介面的範圍。你的餘額資訊請至 /app/billing 查看。sk-kn- 開頭),並從 $10 起新增額度——呼叫會從該餘額扣款,失敗的呼叫不會計費。之後儀表板會開啟 NextChat 設定。逐步操作
- 在
/app/keys建立金鑰並複製——金鑰只會顯示一次。 - 將
OPENAI_API_KEY設為該金鑰,並將BASE_URL設為https://api.kunavo.com。在 Vercel 中,這些是專案環境變數;在 Docker 中,它們是-e旗標;在本機則將它們填入.env.local。 - 將
CODE設為存取密碼,否則任何找到網址的人都能使用此部署,而費用會由你的金鑰支付。 - 在
CUSTOM_MODELS中列出所需的 ID,每個 ID 都加上@OpenAI後綴,並以-all開頭來移除內建模型。 - 重新部署 — 環境變數由伺服器讀取,因此 Vercel 專案需要重新部署,容器則需要重新啟動。只編輯變數不會改變執行中執行個體的任何設定。
- 開啟應用程式,在模型選擇器中選取其中一個 ID,然後傳送訊息。若收到回覆,代表這三個變數設定一致。
已於 2026年9月21日 根據 NextChat 的 Environment Variables 頁面 進行確認。第三方設定會變動;如果這裡的欄位名稱不再與你看到的內容相符,應以該頁面為準,而不是本頁。
除錯用戶端前先驗證
一個請求就能判斷失敗原因是端點、金鑰還是設定檔。如果這裡回傳 JSON,則相同的基礎 URL 與金鑰在 NextChat 中也能運作。
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."欄位中應填入哪個模型 ID
每個文字模型都能以模型 ID 存取——即時清單位於 GET /v1/models,帶有價格的目錄位於模型頁面。費率是每 1M 權杖的美元價格,輸入/輸出。
| 模型 ID | Kunavo 輸入/輸出 | 它在 NextChat 中的位置 |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | 日常對話 — 長時間聊天而不必盯著餘額 |
claude-opus-5 | $3.50 / $17.50 | 每週一次、值得使用高價模型回答的問題 |
claude-haiku-4-5 | $0.70 / $3.50 | 摘要、重新命名聊天,以及主導共用執行個體用量的簡短來回對話 |
gpt-5-6-sol | $2.00 / $12.00 | 同一把金鑰、同一個選擇器中的另一個模型家族 |
gpt-5-6-terra | $0.70 / $4.20 | 長篇貼上文件;上下文視窗是決定因素 |
常見問題
如何讓 NextChat 指向自訂 API 端點?
將 BASE_URL 設為端點的來源網址,並將 OPENAI_API_KEY 設為端點核發的金鑰;兩者都要設為自架部署的環境變數。NextChat 自己的 Environment Variables 頁面將 BASE_URL 記載為「覆寫 OpenAI API 請求基礎 URL」,因此無需修補程式:應用程式仍會使用 OpenAI 線路格式,並將請求傳送至其他位置。之後請重新部署 — 這些值由伺服器讀取,因此執行中的執行個體不會自動套用新值。
NextChat 的 BASE_URL 需要以 /v1 結尾嗎?
不需要。NextChat 會自行附加版本路徑段和路由,因此文件中 BASE_URL 的預設值是單純的來源網址 https://api.openai.com,而不是 https://api.openai.com/v1。請填寫 https://api.kunavo.com,不要再加其他內容。自行加上後綴會造成路徑重複並回傳 404,容易被誤認為端點已經當機。
如何在 NextChat 的模型清單中加入自訂模型?
CUSTOM_MODELS 接受以逗號分隔的清單,其中 + 會加入模型、- 會隱藏模型,而 name=displayName 會重新命名模型。NextChat 不認得的 ID 會立即建立,因此 +claude-sonnet-5@OpenAI 會將該 ID 加入選擇器。有兩個細節值得照原樣設定:清單開頭加上 -all,讓內建的 OpenAI ID 消失,避免有人選取時發生錯誤;並保留 @OpenAI 後綴,讓該 ID 經由 BASE_URL 路由,而不是送往以模型名稱命名的供應商。
NextChat 應使用伺服器 API 金鑰,還是讓每位使用者自行貼上金鑰?
兩種方式都支援,差別在於由誰付費。OPENAI_API_KEY 中的金鑰屬於伺服器,因此每位通過 CODE 密碼的訪客都會使用同一筆餘額;私人執行個體適合這種方式,共用連結則可能代價高昂。若不設定 HIDE_USER_API_KEY,訪客可以在 Settings 中輸入自己的金鑰並自行付費;將它設為 1 則會移除該欄位。無論採用哪種方式,除非使用者自行在瀏覽器中輸入,否則金鑰絕不會傳到瀏覽器。