Agentic BI / DataOps 副駕
Schema 感知 Text2SQL 加三重 SQL 安全護欄的本地 BI 副駕
面向零售資料倉儲的中英雙語自然語言分析平台。使用者以自然語言提問,系統經 schema retrieval、Text2SQL、三重 SQL 安全驗證、唯讀 DuckDB 執行與圖表推薦完成分析。預設規則式轉換器零 API Key 即可運行,整合 16 階段 DataOps 導覽前端,重點在安全、可解釋與可評估。
已驗證 Demo 錄影 1
由 portfolio quality pass 從既有專案 demo 素材複製。
媒體總覽
快速瀏覽這個專案的截圖與錄影展示。
專案連結與 Demo 狀態
專案概覽
## 概述 Agentic BI / DataOps Copilot 是一個面向零售資料倉儲的自然語言分析平台。使用者以中文或英文提問,系統依序完成 schema retrieval、Text2SQL 生成、SQL 安全驗證、查詢執行、圖表推薦、查詢歷史與資料品質檢查。整個專案的核心理念是「安全、可解釋、可評估」,而非讓 agent 看起來炫目。 ## 安全架構 所有 SQL(包含未來 LLM 產生的輸出)都必須通過 `validator.py` 的三重驗證:Pass 1 以 regex 攔截 DROP/DELETE/UPDATE 等 20 多種危險關鍵字與註解注入;Pass 2 以 sqlparse 解析 AST,阻擋多語句、非 SELECT 與註解 token 注入;Pass 3 僅允許白名單內的零售資料表。通過後再以 `read_only=True` 的 DuckDB 連線執行,並注入 LIMIT 與執行緒逾時,形成多層縱深防禦——LLM 永遠不被直接信任。 ## 技術棧與可評估性 後端採 Python 3.11、FastAPI、Pydantic v2 與 DuckDB(in-process OLAP),以 uv 管理套件;SQL 解析使用 sqlparse 與 sqlglot。前端為 React + TypeScript + Vite + TailwindCSS,以 Recharts 視覺化,並由 Playwright 驗證 16 階段導覽與各功能頁。評估面提供基準 YAML 與 `unsafe_rejection_rate`、`valid_sql_rate`、`execution_accuracy`、`false_positive_rate` 等量化指標。 ## 誠實的完成度 規則式 Text2SQL 路徑、驗證器、查詢執行、評估流程與前端皆可端到端運行並附 20+ pytest 測試;資料為完全合成、無真實個資。OpenAI 轉換器目前為 stub,驗證與授權、速率限制、語意檢索與外部基準(Spider/BIRD)列為後續生產化項目。
我的角色
全端開發者:後端架構、SQL 安全驗證器、評估流程與 React 前端
問題背景
讓非技術使用者用自然語言查詢資料倉儲很吸引人,但直接信任 LLM 產生的 SQL 會帶來刪改資料、注入攻擊與失控查詢等風險,且多數 demo 缺乏可評估與可驗證的安全機制。
解決方案
建立 schema 感知的 Text2SQL 管線,所有 SQL(含 LLM 輸出)一律通過三重驗證器(regex 黑名單、sqlparse AST 解析、資料表白名單),再於唯讀 DuckDB 連線執行並注入 LIMIT 與逾時保護;輔以基準 YAML 與量化指標確保可評估。
目前成果
完成可端到端運行的作品集級平台:規則式轉換器零成本運作、20+ pytest 測試、12 案例基準(不安全查詢 100% 攔截目標),並以 Playwright 驗證 16 階段 React 導覽前端。
作品亮點
- 三重 SQL 安全驗證加唯讀 DuckDB 的縱深防禦
- 零 API Key 規則式 Text2SQL 即可完整 demo
- 12 案例基準與量化安全/準確指標
- Playwright 自動驗證 16 階段導覽前端
- FastAPI 提供清晰 REST API 與互動式文件
- 中英雙語提問與語意化資料目錄 (catalog.yaml)
技術挑戰
- 在攔截危險語句的同時控制誤判率(false positive)
- 以關鍵字評分做 schema retrieval,需在簡潔與召回間取捨
- 維持規則式與 LLM 兩條轉換路徑共用同一驗證層
目標使用者
- 作品集審閱者與面試官
- 需要快速理解專案目的、技術棧與成熟度的技術讀者
技術亮點
- 偵測到的主要技術線索:Python 3.11, FastAPI, DuckDB, Pydantic v2, sqlparse / sqlglot, React + TypeScript, Vite, Tailwind CSS, Recharts, Playwright
- 已有 README 作為後續補齊案例研究的依據
- 已連接公開 GitHub repository,可從作品集追溯原始碼
系統架構
此專案目前由 portfolio catalog pipeline 依 README、Git metadata、package/build 設定與素材線索建立案例頁。正式架構說明仍需依實際 source code 補齊;目前可確認的技術線索包含:Python 3.11, FastAPI, DuckDB, Pydantic v2, sqlparse / sqlglot, React + TypeScript, Vite, Tailwind CSS, Recharts, Playwright。
資料流程
目前尚未完成可公開的資料流程說明。若此專案含資料處理、AI pipeline 或後端 API,後續應補上 input、processing、storage、UI/output 的端到端流程。
專案結構
agentic-bi-dataops-copilot/ README.md # project documentation, when available source files # implementation reviewed by local audit package/build config # detected capability signals
安裝與執行
This project does not expose a verified runnable web command yet. Review the README/source tree and add exact install, run, test, and build commands before interview use. No verified build command was detected. Treat the current portfolio page as a case-study placeholder until build steps are reviewed.
後續改進
- 補齊正式 README、截圖與 demo recording
- 補上架構圖、資料流程與關鍵技術決策
- 確認 build/test 狀態並更新 portfolio release report
面試說明重點
- 先說明此專案目前的成熟度與可展示範圍
- 聚焦在可驗證的技術棧、程式結構與已完成部分
- 不要宣稱尚未部署、尚未錄影或尚未測試的能力已完成
後續規劃
- 完成 OpenAI 轉換器(目前為 stub),接上真實 API 呼叫
- 以 sentence-transformer 嵌入取代關鍵字評分做語意檢索
- 加入 JWT/OAuth 驗證與速率限制以邁向生產