SQLBot 開源問數系統實測:讓不寫 SQL 的人直接問資料庫

SQLBot 是飛致雲開源的問數系統,讓不會 SQL 的同事用中文直接向資料庫要答案。本文實測本機 Docker 自架 v1.10.1,拆解它開源授權的精確邊界、模型自帶金鑰的隱私線、安全修補史,以及免費版與人民幣三萬專業版的功能分界。

用 AI 摘要這篇文章:

一條 docker run 指令、大約二十秒,QQLBot 的登入頁就在瀏覽器裡展開。是款由飛致雲(FIT0CLOUD,杭州)團隊開源的問數系統,做的事情可及一句話講完:讓不會寫 SQL 的同事,直接用繼文向資料庫要答案,它負責生成查詢、撈資料、畫成圖表。

我問 v1.10.1 跑在本機 Docker,走完登入與設定流程,也把它的原始碼和安裝套件翻開來看。結論先講:團隊內部想快速問數、資料必須留在自家資料庫、願意自己顧資安的場景,SQLBot 值得自架來試;但它的「開源」有一條精確的邊界,權限與審計的核心跑在一個你看不到程式碼的閉源元件裡,安全修補也還在路上。份篇把這幾條線逐一攤開,讓你可以帶著完整的判斷再決定要不要部署。

用說的查資料庫,跟把表格貼給 ChatGPT 差在哪

「問數」(Text-to-SQL)不是新概念,難的從來都在細節:模型怎麼知道你有哪些表、欄位叫什麼意思、公司內部的「GMV」或「活躍用戶」怎麼定義。SQLBot 的做法是預先把你資料庫的表結構、欄位註解、術語庫和 SQL 範例庫建立向量索引,你提問時它先用檢索挑出相關的表,連同術語解釋一起送給大模型生成查詢,查詢回到你的資料庫執行,結果再畫成圖表。整條路徑裡,表結構的向量檢索跑在 SQLBot 機器上的本地模型,生成查詢的則是你自己指定的大模型。

這和把表格貼給 ChatGPT 的差別很實際。貼表給通用聊天機器人,每次都要手動整理欄位說明,模型看不見全部結構,生成的 SQL 也不會真的在你的資料庫上執行驗證,更沒有誰能問哪張表的權限概念。SQLBot 直連資料庫、結構預先索引、查詢實際執行、工作空間有成員控管,這幾件事加起來,才讓「用說的查資料庫」從展示變成日常工具。想橫向比較同類工具,可以參考我們之前寫過的AI 資料分析代理工具Chat2DB 資料庫用戶端,SQLBot 的定位更偏向讓非技術同事自助查數。

SQLBot 對話問數介面,左側為資料源選單與示範資料表 users_demo,中央為提問輸入框Pin
SQLBot v1.10.1 對話介面,預載示範資料源與 users_demo 資料表(本機 Docker 自架實測至圖)

要誠實說的是,它同樣依賴大模型生成 SQL,可靠度取決於你選的模型與範例庫的調教。SQLBot 給的校正手段是術語庫與 SQL 範例庫,範例給得越準,生成越貼近你的業務口徑,官方也把這個「越問越準」的迭代邏輯列為產品優勢。

問答之外還有兩個配套功能把流程接完整。深度探索讓你在拿到第一張圖表後繼續追問,做進一步的分析、解釋與預測,不必每次從頭問起;看板搭建則把人次對話產生的圖表拉到同一個儀表板排版,用於例行彙報或監控。對使用者的意義是:日常看數不必再開查詢工具,開儀表板就好。

多人協作的邊界靠工作空間畫分。資料源、對話紀錄與儀表板都掛在工作空間下,成員依色色取用,官方把這個資源隔離機制列為安全訴求之一。這套設計對內部多團隊共用一套部署很實用,只是如前述,角色背後部分權限邏輯的實作不在開源碼裡,邊界後面會再展開。

一條指令跑起來:二十秒的登入頁與 866MB 的記憶體

官方快速開始給的是單容器部署:拉 dataease/sqlbot 映像檔、開 8000 與 8001 兩個連接埠、掛五個資料卷,PostgreSQL 就裝在同一個容器裡,中繼資料與上傳的 Excel 全落在本地卷。我在本機實測 v1.10.1,從啟動到登入頁可用約二十秒,置置時記憶體占用約 866MB。映像檔本身有 6.58GB,因為它把中文向量模型烘焙了進去,這是下載前要有心理準備的數字。

