文件

文件

NextChat

自架的 NextChat 透過既有的 OpenAI 環境變數連線至 Kunavo:OPENAI_API_KEY 存放金鑰,BASE_URL 存放來源網址,CUSTOM_MODELS 存放模型 ID。無需分支版本,也無需修補程式。

三個環境變數 — OPENAI_API_KEY、BASE_URL(純 origin)與 CUSTOM_MODELS — 讓自託管 NextChat 透過一組金鑰使用 Claude 與 GPT。

環境變數 — Vercel 專案設定、docker -e 或 .env.local
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@OpenAI
BASE_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 本身,也不會經過你設定的路徑。大小寫必須完全相同。
Kunavo 不提供任何文字轉語音或語音轉文字模型,因此 NextChat 的語音功能在此沒有可用的模型。也請勿設定 ENABLE_BALANCE_QUERY:餘額檢查會呼叫 OpenAI 自己的儀表板帳務路徑,這些路徑不屬於 OpenAI 相容介面的範圍。你的餘額資訊請至 /app/billing 查看。
本頁內容來自 NextChat 的說明文件,而非實際測試 — Kunavo 尚未使用此端點執行 NextChat,而已發布的設定頁面不等於相容性測試。雙方文件都記載支援 chat completions;除此之外的功能在此都尚未測試。
還沒有金鑰?建立 Kunavo 帳戶,建立金鑰(以 sk-kn- 開頭),並從 $10 起新增額度——呼叫會從該餘額扣款,失敗的呼叫不會計費。之後儀表板會開啟 NextChat 設定。

逐步操作

  1. 在 /app/keys 建立金鑰並複製——金鑰只會顯示一次。
  2. 將 OPENAI_API_KEY 設為該金鑰,並將 BASE_URL 設為 https://api.kunavo.com。在 Vercel 中,這些是專案環境變數;在 Docker 中,它們是 -e 旗標;在本機則將它們填入 .env.local。
  3. 將 CODE 設為存取密碼,否則任何找到網址的人都能使用此部署,而費用會由你的金鑰支付。
  4. 在 CUSTOM_MODELS 中列出所需的 ID,每個 ID 都加上 @OpenAI 後綴,並以 -all 開頭來移除內建模型。
  5. 重新部署 — 環境變數由伺服器讀取,因此 Vercel 專案需要重新部署,容器則需要重新啟動。只編輯變數不會改變執行中執行個體的任何設定。
  6. 開啟應用程式,在模型選擇器中選取其中一個 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 權杖的美元價格,輸入/輸出。

模型 IDKunavo 輸入/輸出它在 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長篇貼上文件;上下文視窗是決定因素
計費方式是從預付餘額按權杖計費,沒有月費——請參閱 billing。在重複的上下文中——這是編輯器或聊天用戶端傳送內容的大部分——提示快取 對帳單的影響比模型選擇更大。

常見問題

如何讓 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 則會移除該欄位。無論採用哪種方式,除非使用者自行在瀏覽器中輸入,否則金鑰絕不會傳到瀏覽器。