sunbet(中国)

睿治

智能数据治理平台

睿治作为国内功能最全的数据治理产品之一,入选IDC企业数据治理实施部署指南。同时,在IDC发布的《中国数据治理市场份额》报告中,陆续在四年蝉联数据治理解决方案市场份额领先。

在线免费试用 DEMO体验 视频介绍

语义层建了,ChatBI 为什么还是不好用?

时间:2026-05-27来源:与数据同行浏览数:0

经营会上,老板问了一个看起来很普通的问题:

“这个月华东的新客收入为什么下降?”

ChatBI 很快给出答案。它画了一张趋势图,列出了下降幅度,还给出几个原因:客户数减少、客单价下降、渠道转化变差。

现场看起来很智能。

但销售负责人看了一眼,说:“这个新客不对。我们说的新客,是首次签约客户,不是首次下单客户。”

财务接着说:“这个收入也不对。你算的是订单金额,不是确认收入。”

区域经理又补一句:“华东也不对。这个客户总部在华东,但项目在华南,不能算我们区域。”

这时候大家才发现,系统不是不会算。它算得很快,图画得很漂亮,解释也很完整。

问题是,它从第一步就理解错了。

它不知道这几个词到底该怎么理解:

“新客”按首次下单算,还是首次签约算 “收入”指订单金额、开票金额、到账金额,还是财务确认收入 “华东”按客户注册地、销售归属地,还是项目发生地

这就是语义层真正难建的地方。

语义层不是给字段起中文名,也不是把指标整理成一张表。

它真正要解决的是:业务说出一句话,机器该按哪套规则去理解、查询、计算和解释。

很多 ChatBI 不好用,第一反应都会怪模型:模型不够强、提示词没调好、工具不成熟、业务问题太复杂。

这些都可能有影响。

但更常见的情况是:模型只是最后一个犯错的人。

前面的业务词、指标口径、数据路径、权限边界和反馈机制,早就没有说清楚。

问题不出在最后生成答案那一步,而是整条语义链路没有闭上

“华东新客收入为什么下降”这句话,听起来只有十几个字。

但系统要答对,至少要过六关。

这张表说明一件事。

语义层不是一个“指标配置项”,而是一条从业务问题到可信答案的链路。

链路中任何一环没说清楚,最后都会表现为同一个结果:ChatBI 不准。

很多企业做语义层,第一步是盘表:有哪些表、哪些字段、字段中文名是什么、含义是什么、来自哪个系统。

这些工作有必要。但只做到这里,还不是语义层。

比如订单表里有个字段叫 amount,系统里写得很清楚:amount = 订单金额。

这当然比没有中文说明好。

但业务真正问的不是“amount 是什么意思”,而是:“这个月华东的新客收入为什么下降?”

这句话背后,藏着一串规则:

“这个月”是订单创建月,还是收入确认月 “新客”是首次下单,还是首次签约 “收入”是订单金额,还是确认收入 “华东”是客户所在地,还是销售归属地 “下降”是环比下降,还是低于预算

字段说明只能告诉 AI 这个字段叫什么,不能告诉 AI 这个业务问题该怎么理解

所以,字段中文名不是语义层,数据字典也不是语义层。它们只是语义层的原材料。

真正的语义层,要把业务问题里的词,翻译成机器可执行的规则。

语义层里最容易讲不清楚的,是“收入”。

用户说“收入”,可能指的是不同的业务事实:

订单金额,来自下单 开票金额,来自开票 到账金额,来自回款 确认收入,来自财务确认

这四个数都可以叫收入,但它们不是同一个东西。

所以,AI 第一步不是计算,而是先判断:这里的收入到底指哪一笔事实。


这是业务词边界问题。

再往下一步,才是指标口径问题。

假设已经确定,这次看的是“确认收入”。那还要继续问:退款扣不扣?异常大单剔不剔?内部交易算不算?含税还是不含税?

经营会上,可能要看剔除异常后的经营口径。

财务对账时,必须看一分不剔的财务口径。

绩效考核时,又可能有另一套考核口径。

这就是第二层问题:同一笔收入,在不同场景下该怎么算。

很多语义层建不好,就是把这两步混成了一步。

收入指哪笔事实没定清楚,AI 会查错对象;这笔收入怎么算没定清楚,AI 会算偏口径。

这两步不拆开,ChatBI 就会一边认真回答,一边从根上答偏。

ChatBI 最危险的错误,不是 SQL 跑不出来。

跑不出来,大家一眼就知道错了。

最危险的是:SQL 能跑,结果有数,图也能画,但业务上已经错了

比如要算“新客收入”,可能要连客户表、订单表、合同表、收入确认表。

客户和订单是一对多,订单和合同可能是一对多,合同和收入确认又可能分多个月确认。

如果 Join 路径不对,收入可能被重复计算。

