跳转到内容

过去一两年,很多企业都尝试过智能问数。

一开始大家的想法很直接:把大模型接到数据库或者数仓上,让业务人员用自然语言提问,系统自动生成 SQL,返回结果。Demo 往往效果不错,但进入真实业务后,很快会遇到问题。

同一个“收入”,销售、财务、运营的口径可能不一样;同一个“客户”,在 CRM、订单系统、会员系统里的含义也不一样。字段名看起来清楚,真实业务含义却依赖上下游系统。再加上权限、数据质量、历史口径、明细追溯,问题就变得复杂了。

企业智能问数真正难的地方,不是大模型能不能写 SQL,而是企业有没有一套清楚、统一、可复用的业务语义。

智能问数不只是查数入口

如果只是给业务人员做一个“自然语言查数”的入口,智能问数的价值会比较有限。

更合理的定位是:

智能问数是企业数据语义层之上的自然语言访问方式。

也就是说,底层应该先有统一的业务对象、指标、维度、权限和口径,而智能问数只是其中一个使用入口。

今天是业务人员通过自然语言问数,明天可能是销售 Agent、运营 Agent、投放 Agent 自动调用这些数据,后天还可能是机器学习模型使用这些指标作为特征。

如果一开始只为人类问数设计,把指标口径写在提示词里,后面给 Agent 和 ML 使用时,就很容易重新做一遍。人类问数一套口径,Dashboard 一套口径,Agent 又一套口径,最后仍然回到混乱状态。

所以企业做智能问数,最好从第一天就按统一语义层来设计。

先从一个业务域开始,不要一上来做全公司

很多智能问数项目容易犯的第一个错误,是目标太大。

一开始就想做到“全公司所有数据都能问”,看起来很有想象力,但实际落地难度很高。因为全公司数据意味着全公司口径,全公司权限,全公司历史包袱。这个范围太大,很难在早期建立信任,项目也容易因此陷入停滞。

更稳妥的做法,是先选一个边界清楚、价值明确、数据相对可控的业务域。

比如:

  • 销售经营分析;
  • 电商运营分析;
  • 广告投放分析;
  • 客服工单分析;
  • 供应链履约分析;
  • 财务经营里的某个窄场景。

第一阶段不需要覆盖太多,能把一个小闭环跑通就很好。

例如先整理出 30 个高频问题、20 个核心指标、10 个常用维度、3 到 5 个核心业务对象。围绕这些内容,把数据模型、指标口径、权限和问数链路跑通。

这比一开始追求“大而全”更容易成功。

补一层业务语义

很多企业已经有数仓,但没有系统梳理过指标和语义层。这种情况很常见。

这类企业不是没有数据,而是数据还没有变成可被业务稳定理解和复用的语义资产。

这时不要急着让大模型直接查数仓表。因为数仓里可能有 ODS、DWD、DWS、ADS,各层表很多,字段很多,历史逻辑很多。分析师知道怎么查,不代表模型也能稳定理解。业务人员知道自己想问什么,也不代表这个问题可以直接映射到某张表。

更好的做法是,在现有数仓之上,先选一个业务域,建立一层轻量语义层。

这个过程不一定一开始就很重,可以先做三件事。

第一,整理高频问题。
不要从表开始,而要从业务问题开始。比如“本月销售额是多少”“哪个渠道转化率下降最多”“最近 30 天退款率是否异常”。这些问题代表真实使用场景。

第二,整理核心指标。
把销售额、净收入、退款率、转化率、复购率、ROI 等指标的口径写清楚。它们的分子是什么,分母是什么,时间口径是什么,是否排除测试数据,是否包含退款,默认看哪个业务范围,都要明确。

第三,整理分析数据集。
在数仓已有基础上,为智能问数准备更稳定的分析模型。可以是数据集市、宽表、指标表,也可以是语义层工具之上的模型定义。重点不是再造一套数仓,而是让问数系统面对的是清楚的业务模型,而不是复杂混乱的底层表。

这样做之后,智能问数才有可靠基础。

统一语义层应该统一什么

前面我们讲过,语义层不仅服务人类问数,也应该服务于 Agent、ML 和 其他上层消费者。因此,智能时代的语义层应该是一层统一语义层:同一套业务对象、指标口径、权限规则和证据链,被不同入口共同复用。

语义层不是一个指标文档,也不是一张字段说明表。

企业需要在语义层统一的内容,至少包括几类。

首先是业务对象。比如客户、订单、商品、渠道、门店、合同、商机、工单。对象定义不清,后面的指标都会不清。

其次是指标。比如 GMV、净收入、退款率、转化率、活跃客户数、客单价、LTV、ROI。每个指标都要有明确口径,不能只写一个中文名称。

