讓業務同事直接查詢公司數據,而 AI 不會憑空捏造答案

讓語言模型理解問題並解釋答案,所有必須準確的部分則交給確定性的程式碼:查詢、驗證、比對。這一個分工,正是令人印象深刻的示範,與財務團隊信得過的系統之間的分別。

Cat Yung
,Super Cat Technology 創辦人
發佈

用自然語言查詢數據,為何會出錯?

問題幾乎從來不在於模型不懂推理,而在於模型被要求同時做三件事:理解問題、找到正確的數據,以及產生準確的查詢或事實。第一件事正是語言模型擅長的。另外兩件事每次都要做對,而一個 95% 時間正確的模型,每星期都會在客戶面前出錯。

我們在四種截然不同的數據上建立過這個模式,故障出現的方式每次都一樣。答案很有自信,卻建立在模型猜出來的欄位、被當作文字閱讀的表格,或只記得一半的代碼上。

數據用戶會問缺乏防護時在哪裡出錯
附有圖表和表格的長篇 PDF 報告「把 2024 年風險框架的更新整理成表格」表格在行中間被切開、圖表從未被索引、來源遺失
欄位眾多的交易資料庫(100+ 欄)「西南部、LTV 低於 70% 的工業物業」捏造欄位、同義詞出錯、自由格式 SQL
EDI 交易(X12)「發票 4471 的付款期限是多少?」讀錯 segment 位置、猜測代碼
內部 wiki「我們如何為新學校辦理加入手續?」網上結果沒有標籤便混入、以猜測填補空白

哪些交給模型,哪些交給程式碼?

寫提示詞之前,先劃清界線。我們的分工如下:

語言模型確定性程式碼
理解問題及其業務詞彙建立並執行查詢
把多部分的要求拆成子問題驗證欄位、運算符、範圍和代碼
選擇使用哪個工具或來源跨系統比對記錄(PO 對發票、EDI 對 ERP)
用日常語言寫出答案並附上來源阻止任何寫入操作,並記錄每一個查詢

在一個交易搜尋項目中,這代表模型完全不寫 SQL。它輸出一個篩選計劃,例如 {"primary_asset_type": "Industrial", "proposed_loan_to_value__lt": 70}。Schema 會拒絕任何不存在的欄位,再由受版本控制的程式碼把計劃轉成唯讀查詢。同一個問題,每次都得出同一句 SQL、同一批資料列。

如何填補詞彙落差?

在系統回答第一個問題之前,先剖析並描述數據。以資料庫為例,即每一欄的類型、空值比率、基數、數值範圍和最常見的數值。然後由模型以 temperature 0 為每欄寫一句描述和幾個同義詞,讓「loan amount」、「LTV」和「southwest」都能對應真實的欄位和數值。

檢索以這份剖析為基礎,而不是原始 schema。做法是用實體索引處理精確名稱,對描述做向量搜尋,對數值做模糊比對(「york」可找到 New York)。輸出是一份簡短摘要,列出問題需要的表格、欄位和數值,再交給規劃查詢的步驟。

EDI 的詞彙落差在團隊之間:業務團隊說「發票 4471」,EDI 團隊說「810」。第一步是把業務用語對應到交易類型,再由一個以 EDI 詞彙微調的模型翻譯回日常英文。

附有表格和圖表的文件應如何解析?

按版面解析,而且要在任何內容進入向量資料庫之前完成。先偵測每頁的區域:文字、表格、圖像、圖說。把每個表格和圖表連同圖說裁出,用視覺模型讀取,再把結果連同圖片路徑、頁碼和檔案名稱一併索引。文字按意思分塊,而不是按字元數。

這樣做有兩個結果。關於圖表的問題終於可以回答,而每個答案都能指出出自哪一頁。在一個合規資料庫項目中,這正是重點:審計師無法引用的答案是一種負債,算不上答案。

檢索會混合關鍵字搜尋和語義搜尋,我們大約以 30/70 分配權重。原因是名稱、代碼和規則編號,正是純嵌入模型最容易錯過的。

用戶問得含糊,怎麼辦?

