通过配置常用问题模板、术语及业务逻辑,可有效扩充大模型的基础知识。这能显著提升模型对业务需求的理解与转换能力,从而生成更精确的数据查询代码。
功能概述
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)。合理的知识库配置反而能提升整体效率,因为减少了错误重试和人工干预。