通過配置常用問題範本、術語及商務邏輯,可有效擴充大模型的基礎知識。這能顯著提升模型對業務需求的理解與轉換能力,從而產生更精確的資料查詢代碼。
功能概述
ChatBI 通過大語言模型理解自然語言問題並產生 SQL 查詢。雖然大模型具備強大的通用能力,但在處理業務特定情境時,仍需要補充領域知識以提升準確性。知識庫正是為此設計的核心功能。知識庫支援以下三種對象:问题模板、术语管理、业务逻辑。
|
物件類型 |
解決的問題 |
典型應用情境 |
|
問題範本 |
固定分析需求的快速響應 |
高頻查詢(如"各門店月度銷售額排行")、複雜多表關聯查詢、需要精確欄位對應的情境 |
|
術語管理 |
行業/業務專用詞彙的準確識別 |
縮寫詞(如"MoM"月環比、"YoY"同比)、多語言術語、同義字映射 |
|
商務邏輯 |
商務規則和計算邏輯的標準化 |
業務指標定義(如"有效訂單=訂單金額>0且狀態=已支付")、資料過濾規則 |
功能入口
知識庫僅限 ChatBI 管理員查看與編輯,不對成員開放。
-
進入ChatBI功能入口。
您需要先登入阿里雲,然後通過瀏覽器訪問ChatBI智能資料洞察頁面。請根據您的DataWorks資源群組、資料集等業務所在地區按需選擇。
-
管理員在頁面左側導覽列單擊知識庫,進入知識庫頁面。