用戶會問得含糊,而受影響更大的是檢索,不是模型。我們為一家資產管理公司的研究助手比較了三種改寫策略,每種都以檢索結果與未改寫的問題作比較:

問題類型策略作用
含糊、沒有關鍵字假設答案(HyDE)先草擬一個用詞與文件相近的合理答案,再用它搜尋
一次問幾個問題改寫、檢索、閱讀搜尋前把要求拆成獨立查詢
探索性多角度追問(STORM)提出用戶下一步會問的追問

沒有一種策略在所有情況都勝出。按問題類型分流,並在檢索階段而不是最終答案量度成效。

如何處理多部分的問題?

真實的問題往往以指示的形式出現:「總結風險更新,然後整理成表格,欄目為更新內容、受影響對象和日期。」拆解步驟會把這些要求分成子問題。每個子問題執行前,都會檢查是否與原問題相關,避免推理鏈偏離。

Agent 為每個部分選擇工具,例如檢索、整理成表格、搜尋 wiki 或計算。最後再檢查合併後的答案是否涵蓋所有要求。

如果答案是表格,我們會為表格和普通檢索答案分別評估相關性,保留較好的一個,或根據檢索到的文字改進表格。用戶只看到一個答案;系統已靜靜地在兩者之間作出選擇。

如何在正式環境中保持可信?

  • 檢索前先篩查。每則訊息在觸及任何數據之前,都會先經過安全檢查。
  • 為每個來源加上標籤。內部文件、網上資料和參考來源在上下文中分別標註,並在答案中引用,從不靜靜混在一起。
  • 好好拒絕。數據未涵蓋問題時,便直說。在一個內部 wiki 機械人上,這些拒絕作答的紀錄,成了團隊需要補寫的頁面清單。
  • 逐個組件做基準測試,而不是只測整體。我們按每個步驟並排測試模型。在一個項目中,較大的模型負責欄位描述,因為描述質素決定配對效果;便宜約 90% 的模型則負責實體分組,表現相同甚至更好。
  • 記錄計劃,不只是答案。參數、實際執行的查詢、使用的來源。答案受到質疑時,你可以展示推算過程。

常見問題

Text-to-SQL 適合直接開放給業務用戶嗎?

不適合以自由格式 SQL 的方式開放。讓模型輸出一個由 schema 驗證的結構化篩選計劃,再由程式碼據此建立唯讀查詢。未知欄位會被拒絕,同一個問題每次都得出同一結果。

RAG 能回答 PDF 內圖表和表格的問題嗎?

可以,前提是文件先按版面解析。表格和圖像連同圖說一併裁出,由視覺模型讀取,並連同來源頁碼和檔案一起索引。如果當作普通文字處理,這些內容便會無聲無息地遺失。

我們需要微調模型嗎?

通常不需要。剖析和描述數據,已能填補大部分詞彙落差。微調在 EDI 等專門格式上才值回成本,因為這類詞彙與一般訓練數據截然不同。

如何防止 AI 捏造答案?

讓它少做決定。模型負責理解和解釋;確定性程式碼負責查詢、驗證和比對;每個答案都附有來源;而「數據沒有提及」是容許的答案。

作品集 →

本指南背後的項目,逐步拆解。

企業 RAG:自建還是購買 →

何時平台已經足夠。

保護 AI Agent →

在給予工具權限之前。

企業 RAG 方案 →

以引用為先的檢索,由建立到運行。

Cat Yung

關於作者

Cat Yung是 Super Cat Technology 創辦人,團隊在香港及倫敦開發 AI Agent,並以 AI 專家、Data Scientist 及兼職 CTO 身份與企業合作。擁有逾十年生產級 AI、NLP 及機器學習經驗;Upwork Expert-Vetted 前 1%,Job Success Score 100%(來源:Upwork 個人檔案,2026 年 10 月)。

開始合作

直接與負責開發的工程師對話。

與您通話的是我本人。請帶同用例、數據及限制條件,我會就可行性、工作量及首個應交付的項目,給予直接而具體的意見。

Cat Yung預約諮詢

配合香港及倫敦時區