建議 model:opus/effort:medium——跨三個既有功能改金鑰讀法+installer 寫入,規格已定但要確保 AI 小幫手/Dashboard 行為零改變。

本卡屬 FR-107(母卡 CM-1843)第 .5 棒(子需求卡 CM-1848),子任務 T-5.5,決策者 2026-09-17 裁(D13:原廠 AI 金鑰)。依賴 T-5.4(守門常數)與 T-5.1。

這張卡做什麼(白話)

現在系統裡有三個地方會用到 AI:AI 小幫手(右下角聊天)、AI Dashboard(統計分析問答)、證據自動分類(本案)。前兩個直接讀伺服器的環境變數 ANTHROPIC_API_KEY/OPENAI_API_KEY/GOOGLE_API_KEY,證據分類已經改成優先讀資料庫設定、讀不到才退回環境變數,但餵給分類容器的那把鑰匙目前還是直接抓環境變數,沒有真的走資料庫那條路。

決策者定案:原廠(我們自己)會給客戶一組 AI 金鑰,這組鑰匙放進 ROOT 租戶(tenant_id=1)的系統設定表,用現有的加密機制存起來,不再要求裝機人員手動把明文金鑰貼進伺服器的 guidant.env 檔。三個 AI 功能都要改成統一的判斷順序:先看這個租戶自己有沒有填金鑰 → 沒有就用 ROOT(原廠)那把 → ROOT 也沒有就退回環境變數(開發機才會走到這層)。

第一版客戶自己不能在畫面上填自己的金鑰(那顆設定頁鎖給 ROOT 平台管理員),全部客戶共用原廠那把。開放客戶自填是以後的事,只改一個守門旗標就能打開,這次不用先做。

為什麼這樣做

怎麼做(逐步)

不要做的事