登入用出廠帳號 admin 與預設密碼 SQLBot@123456,第一次登入就該改掉。官方 docker run 範例帶著 privileged 參數,這是圖方便的選擇,正式環境建議換成最小權限的設定再上線。另外啟動日誌會明講它使用記憶體快取、僅支援單進程模式,拿了單工作者鎖,也就是說預設這個容器不能橫向擴展,量大的場景要自己規劃。

進系統後,資料源管理頁已經預載一個示範用的 PostgreSQL 資料源和一張用戶示範表,讓你先感受問答流程。正式接上自己的資料時,它支援 MySQL、PostgreSQL、Oracle、SQL Server、ClickHouse、Apache Doris、AWS Redshift、Elasticsearch、Kingbase、StarRocks、Apache Hive、達夢,另外可以把 Excel 或 CSV 直接上傳,存進內建資料庫當資料源。這份清單我在原始碼的資料庫常數檔逐一核對過,與官方文件一致,對同時有國內外資料庫的團隊來說涵蓋面相當完整。

SQLBot 資料源管理頁,顯示預載的 demo_datasource PostgreSQL 示範資料源與新建資料源按鈕Pin
資料源管理頁可新建多種資料庫連線或建立 Excel 與 CSV 資料源(本機 Docker 自架實測截圖)

8000 連接埠是網頁介面,8001 跑的是它的 MCP 服務,可以讓其他 AI 應用以工具呼叫的方式使用問數能力。部署管道除了 docker run,官方還提供離線安裝包(並明確建議生產環境走這條路)、1Panel 應用商店一鍵安裝、阿里雲安裝與 Windows 安裝,照顧了沒有對外網路的內網環境。用 compose 檔部署時,環境變數會要求你自備一把 SECRET_KEY,這是權杖簽發的根密鑰,值得自己用亂數產生,別抄範例值。

「開源」的精確邊界:權限核心裝在閉源輪子裡

SQLBot 的授權是 GPLv3 加兩條附加條款:使用過程不得移除或修改前端控制台與應用裡的 LOGO 和版權資訊,二次開發的衍生作品必須遵守 GPLv3 的開源義務。授權檔裡還有一條貢獻者條款,投稿程式碼的人同意官方可以將貢獻用於商業用途。對多數自架用戶這不構成困擾,但如果你打算鑲上自家品牌對外提供,或考慮貢獻公司內部修改,這條線要先看清楚。

更值得知道的是原始碼結構。後端進入點第一行就把一個叫 sqlbot_xpack 的套件 import 進來,整個 FastAPI 應用的初始化也交給它;這個套件不在 GitHub 儲存庫裡,安裝時從套件庫拉下來,解開看是五十個編譯過的二進位檔,只有空殼的包裝檔可讀。而官方文件列為產品優勢的「細粒度資料權限」,也就是資料源權限與行級規則那套模型,程式碼主體就住在這個閉源套件裡,自訂提示詞與部分審計查詢也在裡面。

換句話說,你可以免費使用、可以自架、可以讀到大部分原始碼,但「誰能看到哪張表、哪一行」這段,你是執行它而不是審閱它。對內部自架的場景多半可以接受,對要把問數開放給多個部門、需要對權限邏輯做安全審計的組織,這是決策前必須知道的邊界。專案本身的活躍度沒有問題:GitHub 上 6,678 顆星、846 次 fork,2025 年 4 月開源至今,我查詢的前一天仍有程式碼提交,Docker Hub 累計拉取超過三十一萬次。

模型自己帶:供應商清單比開源碼多兩個

SQLBot 不附模型也不附額度,金鑰自己申請、自己填。開源碼裡定義的供應商清單有十二家:阿里雲百鍊、千帆大模型平台、DeepSeek、Gemini、OpenAI、Kimi、騰訊混元、騰訊雲、火山引擎、MiniMax、訊飛星火,加上通用 OpenAI 相容端點。有趣的是,我實際跑起來的介面在同一個選單還多出智譜 AI 與 Ollama 兩個磚,這兩個名字在開源儲存庫與前端打包檔裡都搜不到;後端閉源套件會載入一支混淆過的腳本到前端,把那支腳本擋掉,登入頁直接無法渲染。閉源套件介入的深度,從後端一路到前端畫面。沒有設好模型之前,問數功能不會給你任何答案。

