AUTH
管理員驗證
— 或 —
目前登入身份
🔐 登入後才能使用(一鍵開關)
關閉後,首頁戰情室生成台**任何人都能直接使用**,不需要登入、不檢查管理員/使用會員清單——
管理員帳號與使用會員清單本身不會被清空,只是暫時不強制檢查。適合臨時開放給不方便走 Google
登入流程的人測試,或緊急排除登入機制本身的問題時使用。
👤 管理員帳號(Google 登入允許清單)
除了密碼/Token 登入(保留當備援),管理後台也支援 Google 帳號登入——但只有下面清單裡的 Gmail 才能登入成功。
Google OAuth 本身只能證明「這是哪個 Google 帳號」,能不能用要看有沒有在這份清單裡。從清單移除某人後,對方即使 session 還沒過期,下一次操作也會立刻被擋下來,不用等到 session 過期。
| 操作 | |
|---|---|
| 讀取中…… | |
👥 使用會員(能使用戰情室生成台的清單)
首頁戰情室生成台開放給下面清單裡的 Gmail,以及所有「管理員帳號」使用——管理員必然具備會員身份,不用重複新增;反過來不成立,這裡的人只是一般使用會員,不會因此取得管理後台的權限。
使用者要先用 Google 帳號登入(首頁右上角),登入時系統會即時檢查 email 在不在這份清單裡;從清單移除某人後,對方下一次使用戰情室生成台就會立刻被擋下來。
| 擁有者 | 操作 | |
|---|---|---|
| 讀取中…… | ||
地端管理密碼
地端版不用 .env:管理後台用這組密碼登入。密碼只以加鹽雜湊存在目前的資料庫,不會寫進任何檔案。
⚠ 目前仍是預設密碼,請盡快修改。
資料庫設定(雲端 PostgreSQL / 地端 SQLite)
目前使用:讀取中……
上傳資料與寬表會另存成同目錄的 *__uploads.sqlite、*__wide_tables.sqlite,備份時整個 data 資料夾一起複製即可。
切換是「換到另一個資料庫」,不會搬移戰情室、上傳資料等內容;新資料庫第一次使用時會自動建立系統表(並載入 Titanic 試點資料,若有開啟)。設定存在
。外部資料來源(分析用、唯讀)
除了系統資料庫,還可以連其他資料來源來分析:SQL Server、PostgreSQL、SQLite 檔、Tableau extract(.hyper)。SQL Server 的表以「mssql_schema.表名」、其他來源以「ext_連線代號_schema.表名」出現在資料表清單;所有查詢都是唯讀,建議使用唯讀帳號。
+ 新增連線
代號用小寫英文開頭、小寫英文或數字(不能有底線),會變成 schema 前綴,建立後不能改。
SQL Server 只能設定一組;表會以「mssql_schema.表名」出現。需要 SQL Server 2016 以上。表名、欄位名可以是中文;含空白或特殊符號(例如 - # 括號)的會略過。
進階:直接貼連線字串(會取代上面的欄位)
.hyper 會先轉成 SQLite 快照(存在 data\external),之後要更新資料就按「重新匯入」。需要這台電腦裝 Python 與 tableauhyperapi(
python -m pip install tableauhyperapi)。密碼存在系統資料庫,不會寫進檔案、也不會回傳到這個畫面;編輯時密碼留空=保留原本的。
LLM 來源設定(雲端 / 地端)
雲端=OpenAI(金鑰在下方手填,存在目前的系統資料庫;沒填才讀環境變數 OPENAI_API_KEY);地端=公司內部 LLM Gateway(OpenAI 相容端點,例如 LiteLLM)。切換後約 30 秒內生效,不需要重新部署。
金鑰存在目前的系統資料庫(地端 SQLite / 雲端 PostgreSQL),不寫進 .env;畫面只顯示遮罩。
選「地端」時,下方「模型設定」與「依端點分流」不會生效(全部改用上面的地端對話模型)。
模型設定
切換後約 30 秒內生效(後端有快取),不需要重新部署。
勾選要開放的模型(用目前存的 OpenAI 金鑰查詢;內建模型固定保留)。按「加入白名單」後,上面「模型設定」與下方「依端點分流」就能選。
依端點分流模型(省 token 費用)
「產生戰情室」的一次完整流程裡,其實包含好幾個不同性質的 AI 呼叫:像 generate / drilldown / compare / summary
這類需要從零規劃或推理的「重活」,跟 *-self-check / upload-ai-suggest / upload-column-name-suggest 這類
「照著清單核對」或「短文字生成」的「輕活」。全部都用同一顆最強模型,等於拿殺雞的錢去用牛刀。
這裡可以幫每個端點個別指定模型;沒有覆寫的端點會自動使用上面「模型設定」選的全域模型。
留空(選擇「(跟隨全域模型)」)即可移除覆寫。
| 端點 | 使用模型 |
|---|---|
| 讀取中…… | |
Prompt 管理(可自行編輯 AI 的 System Prompt)
改完立即生效(下次呼叫就會用新內容),存在資料庫裡,重新部署程式不會被清空。標了 {{TOKEN}} 的地方是程式動態組出來的內容(例如治理策略規則、欄位白名單),請不要刪除,否則對應的機制會失效。
第一次使用的表:系統自動準備
管理員還沒做過的準備工作,系統會在有人第一次使用這張表時自動執行一次,不必等管理員逐一按。
自動產生的內容都會標註「系統自動建立,待管理員確認」,管理員之後可以在下方修改、確認或刪除;已經做過的表不會被覆蓋。
- 欄位定義(中文名稱、定義、語意角色):沒有任何已確認欄位的表,第一次分析時由 AI 建立
- AI 探索這份資料、洞察關係圖:第一次使用時背景執行(受「戰情室生成與快取」的探索功能開關控制)
- 基礎衍生指標、Cube 快照:依下方開關
前台可用欄位(寬表模式)
欄位很多的表(例如 400 多欄的客戶寬表),可以在這裡決定哪些欄位開放給前台,以及預設勾選哪些。
使用者只能從開放的欄位裡再勾選自己要分析的欄位;沒勾過的人用預設勾選。開放欄位超過「超大表設定」的寬表門檻時,前台一定要先選欄位。
資料擷取也只會擷取開放的欄位。這裡只讀欄位名稱,不讀資料。
開放:
預設勾選:
(有搜尋時只套用到搜尋結果)
資料擷取(Extract,完整資料搬到本機,類似 Tableau 擷取)
把大表的完整資料一次搬進本機的 DuckDB(欄式分析資料庫)。之後戰情室、AI 陪你探索分析、預測查這張表時自動改查擷取,600 萬筆的彙總通常不到一秒;
原本的 SQL Server view 只在更新擷取時讀一次。數字會是「最後一次更新擷取時」的資料,戰情室標題旁會顯示「資料擷取截至…」。
超大表設定(完整資料、動態逾時、分段產出)
超過門檻筆數的表(或筆數未知的 view)會:① 先在背景分段讀取完整資料(總筆數 → 每個欄位 → 資料版本),畫面顯示進度,讀過的部分存起來,中斷後從還沒做的地方接著做;
② 戰情室的 KPI 與圖表一張一張查、查好一張先畫一張,某張逾時只影響那張;③ 每句查詢的逾時依筆數自動拉長,量過實際時間後改用實測值。不抽樣,一律查完整資料。
已讀取的大表
資料表顯示管理
分成兩區:分析用資料表是使用者可以選來分析的表,勾選「對使用者隱藏」就不會出現在首頁清單(例如測試表、暫存表);
系統資料表是程式自己建立的設定、快取與紀錄表,一律不對使用者顯示,不需要也不能勾選。
讀取中……
欄位語意字典(Field Dictionary,v4)
AI 生成戰情室只會使用「已定義(🟢)」的欄位;🟡 AI 建議尚未經確認、🔴 尚無定義,AI 都不會使用。
| # | 狀態 | 欄位(英文/型態) | 中文欄名 | 欄位說明 | Semantic Roles |
|---|---|---|---|---|---|
| 請先選擇資料表 | |||||
治理策略
上傳資料限制(CSV/TXT/Excel)
一般使用者透過首頁「上傳資料開始分析」寫進 Postgres 的筆數/欄位數上限——你的 Render Postgres
若跟其他專案共用同一份儲存額度,這是避免被單一上傳寫爆的第一道防線。上傳時會先檢查筆數/欄位數,
超過就直接擋在寫入 DB 之前,不會先寫一半才發現超過。
「資料來源」區塊排版(顯示順序/顯示隱藏/預設展開收合)
戰情室生成台左側「資料來源」有 5 個項目。「目前資料庫的表」是選資料表的核心機制,一律顯示、一律展開;
其餘 4 項可各自設定要不要顯示、預設展開還是收合,全部 5 項都能用 ↑↓ 調整顯示順序。
| 順序 | 項目 | 顯示 | 預設展開 | |
|---|---|---|---|---|
| 讀取中…… | ||||
衍生欄位(Derived Metric / Dimension)
用結構化公式定義跨欄位計算(例如「生存率」),AI 只能選用、不能自創公式。
| Key | 顯示名稱 | 種類 | 公式類型 | 說明 | |
|---|---|---|---|---|---|
| 請先於上方選擇資料表並載入 | |||||
不用自己一個一個描述——AI 會掃描這張表所有欄位的中文定義,主動抓出「是否/有沒有」這類二元結果欄位
(自動建議條件計數+比率)、連續數值欄位(自動建議分桶)、代碼型類別欄位(自動建議中文對照),
列成勾選清單讓你審核,勾選要採用的之後按「儲存勾選的項目」一次存檔。
🤖 用中文描述,AI 幫你草擬
可以用欄位序號、中文欄名、英文欄名,或直接寫類似 SQL 的算式描述,例如:「生存率 = 生存人數/總人數」、
「生存率 sum(survived)/count(distinct passengerid)」、「把年齡分成 0-17、18-29、30-44、45-59、60+ 五組」、
「生還人數 = 統計 Survived 等於 1 的筆數」。
AI 只會把描述翻譯成下方表單的草稿,仍需你檢視/修改後按「新增」才會真的存檔。
➕ 新增衍生欄位
multi_field_filter_synonym 的 formula JSON 範例:
{"conditions":[{"field":"pclass","op":"=","value":1},{"field":"sex","op":"=","value":"female"}],"label_when_true":"貴婦","label_when_false":"其他"}
Cube 快照(交叉驗證用)
針對已知常被交叉分析的維度組合,預先用 GROUP BY CUBE(...) 算好所有子總表存成快照。
之後戰情室卡片查詢時,如果剛好落在這個維度組合內,會背景比對即時查詢與快照的數字,
不一致時卡片上會顯示「⚠️ 與快照不同」提示。快照不會自動更新,資料異動後記得手動「重新整理」。
目前使用上方「選擇資料表」欄位選定的表(跟欄位字典/衍生欄位共用同一個選擇)。
| 顯示名稱 | 表 | 維度 | 聚合 | 列數 | 更新時間 | |
|---|---|---|---|---|---|---|
| 讀取中…… | ||||||
寬表(合併多表)
把「上方選擇資料表」目前選定的表當作 base table,跟一或多張有關聯的表合併攤平成一張新表(真正建表,不是即時查詢),
之後這張寬表會出現在一般使用者的資料表選擇清單裡,AI 規劃指標、Cube 快照都可以直接用,不需要手寫 JOIN SQL。
資料異動後不會自動更新,記得手動「重新整理」。
| 顯示名稱 | 寬表 | Base 表 | 合併的表 | 列數 | 更新時間 | |
|---|---|---|---|---|---|---|
| 讀取中…… | ||||||
戰情室卡片上限
每份戰情室最多幾張 KPI 卡片、幾張圖表卡片。AI 規劃、新增卡片、複製卡片都會遵守這個上限;達上限時畫面會顯示灰色提示卡。KPI 最多 20、圖表最多 24。
AI 做報表:附加截圖與參考文件
比照 AppHost「AI 做 App」:使用者可以在對話時附截圖(AI 看圖,需支援影像的模型)與參考文件(TXT/MD/CSV/JSON/HTML/SQL/Excel,抽成文字給 AI)。設 0 等於不開放該類附件。約 30 秒內生效。
首頁選填區塊
這兩個區塊多數使用者用不到,預設隱藏;需要時在這裡開啟(約 30 秒內生效,使用者重新整理首頁即可看到)。
首頁兩顆主要按鈕的文字
留空=恢復預設文字;每欄最多 40 字。
管理員版戰情室(只有管理員能覆蓋,一般會員只能使用)
管理員在戰情室生成台按「🛡️ 另存為管理員版」存下來的版本會顯示在這裡。使用者在生成台選同一組
資料表時,會多一個「使用管理員版」選項(layout/指標/公式沿用這裡的版本,數值即時重查資料庫)。
這裡可以手動重新整理(重跑一次 AI 規劃覆蓋)或刪除(刪除後使用者就不會再看到這個選項)。
| 資料表組合 | 更新者 | 最後更新 | 操作 |
|---|---|---|---|
| 讀取中…… | |||
AI 探索這份資料(觸發權收在這裡,一般會員只能唯讀)
一般使用者在戰情室生成台看到的「✨ AI 探索這份資料」只會讀這裡跑好的結果,自己不會觸發任何
SQL 掃描或 AI 呼叫。要讓使用者看到某組資料表的探索結果,必須先在這裡手動執行一次(之後可視需要
排程或手動重新整理)。
關閉時,戰情室生成台上不會出現這顆按鈕(不影響上面已存的探索結果,只是先不給使用者看到入口);預設為關閉。
勾選一張或多張表一起分析;勾選多張表時,統計掃描會逐表進行,但最後只會呼叫一次 AI 幫忙挑重點問題。
| 資料表組合 | 發現數 | 問題數 | 最後更新 | 操作 |
|---|---|---|---|---|
| 讀取中…… | ||||
Insight Graph(洞察關係圖,依附在上面的探索結果之上)
把上面「AI 探索這份資料」已經跑好的 findings,串成「變數 → 發現 → 建議 → 預期改善」的關係圖。
一定要先在上面對同一組表執行過探索才能建圖;如果之後重新探索過(findings 內容變了),
這裡舊圖會標記「已過期」,需要手動按「重新建圖」才會更新。每次建圖都會保留成新版本,
不會覆蓋舊版本——展開「版本歷史」可以隨時切回之前的版本,不用重新花 AI token。
| 資料表組合 | 版本 | 節點數 | 邊數 | 最後更新 | 操作 |
|---|---|---|---|---|---|
| 讀取中…… | |||||
歷史生成快取(避免重複耗費 Token)
每組資料表只保留「最新一次成功產生」的規劃結果。使用者在戰情室生成台按「產生戰情室」時,
若這組表已經有快取,會跳出「沿用上次 / 重新規劃」讓使用者自己選——選「沿用」不會呼叫 AI。
這裡可以手動重新整理(重跑一次規劃覆蓋快取)或刪除某筆快取(刪除後下次使用者只能重新規劃)。
跟使用者主動「儲存」的戰情室是兩回事,互不影響。
| 資料表組合 | 最後更新 | 操作 |
|---|---|---|
| 讀取中…… | ||
戰情室區塊順序(分析總結/KPI 卡片/圖表卡片)全域預設
調整這裡的順序會套用到所有「還沒被使用者自己覆寫過」的戰情室(新產生的戰情室、以及開啟舊戰情室
時沒有另外設定過順序的情況)。使用者也可以在自己開啟的戰情室裡另外調整順序,只影響那一份,不受這裡影響。
| 順序 | 區塊 | |
|---|---|---|
| 讀取中…… | ||
用量彙總(依模型)
| 模型 | 呼叫次數 | Input Tokens | Output Tokens | 總 Tokens | 估算費用 (USD) |
|---|---|---|---|---|---|
| 讀取中…… | |||||
使用者行為分析(呼叫紀錄 Dashboard)
依「呼叫紀錄」表統計出來的三個切面:誰用得最多、哪個功能被用最多、用量趨勢怎麼變化。
只統計有記錄到 Gmail 的呼叫(v4.29 之後的新記錄);舊資料沒有登入 email,會歸在「未登入 / 會員登入未開啟」。
👤 依使用者
| Gmail | 次數 | 總 Token | 用過幾種功能 | 最後使用 |
|---|---|---|---|---|
| 讀取中…… | ||||
🧩 依功能端點
| 端點 | 次數 | 總 Token | 使用人數 | 相對用量 |
|---|---|---|---|---|
| 讀取中…… | ||||
📈 每日呼叫次數趨勢(近 14 天,台北時區)
讀取中……
呼叫紀錄(台北時間)
| 時間(台北) | 端點 | 使用者 | 模型 | Input | Output | Total | 來源 IP | |
|---|---|---|---|---|---|---|---|---|
| 讀取中…… | ||||||||