Next AI Draw.io
管理面板所有頁面

自行架設

管理面板

管理面板讓您在網頁上管理伺服器端設定,無需手動編輯 .env。本頁介紹如何開啟面板、可以在面板裡修改什麼,以及設定儲存在哪裡。

開啟面板

  1. 設定環境變數 ADMIN_PASSWORD。沒有設定時,面板處於關閉狀態。
  2. 開啟 /admin,用這個密碼登入。

為所有使用者提供模型

在「模型」區塊裡新增服務商,並填入它的 API Key 和模型列表。填寫憑證的輸入框,和應用程式設定裡「模型」分頁的輸入框相同。

儲存後,這些模型會成為所有使用者都能使用的伺服器模型。處理請求時,它們會和您環境裡的 AI_MODELS_CONFIG 或 ai-models.json 合併。面板不會修改這些環境檔案。

修改其他設定

面板的其他區塊裡有這些設定:

區塊在這裡設定什麼
回覆設定產生參數,決定 AI 怎麼回覆
存取權限存取碼
選用功能功能開關
呼叫記錄模型呼叫的記錄(可觀測性)
用量限制配額

儲存的設定會寫入設定檔(預設是 data/settings.json),並立即生效,無需重啟。少數設定標有「需重啟」,例如 Langfuse 和 DynamoDB 的設定:重啟伺服器後,它們才會生效。

面板只能修改它顯示的設定,其他變數一律不予儲存。下面這些變數請在環境裡設定:

  • NEXT_PUBLIC_* 變數,它們在建置應用程式時就已固定
  • 開啟面板的 ADMIN_PASSWORD,以及指定設定檔位置的 SETTINGS_FILE
  • 各服務商的推理和思考設定,例如 OPENAI_REASONING_EFFORT 和 ANTHROPIC_THINKING_BUDGET_TOKENS
  • 面板裡沒有顯示的其他變數,例如 DEBUG_LLM_PAYLOAD 和 CLIENT_IP_HEADER

使用哪個值

同一個設定可能在多個地方都有值。應用程式依下面的順序查找,使用最先找到的那個:

  1. 面板裡儲存的值
  2. 環境變數
  3. 內建預設值

刪除面板裡儲存的值後,應用程式會重新使用環境變數。

設定儲存在哪裡

設定預設儲存在伺服器執行目錄下的 data/settings.json 裡。如果想儲存到別的位置,請把環境變數 SETTINGS_FILE 設為這個檔案的路徑。

  • API Key 等金鑰以明文形式儲存在設定檔裡。這個檔案的權限是 600,只有檔案的擁有者可以讀寫。請不要公開這個檔案。
  • 在任何主機上,只要應用程式無法建立設定檔所在的目錄,或者無法寫入這個目錄,面板就會變成唯讀。這時面板頂部會顯示提示,輸入框和「儲存修改」按鈕都無法使用。應用程式只檢查一次,結果會一直保留到伺服器重啟。
  • Vercel、Cloudflare Workers 等無伺服器平台沒有能長期儲存檔案的磁碟,所以面板在這些平台上是唯讀的。請在這些平台上用環境變數完成所有設定。

在 Docker 裡保留設定

儲存庫裡的 docker-compose.yml 會把主機上的 ./data 目錄掛載到容器裡的 /app/data(./data:/app/data),所以更換容器後,儲存的設定仍然保留。如果您設定了 SETTINGS_FILE,請把檔案放在 /app/data 裡。

容器裡的應用程式以使用者 nextjs(uid 1001)執行,這個使用者必須能寫入這個目錄。在 Linux 上,如果 ./data 不存在,Docker 會建立它,擁有者是 root。這樣應用程式就無法寫入,面板會變成唯讀。啟動容器前,請在 docker-compose.yml 所在的目錄裡建立這個目錄,並設定正確的擁有者:

mkdir -p data
sudo chown 1001:1001 data

如果面板已經因為這個原因變成唯讀,請執行上面的 chown 指令,然後重啟容器。

在 GitHub 上編輯此頁