这类错误有一部分是通用 SQL 问题。比如一对多 Join 后又直接 SUM 订单金额,金额被放大——这类问题,强模型确实可能比弱模型少犯。

但还有一类,不是模型推理能解决的:

新客收入该走订单表,还是收入确认表 客户区域该用当前归属,还是历史归属 客户表里的测试账号,要不要剔除 合同分主合同和子合同,哪一个参与计算

这些不是 SQL 逻辑题,而是企业内部规则

而且这种错,模型越强反而越难当场发现。

弱模型写的 SQL 一眼就离谱,强模型能写出结构漂亮、却把收入翻了一倍的 SQL。

表名不会告诉模型,字段名不会告诉模型,很多企业的外键也不会告诉模型。

经验丰富的数据分析师能写对,不是因为 SQL 推理比模型强,而是因为他知道这家企业的历史坑。

语义层要做的,就是把这些历史坑从人的脑子里搬出来:

哪些表可以连 哪些表不能连 哪些路径能跑,但不能用于这个问题 哪些指标只能在客户粒度看 哪些维度不能随便下钻

能连上,不代表算得对。这句话,是智能问数项目里最该写进语义层的一句。

很多人理解权限,是这样的:谁能登录系统、谁能看哪张表、谁能打开哪个报表。


但到了 ChatBI,权限不是点报表的问题,而是问问题的问题

同一句话,不同人问,答案范围应该不同:

总部经营人员问“本月客户收入”,可能看全公司汇总 区域经理问,只能看本区域 销售人员问,只能看自己名下客户 客服人员问,可能只能看服务相关客户 外包人员问,可能只能看脱敏结果

再比如“列出收入下降最大的客户”,这个问题更敏感。

有的人可以看客户名称,有的人只能看客户编码,有的人只能看行业汇总,有的人需要审批后才能看明细。

如果权限没有进入语义层,ChatBI 会出现两种问题。

一种是太保守,什么都不敢答,用户觉得不好用。

另一种是太开放,什么都答出来。后者更危险。

因为 AI 不只是查单个字段,它还会组合信息。单独看不敏感的字段,组合起来可能就暴露了客户、金额、人员和区域。

所以,权限不能只放在平台最后拦一下。语义层必须提前告诉 AI:

这个人是谁,能看哪些指标、哪些区域 能不能看明细 哪些字段要脱敏 哪些问题要审批 哪些回答要留审计日志

如果没有这层规则,系统不是不好用,就是不敢用。

一个好的智能问数答案,不能只回答:“本月华东新客收入为 860 万,环比下降 12%。”

这还不够。它至少要说明:

本次“新客”按首次签约客户计算 本次“收入”采用经营收入口径 本次“华东”按销售归属地计算 数据截止到昨天晚上 结果已剔除退款和一笔异常大单 当前用户只能查看汇总,不能下钻明细


这些解释不是废话,它们决定业务敢不敢用这个数

传统 BI 时代,数据分析师可以在旁边解释:“这个数是经营口径,不是财务口径。”

但 ChatBI 时代,系统必须自己解释。因为用户不是在看报表,而是在和系统对话。

如果答案只有数字,没有口径、来源、时效、权限说明,业务就会问:“这个数准吗?”

一旦业务开始问这句话,智能问数的信任就已经断了。

ChatBI 答错并不可怕。真正可怕的是,用户说“不准”以后,没人知道该改哪里

是业务词识别错了?是指标口径选错了?是表关系连错了?是权限限制导致结果不完整?是数据没更新?还是答案解释过度推断?

如果分不清,最后只能落到一句话:“继续优化语义层。”

但这句话没有操作性。

补字段说明?改指标口径?调提示词?改 SQL 生成?加权限规则?让业务重新确认定义?方向完全不同。

所以,语义层必须有两套机制。

第一套:答案可追溯

每次回答都要留下记录:

业务词识别成了什么 用了哪套指标口径 走了哪条 Join 路径 套用了哪个权限范围 数据截止到哪一天 最终 SQL 是什么

有了这些记录,才能知道这次错在哪。

第二套:校验集

把最常见的 20 到 50 个真实问题固定下来。

这组题不是给用户的问题清单,用户本来也不会照着它问。

它更像软件里的回归测试:题固定不动,每次改完语义层跑一遍,才能分清这次是系统改好了,还是题本身变难了。


比如:

本月新客收入为什么下降 销售收入和财务收入为什么对不上 哪些客户贡献了主要增长 哪个渠道转化率下降最明显 这个区域增长是真增长,还是口径调整

每道题不只是写一个标准答案,还要写清楚:业务词该识别成什么、该用哪个口径、该走哪条 Join、不同角色看到什么范围、答案要不要提示口径。

以后每次改语义层、升模型、调权限,都拿这组题跑一遍。

答错不可怕。可怕的是同一个坑,改一次,复活一次。