配置知識庫
ChatBI的知識庫管理員對象包括:问题模板、术语管理和業務邏輯 。
配置問題範本
進入知識庫頁面,單擊问题模板頁簽,您可以通過兩種方式新增問題範本:
-
通過頁面配置。
-
在知識庫頁面,單擊新增,進入建立問題範本頁面。
-
配置問題範本的相關參數:
參數
描述
问题
定義在會話中的常用問題,例如:
門店A中商品B的月度銷售額趨勢。問題中支援以
${參數名}格式包含變數,若在此處定義變數,須在參數處補充變數的枚舉值或樣本值。變數定義如:${shopName}中${commodityName}的月度銷售額趨勢。SQL
基於問題描述提供能夠準確、正確執行的資料查詢SQL。 若問題中包含
${參數名},則SQL中也需要包含同名參數,例如:SELECT shop_name, commodity_name, sales, month FROM ads_order_table WHERE shop_Name = ${shopName} AND commodity_Name = ${commodityName} ORDER BY month;參數
若問題和SQL中包含
${參數名},請補充參數的枚舉值或樣本值,例如:${參數名}: [“參數值1”,”參數值2”,”參數值3”]資料集
指定該問題範本對哪些資料集生效。若不指定,則全域生效。
-
配置完成,單擊保存。
-
-
通過本地檔案大量匯入。
-
在知識庫頁面,單擊导入新增。
-
在匯入彈窗中,單擊下載模板,在模板中填寫问题模板、模板指令碼、模板參數和資料集。各參數解釋與通過頁面配置類似。
-
拖拽本地檔案或單擊彈窗中的+,選擇需要匯入的檔案。
-
添加完成後,單擊確認。
-
配置建議
-
優先配置高頻問題:統計使用者最常問的 Top 20 問題,優先為其配置模板。
-
使用參數化提升複用性:將可變部分(如門店名稱、商品名稱、時間範圍)定義為 ${參數名},一個模板可覆蓋多個類似問題。
-
SQL 需經過驗證:配置前務必在資料集上實際執行 SQL,確保文法正確且返回預期結果。
配置術語管理
進入知識庫頁面,單擊术语管理頁簽,您可以通過兩種方式新增術語:
-
通過頁面配置。
-
單擊新增,進入建立術語管理頁面。
-
配置問題範本的關鍵參數:
參數
描述
术语
業務交流和分析中涉及到的常用和專業詞彙,例如:月環比。
別名
術語的同義字、縮寫、全稱、多語言翻譯等。輸入別名後斷行符號,支援添加多個別名。
資料集
指定該問題範本對哪些資料集生效。若不指定,則全域生效。
-
配置完成,單擊保存。
-
-
通過本地檔案匯入。
-
在知識庫頁面,單擊导入新增。
-
在匯入彈窗中,單擊下載模板,在模板中填寫术语、別名、描述和資料集。各參數解釋與通過頁面配置類似。
-
拖拽本地檔案或單擊彈窗中的+,選擇需要匯入的檔案。
-
添加完成後,單擊確認。
-
配置建議
-
優先配置業務專用術語:重點添加行業黑話、縮寫、內部代號等大模型不瞭解的詞彙。
-
建立完整的別名體系:一個術語配置中文全稱、英文縮寫、口語表達等多種形式,例如:"月環比"的別名包括["MoM", "Month over Month", "環比", "月度環比增長率"]。
-
避免與通用詞衝突:不要為常見詞(如"訂單""使用者")配置術語,除非有特殊業務含義。
配置商務邏輯
進入知識庫頁面,單擊業務邏輯頁簽,您可以通過兩種方式新增商務邏輯:
-
通過頁面配置。
-
進入建立商務邏輯頁面。
-
配置問題範本的關鍵參數:
參數
描述
业务概念
業務交流和分析中涉及到的常用概念的名稱,例如:有效訂單。
逻辑解释
對業務概念的名稱下一個定義,例如:ord_cnt_1d>0 表示有效訂單。
資料集
指定該問題範本對哪些資料集生效。若不指定,則全域生效。
字段
選擇資料集後,可選擇資料集下的表中欄位,將業務概念跟物理表/欄位進行關聯。
-
配置完成,單擊保存。
-
-
通過本地檔案大量匯入。
-
在知識庫頁面,單擊导入新增。
-
在匯入彈窗中,單擊下載模板,在模板中填寫业务概念、逻辑解释、關聯表欄位和資料集。各參數解釋與通過頁面配置類似。
-
拖拽本地檔案或單擊彈窗中的+,選擇需要匯入的檔案。
-
添加完成後,單擊確認。
-
配置建議
-
定義關鍵業務指標:將核心 KPI 的計算邏輯配置為商務邏輯,如"有效訂單""活躍使用者""轉化率"等。
-
邏輯解釋要具體:不僅說明是什麼,還要說明如何計算,例如:"有效訂單 = valid_order_flag = 1 且 sales_amount > 0"。
-
關聯物理欄位:選擇商務邏輯涉及的所有相關欄位,協助模型理解欄位間的關係。
管理知識庫
ChatBI 管理員可以對建立的知識庫進行編輯,與刪除等。
編輯知識庫對象
-
在頁面左側導覽列單擊知識庫,進入知識庫頁面。
-
在知識庫頁面的各個對象的頁簽中,單擊操作列的編輯,進入編輯頁面。
各參數解釋與配置知識庫保持一致。
查看知識庫對象
-
您可以在知識庫各個頁簽頂部的搜尋方塊中輸入關鍵字後斷行符號,對搜尋對象進行快捷定位。
-
您也可以單擊某個知識庫對象,查看該對象的詳情。
刪除知識庫對象
在知識庫各個頁簽,找到已添加的知識庫對象,單擊操作列的刪除,將該對象從知識庫中刪除。
情境案例分析
以下通過電商銷售分析情境,對比有無知識庫配置時 ChatBI 的表現差異,協助您直觀理解知識庫的價值。
情境說明
某電商企業使用 ChatBI 分析銷售資料,底層表結構如下:
-
表名:
ads_order_table -
關鍵字段:
shop_name(門店名稱)、product_name(商品名稱)、sales_amount(銷售額)、order_date(訂單日期)、valid_order_flag(有效訂單標誌,1 表示有效)
案例1:問題範本的價值
使用者提問
"華東區旗艦店的 iPhone 手機上個月銷售額是多少?"
❌ 沒有配置知識庫
ChatBI 理解:
-
可能無法準確識別"華東區旗艦店"對應的欄位值
-
"iPhone 手機"可能被理解為包含"iPhone"關鍵字
-
"上個月"的時間範圍可能計算錯誤
產生的 SQL(可能錯誤):
SELECT SUM(sales_amount)
FROM ads_order_table
WHERE shop_name LIKE '%華東%'
AND product_name LIKE '%iPhone%'
AND order_date >= '2026-02-01'
AND order_date < '2026-03-01';
問題:
-
shop_name LIKE '%華東%'可能匹配到錯誤的門店 -
沒有過濾有效訂單
-
時間範圍可能不準確
結果:⚠️ 資料不準確或查詢失敗
✅ 配置了問題範本
知識庫配置:
|
問題 |
${region}${shopName}的${productCategory}${period}銷售額是多少? |
|
SQL |
|
|
參數 |
|
ChatBI 工作流程:
-
匹配到問題範本
-
提取參數:shopName="華東區旗艦店",productCategory="iPhone",period="上個月"
-
自動計算時間範圍:2026-02-01 至 2026-03-01
-
使用模板 SQL 產生精確查詢
產生的 SQL(正確):
SELECT SUM(sales_amount) as total_sales
FROM ads_order_table
WHERE shop_name = '華東區旗艦店'
AND product_category = 'iPhone'
AND order_date >= '2026-02-01'
AND order_date < '2026-03-01'
AND valid_order_flag = 1;
結果:✅ 精確匹配,查詢準確
案例2:術語管理的價值
使用者提問
"華東區旗艦店上個月的 MoM 增長率是多少?"
❌ 沒有配置術語
ChatBI 理解:
-
無法識別"MoM"的含義
-
可能理解為欄位名或直接報錯
結果:⚠️ "未找到相關欄位 MoM" 或理解錯誤
✅ 配置了術語管理
知識庫配置:
|
術語 |
月環比 |
|
別名 |
["MoM", "Month over Month", "環比", "月度環比增長率"] |
|
描述 |
當月資料相比上月的增長百分比 |
ChatBI 工作流程:
-
識別"MoM"是"月環比"的別名
-
理解需要計算 (當月-上月)/上月 × 100%
-
產生包含上個月和上上個月資料的查詢
產生的 SQL(正確):
WITH monthly_sales AS (
SELECT
DATE_FORMAT(order_date, '%Y-%m') as month,
SUM(sales_amount) as sales
FROM ads_order_table
WHERE shop_name = '華東區旗艦店'
AND valid_order_flag = 1
AND order_date >= '2026-01-01'
AND order_date < '2026-03-01'
GROUP BY DATE_FORMAT(order_date, '%Y-%m')
)
SELECT
(curr.sales - prev.sales) / prev.sales * 100 as mom_growth_rate
FROM monthly_sales curr
JOIN monthly_sales prev
ON prev.month = '2026-01'
AND curr.month = '2026-02';
結果:✅ 正確計算月環比增長率
案例3:商務邏輯的價值
使用者提問
"統計華東區旗艦店上個月有效訂單的銷售額"
❌ 沒有配置商務邏輯
ChatBI 理解:
-
不清楚"有效訂單"的具體定義
-
可能遺漏關鍵過濾條件
產生的 SQL(不完整):
SELECT SUM(sales_amount)
FROM ads_order_table
WHERE shop_name = '華東區旗艦店'
AND order_date >= '2026-02-01'
AND order_date < '2026-03-01';
問題:沒有過濾有效訂單條件
結果:⚠️ 資料包含無效訂單,結果偏大
✅ 配置了商務邏輯
知識庫配置:
|
業務概念 |
有效訂單 |
|
邏輯解釋 |
valid_order_flag = 1 且 sales_amount > 0 表示有效訂單 |
|
關聯欄位 |
ads_order_table.valid_order_flag, ads_order_table.sales_amount |
ChatBI 工作流程:
-
識別"有效訂單"是業務概念
-
從知識庫擷取商務邏輯定義
-
自動添加過濾條件
產生的 SQL(正確):
SELECT SUM(sales_amount) as valid_sales
FROM ads_order_table
WHERE shop_name = '華東區旗艦店'
AND order_date >= '2026-02-01'
AND order_date < '2026-03-01'
AND valid_order_flag = 1
AND sales_amount > 0;
結果:✅ 精確統計有效訂單銷售額
如何驗證知識庫生效
配置知識庫後,您可以通過以下方式驗證其是否生效:
-
在 ChatBI 會話中提問:使用配置的問題範本中的樣本問題進行提問,查看產生的 SQL 是否符合預期。
-
測試術語識別:在問題中使用配置的術語別名(如"MoM"),觀察 ChatBI 是否能正確理解。
-
驗證商務邏輯:詢問涉及業務概念的問題(如"有效訂單"),檢查產生的 SQL 是否包含正確的商務邏輯過濾條件。
-
對比前後效果:記錄配置知識庫前後的問答準確率變化,量化評估改進效果。
常見問題
-
Q: 知識庫配置後不生效怎麼辦?
A: 請檢查以下幾點:
-
確認知識庫對象已關聯到正確的資料集(或設定為全域生效)
-
檢查問題範本的 SQL 文法是否正確,參數名是否匹配
-
驗證使用者提問的表述是否與問題範本相似性足夠高
-
術語和商務邏輯需要在問題中明確提及才會觸發
-
-
Q: 多個知識庫規則衝突時如何處理?
A: ChatBI 會根據以下優先順序處理:
-
資料集級配置優先於全域配置
-
問題範本具有最高優先順序,會直接使用模板 SQL
-
建議定期檢查併合並重複或衝突的配置
-
-
Q: 知識庫會影響 ChatBI 效能嗎?
-
A: 不會。知識庫是通過檢索匹配的方式工作,對問答響應速度影響極小(通常小於 100ms)。合理的知識庫配置反而能提升整體效率,因為減少了錯誤重試和人工幹預。