SQLBot 新增模型對話框的供應商選單,顯示 DeepSeek、OpenAI、Gemini、Ollama 等模型接入選項Pin
模型設定頁的供應商選單,含 DeepSeek、OpenAI、Ollama 與通用 OpenAI 相容端點(本機 Docker 自架實測截圖)

私私的邊界也由這個設定決定。你的問題與檢索到的表結構摘要,會送往你指定的模型商端點(這是依其 API 呼叫機制的推論),資料本體的查詢則始終在你自己的資料庫執行。想把外送那條線也收掉,官方文件提供 Ollama 本地模型的接入方式,等於整套系統可以完全不對外。表結構檢索用的向量模型預設是本地的中文模型 shibing624/text2vec-base-chinese,這段不出機器。

我在本機走完了設定流程,沒有接上真實金鑰,所以生成 SQL 的實際準確率本文不下結論,這件事值得你用自己的資料與口徑驗證,尤其搭配 DeepSeek 這類供應商時,成本與效果都會隨模型不同而有落差。

安全修補史:這類產品真正的主戰場

把自然語言接到資料庫,等於把攻擊面從「寫 SQL 的人」擴大到「所有能提問的人」,SQLBot 的修補紀錄就是證明。v1.10.0(2026 年 7 月)一次修掉了一批安全漏洞,包括行權限過濾器的 SQL 注入轉義(編號 CWE-89)、利用 LLM 提示注入觸發未授權查詢、透過基礎應用介面提升權限層級,以及跨工作空間枚舉值查看。這份修補清單本身就說明了一件事:提示注入在問數系統裡屬於實際發生過的攻擊面,理論風險四個字並不適用。

更前面的紀錄是 CVE-2025-15597,assistant.py 的存取控制缺失,影響 1.4.0 以前版本,1.5.0 修復。而我查詢當天(2026 年 8 月下旬),仍有安全研究者在 GitHub 回報該次修補不完整:訓練資料與術語庫兩個匯出端點沒有加上工作空間管理員檢查,一般成員拿著自己的登入權杖就能匯出工作空間的資料,回報時仍是未解決狀態。這提醒自架者兩件事:要跟著版本更新,以及把「誰能進工作空間」當成正式的權限管理課題,不該當成順手加少人的小事。

整理成上線前的動作清單:改掉出廠預設密碼,別照抄 privileged 參數,成員權限與資料源授權收到最小範圍,然後訂閱它的版本發布。這些不複雜,但在這類系統上都是必要工序。

免費自架與人民幣三萬的專業版,中間隔著 X-Pack

官方文件把商業版寫得很直白:專業版人民幣三萬元一套,內容是 X-Pack 增強包加上基礎級的原廠企業支援服務,支援單機與冷備部署。X-Pack 那包對應的功能在文件裡也逐項列名:自訂提示詞、登入認證、平台對接、外觀設定、參數配置、操作日誌。

免費自架版拿到的是完整的問數核心:對話分析、深度探索、儀表板搭建、前面列過的十三種資料源、MCP 服務與網頁嵌入,可以接進 n8n 或 Dify 這類流程工具。付費買的偏向治理與整合:企業身分認證對接、操作稽核、外觀客製化。要不要付費的判斷點因此很清楚,你要的是問數能力還是治理能力。

誰該現在自架,誰先觀望

適合現在就部署的場景:內部資料團隊想讓業務自己查數、減少取數排隊;資料敏感不能上雲端商業智慧服務的組織;已經有 Docker 維運能力、能自己顧安全更新的團隊。它與自架資料庫工具的組合也順,例如搭配我們介紹過的NocoDB 自架資料庫,資料與查詢都在自己機器上。

建議先觀望的情境:要對外開放給多租戶使用,需要嚴格的權限審計保證(等這類越權通報收斂,或直接買原廠支援),以及需要橫向擴展的高併發場景,預設單進程的架構要先自己做規劃。

總結一句話:SQLBot 把「中文對話、生成 SQL、畫圖表」整條路在免費版裡走完,部署門檻低、模型選擇有彈性、資料留在自家資料庫,這些都是實測成立的優點;但把「開源」直接理解成「一切可審閱」之前,記得權限那包是閉源的,預設密碼與容器權限要自己先補強。帶著這些認識去自架,它會是很有生產力的內部工具。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 994

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...