然后是维度。比如时间、地区、渠道、商品类目、客户类型、组织架构。指标能按什么方式拆分,要提前定义好。

还要有权限。不同角色能看的数据范围不同。销售只能看自己的客户,区域经理只能看本区域,财务可以看利润,普通运营可能只能看收入。智能问数和 Agent 调用都必须继承同一套权限规则。

最后是证据链。智能问数不能只返回一个数字,还应该说明这个数字来自哪个指标、用了什么时间范围、过滤了哪些条件、是否可以下钻到明细。

这些内容沉淀下来,才叫统一语义层。

智能问数应该走受控查询,而不是自由 SQL

企业智能问数不建议采用完全自由的自然语言转 SQL。

更稳的方式是:

自然语言问题 → 识别指标、维度、时间和过滤条件 → 映射到语义层 → 生成受控查询 → 权限校验 → 返回答案和证据。

这样做的好处是,模型不是随便猜表、猜字段、猜口径,而是在已经定义好的语义范围内工作。

例如用户问:

本月华东区销售额同比增长多少?

系统应该识别出:

  • 指标:销售额;
  • 时间:本月;
  • 对比方式:同比;
  • 维度或过滤条件:华东区;
  • 权限范围:当前用户可见组织;
  • 输出形式:当前值、同比变化、趋势和明细入口。

然后它去调用语义层中已经定义好的销售额指标,而不是临时生成一段不受控 SQL。

这也是企业智能问数从 Demo 走向可用的关键。

Agent 和 ML 应该复用同一套语义

服务人类用户的智能问数稳定之后,下一步通常是开放给 Agent 和 ML。

比如销售 Agent 每天生成经营简报,运营 Agent 监控渠道异常,投放 Agent 判断哪些广告计划 ROI 下降,客服 Agent 分析投诉原因。

这些 Agent 在行动之前,都需要取数。如果它们绕过语义层,直接查库或者自己生成 SQL,就会带来新的风险:口径不一致、权限不可控、结果不可审计。

所以 Agent 应该通过受控工具调用语义层,比如:

  • 查询某个指标;
  • 对比某个指标;
  • 解释某个指标变化;
  • 获取异常指标;
  • 获取支撑结论的明细证据。

ML 也是一样。模型训练需要特征,比如近 30 天订单数、近 90 天退款率、客户活跃天数、广告 ROI、工单数量。如果这些特征由不同团队各自写 SQL,时间久了也会出现口径漂移。

更好的方式是让 ML 特征也尽量来自统一语义层或统一特征视图。这样人类看到的指标、Agent 调用的指标、模型使用的特征,才能保持一致。

必须建立评估和治理机制

智能问数不能只看一次演示效果,还要长期评估。

企业至少要准备一批标准问题,也就是 Golden Questions。每个问题对应标准指标、标准过滤条件、标准查询和标准答案。

例如:

  • 本月销售额是多少?
  • 最近 30 天退款率是多少?
  • 哪个渠道 ROI 下降最多?
  • 本季度销售目标完成率如何?

这些问题要反复测试。每次模型、Prompt、语义层或指标口径发生变化,都要看答案是否仍然正确。

同时,指标也要有治理流程。新增指标、修改口径、废弃指标,都要有负责人和变更记录。否则语义层也会慢慢变成新的混乱源。

一个务实的落地节奏

企业可以按这样的节奏推进。

第一步,选一个业务域。不要做全公司,先做一个价值明确的小场景。

第二步,整理高频问题。先知道业务真正会问什么,再决定建哪些指标。

第三步,整理核心指标和维度。把指标口径、时间口径、默认过滤条件和负责人定义清楚。

第四步,在数仓之上建设分析模型和语义层。不要让模型直接面对复杂底层表。

第五步,做智能问数入口。先覆盖高频问题,返回答案、口径、图表和证据链。

第六步,建立评估集和权限校验。确保系统答得准、看得对、可追溯。

第七步,再开放给 Agent、Dashboard 和 ML。让它们复用同一套语义,而不是重复建设。

结语

企业落地智能问数,真正的起点不是大模型,也不是 SQL,而是业务语义。

如果指标口径不清,权限不清,业务对象不清,数据来源不清,大模型能力再强,也只能在混乱上做推理。

更可行的路径是:

先在一个业务域里沉淀统一语义层,再在语义层之上做人类问数、Agent 调用和 ML 特征复用。

智能问数只是入口,统一语义层才是底座。

只有先把统一语义层建设起来,智能问数才不会停留在 Demo 阶段;业务人员问数、Agent 调用数据、机器学习模型使用特征,才能在统一口径下清晰、可信、稳定地运行。

返回专题 · 智能问数与语义层 下一篇:智能问数系统如何做回归测试

持续沉淀企业 AI 技术内容。