没有校验集,语义层就只能靠用户抱怨来修。靠抱怨修系统,永远修不准。

语义层建不好,不能简单怪数据团队。数据团队有责任,但不是所有责任都在数据团队。

数据团队负责把指标、字段、表关系、血缘、质量规则和数据时效说清楚。

业务部门负责告诉系统真实问题怎么问,确认“收入、客户、新客、区域”这些词在业务里怎么用,哪些场景有例外,哪些答案可以采信。

IT / 平台 / AI 团队负责把语义规则接进系统,把权限、日志、模型调用、SQL 生成、审计追踪做稳定。


管理者负责裁决冲突:

经营口径、财务口径、考核口径冲突时,谁说了算 默认口径是什么 口径变更谁审批 历史数据要不要重算 哪些指标能进入正式经营会议

这些问题如果没人拍板,语义层就会不断悬着。

最后每次出错,大家都会回到同一套说法:业务说系统不懂业务,数据说业务没说清楚,技术说模型只是执行,供应商说语义资产还不完整,领导说钱花了为什么不好用。

每个人都能解释自己为什么没错。但系统还是不好用。

因为责任边界没闭上,语义链路就一定会反复断。

如果 ChatBI 不好用,很多团队第一反应是换模型。这个顺序通常是错的。

模型当然有用。通用 SQL 逻辑错误,模型越强,确实越可能少犯。

企业语义缺失的那部分,换模型补不上。模型越强,只会让错误答案说得更像真的。

真正的修复顺序,前四步都在“把业务说清楚”:


先收集真实问题:不要先补全所有字段,先找业务最常问、最容易出错、最影响经营判断的 20 到 50 个问题。 给核心业务词定边界:收入、客户、新客、订单、区域、渠道、回款、利润,先说清楚默认指什么、还有哪些含义、什么场景用哪个、用户没说清时要不要反问。 梳理关键指标口径:尤其是经常拿去开会、汇报、考核的指标,不能只有公式,还要有适用场景、排除规则、版本记录、口径负责人和冲突裁决人。 梳理核心实体关系:重点不是画出所有表,而是告诉系统哪些表可以连、哪些不能乱连、哪些 Join 会重复计算、哪些指标不能拆到明细层。

后三步,才轮到系统和模型:


加入权限和解释规则:谁能看汇总、谁能看明细,谁能看客户名称、谁只能看脱敏结果,哪些问题需要审批,答案必须说明口径、来源、时效和限制。 建立标准问题校验集:把前面那批真实问题变成固定测试题,每次语义层调整、模型升级、权限变更都跑一遍。 最后,再调模型和提示词:提示词当然要调,模型当然要选,但它们不是第一步。

如果企业自己没说清楚业务词、口径、关系、权限和责任,提示词再漂亮,也只是提醒 AI:“请认真理解业务。”

问题是,业务到底是什么,你还没告诉它。

下一次 ChatBI 答错,先别急着骂模型,先问六个问题。

前三个,查“有没有听懂”:

它有没有理解用户真正想问什么:用户是在查一个数,还是在分析原因?是在看趋势,还是在找责任归属? 它有没有把业务词对应到正确对象:收入指订单金额、开票金额、到账金额,还是确认收入?客户指集团客户、签约客户,还是账号客户? 它有没有选对指标口径:这次该用经营、财务,还是考核口径?退款、异常大单、内部交易怎么处理?

后三个,查“有没有做对”:


它有没有走对数据路径:客户、订单、合同、收入确认之间有没有重复 Join?有没有把当前归属和历史归属混用? 它有没有守住权限边界:这个用户能不能看这个范围?能不能看明细?需不需要脱敏?要不要审批? 它有没有留下可追溯记录:能不能看到这次用了什么口径、什么数据、什么 SQL?修好以后,能不能沉淀进校验集?

这六个问题问完,很多所谓“ChatBI 不准”,就会变成具体的链路问题。问题具体了,才有修的可能。

语义层之所以重要,是因为它决定 AI 能不能听懂企业内部的业务语言。

语义层之所以难建,是因为企业内部很多业务语言,本来就不清楚、不统一、带场景、带例外、带权责。

所以,语义层不是字段中文名,不是指标说明书,也不是多买一个智能问数工具。

它是把企业过去靠人解释、靠经验判断、靠会议拍板的业务规则,变成机器可以执行、可以解释、可以追溯、可以持续修正的规则。

做不好这一层,ChatBI 就只能停留在演示里:简单问题能答,真实问题一问就乱。

(部分内容来源网络,如有侵权请联系删除)
立即申请数据分析/数据治理产品免费试用 我要试用
customer

在线咨询

在线咨询

点击进入在线咨询

联系客服

扫描下方二维码,添加客服

亿信微信二维码

扫码添加好友,获取专业咨询服务