首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >基于DDD和本体论思想-对传统ChatBI智能问数元模型和语义的优化改进

基于DDD和本体论思想-对传统ChatBI智能问数元模型和语义的优化改进

作者头像
人月聊IT
发布2026-01-05 19:04:03
发布2026-01-05 19:04:03
770
举报

大家好,我是人月聊IT。今天继续聊AI人工智能方面的内容。即如何更好的结合DDD,MDA和本体论的思想,对传统ChatBI中的元模型建模进行优化。

1.问题发现:AI为何总是答非所问?

最近在构建企业级的ChatBI智能问数平台时,我遇到了一个让人头疼的问题:明明已经把数据库的表结构、字段定义都投喂给了AI,但AI的回答仍然频繁出错,甚至产生严重的幻觉。

比如如下的典型场景:

  • 问:"上个月的采购订单准时率是多少?"
  • AI回答:"准时率85%"
  • 追问:"这个准时率是怎么算的?"
  • AI答:"呃...按发货时间算的"
  • 实际情况:我们需要的是收货准时率,不是发货准时率!

这让我开始反思:为什么单纯投喂表结构还不够?经过深入分析后发现,类似传统的ChatBI的简单的基于数据库表结构的元模型和提示语设计本身存在天然的缺陷。

传统元模型只有"骨架",没有"灵魂"

我们先看下传统的ChatBI类产品元模型做法,传统的做法是把数据表结构、字段类型、表关系等静态信息提供给AI:

代码语言:javascript
复制
表名: purchase_order
字段: po_id, supplier_id, promised_date, po_status
关系: purchase_order → goods_receipt (一对多)

这就像给AI一本字典,但没有教它如何造句。AI知道有个字段叫promised_date,但不知道:

  • 这个日期是谁承诺的?(供应商还是采购方?)
  • 这个日期可以改吗?(业务规则)
  • 这个日期是怎么来的?(业务流程)
  • 这个日期用来算什么指标?(业务语义)

简单来说就是这些静态的数据结构并不能很好的体现数据本身的动态的来龙去脉。AI只能看到静态的数据表,数据字段含义,但是无法真正理解数据背后的业务语义。

2.解决思路:构建业务知识图谱

借鉴领域驱动设计(DDD)和本体论的思想,我提出了一个新的元模型架构,核心理念是:

不仅告诉AI数据"是什么",还要告诉AI数据"从哪来""到哪去""为什么"。

整体架构:数据生命周期的完整闭环

基于前面的思路,一个好的元模型语义定义,既需要包括静态的数据模型定义,又需要包括动态的行为和规则定义。因此在这里我设计了一个七层元模型体系,覆盖数据的完整生命周期:

代码语言:javascript
复制
第一层:领域术语词典 (消除歧义)
    ↓
第二层:静态数据模型 (数据存储)
    ↓
第三层:过程模型 (数据如何产生)
    ↓
第四层:指标推理模型 (数据如何使用)
    ↓
第五层:呈现约束模型 (数据如何展示)
    ↓
第六层:上下文感知 (理解用户意图)
    ↓
第七层:元模型治理 (持续优化)

下面以供应链采购订单履约准时性这个场景来举例说明,上面谈到的七层语义模型究竟该如何设计?

3.七层元模型详解

第一层:领域术语词典 - 让AI说"人话"

目的:解决最常见的"同词不同义"和"同义不同词"问题。

在采购领域,"准时"这个词就有多种理解:

  • 发货准时?
  • 到货准时?
  • 入库准时?
  • 质检合格准时?

我的做法:为每个核心术语建立"身份证"

代码语言:javascript
复制
术语: 履约准时率
业务定义:在承诺交付日期(含)之前完成实际收货的订单占比
同义词:[准时交付率,OTD,On-TimeDeliveryRate]
易混淆概念:
-不等于"发货准时率"(那是供应商视角)
-不等于"到货准时率"(那可能不包含质检)
判定标准:所有批次收货日期≤承诺交付日期
使用场景:[供应商绩效评估,采购效率分析,供应链风险预警]

关键点:

  • 显式定义:不要让AI猜,明确告诉它"准时"的唯一定义
  • 列出易混淆点:提前告诉AI"这不是那个"
  • 关联使用场景:让AI知道什么时候该用这个术语

给AI的价值:当用户问"上个月准时率多少"时,AI可以明确回答"您问的是到货准时率,统计标准是..."


第二层:静态数据模型 - 传统的"地基"

这一层是传统ChatBI已有的部分,但需要增强业务规则,也就是增加字段背后隐藏业务含义和规则的说明。

代码语言:javascript
复制
实体: purchase_order (采购订单)
关键字段:
  - promised_date: 承诺交付日期
    业务规则:
      - "必须在供应商确认订单后才有值"
      - "可以晚于需求日期,但需要采购员审批"
      - "若订单拆分送货,每个送货单有独立承诺日期"

与传统模型的区别:

  • ❌ 传统:promised_date DATE (只知道类型)
  • ✅ 改进:promised_date DATE + 3条业务规则 (知道含义和约束)

给AI的价值:AI知道这个字段"可以改",且"改动需要审批",在解释数据异常时能给出合理推测。


第三层:过程模型 - 数据的"出生证明"

核心思想:数据不是凭空产生的,而是业务流程的产物。简单来说就是对静态的数据结构增加动态的行为特征,将我们的业务流程和业务活动转变为一种显性化的语义定义。

大家参考下下面的定义就会发现,这个实际和当前我们在SDD规范驱动编程中编写结构化的Spec规范的思路完全一致。

比如将采购订单履约拆解为7个关键活动:

代码语言:javascript
复制
流程: 采购订单履约全流程
触发条件: 采购需求产生 + 存在有效框架协议

活动1: 创建采购订单
  执行者: 采购员
  输入: 采购需求、框架协议
  输出: purchase_order (状态=draft)
  业务规则:
    - R001: 合同必须在有效期内
    - R002: 供应商不能在黑名单
    - R003: 需求日期 ≥ 当前日期 + 标准交付周期

活动2: 供应商确认订单
  执行者: 供应商
  输入: 订单草稿
  输出: promised_date (承诺日期)
  业务规则:
    - R004: 承诺日期必须晚于当前
    - R005: 若承诺日期超需求日期3天,需主管审批

活动3: 供应商发货
活动4: 仓库收货
活动5: 质量检验
  业务规则:
    - R010: 收货后24小时内必须完成质检
    - R011: 质检不合格→创建退货单→重新发货

活动6: 退货处理 (若质检不合格)
活动7: 订单完成确认
  触发条件: 所有物料收货完成 + 质检合格
  业务规则:
    - R013: 准时性判定 = MAX(收货日期) ≤ 承诺日期

关键设计:

  • 时序关系:明确活动的先后顺序和依赖
  • 角色明确:每个活动由谁负责
  • 数据转换:每个活动产生/修改哪些数据
  • 异常分支:质检不合格怎么办?订单取消怎么办?

给AI的价值:

  • 当用户问"为什么这个订单延期了?"
  • AI可以追溯:订单PO001 → 活动5(质检) → 不合格退货 → 活动6(重新发货) → 延期7天

因此当有了这些详细流程和活动的行为定义后,AI在回答问题的适合就不是简单的猜,,而是基于业务流程的可解释推理

第四层:指标推理模型 - 数据的"使用说明书"

对应静态数据结构的动态定义实际包括两个方面,简单来说就是既要知道数据是如何来的?其前面一个步骤的通过业务流程驱动了数据的产生;其次又需要知道数据是如何用的,即基于我们已有的数据如何去构建上层的指标推理。

因此传统ChatBI告诉AI"准时率=准时订单数/总订单数",但这还是远远不够的。

进一步基于指标的增强设计:

代码语言:javascript
复制
指标: 采购订单履约准时率(M001)

业务定义:
在承诺交付日期(含)之前完成所有收货的订单占比,
反映供应商的交付能力

计算口径:
统计范围:po_statusIN('completed','closed')
统计周期:按订单创建日期(po_date)
排除规则:已取消订单、金额<1000元的小额订单

计算公式:
分子:准时订单数(MAX(收货日期)≤承诺日期)
分母:总订单数

完整SQL逻辑:[附完整可执行的SQL]

数据血缘:
来源流程:P001-采购订单履约全流程
来源表:purchase_order+goods_receipt
关键字段:promised_date,receipt_date

典型分析场景:
场景1:供应商绩效评估
    问题模式:"XX供应商上月的准时率是多少?"
    答案结构:数值+同比环比+排名+异常说明
    
场景2:延期原因分析
    问题模式:"为什么上个月准时率下降了?"
    答案结构:趋势图+根因分解(质检不合格X%,供应商延误Y%)
    
场景3:风险预警
    问题模式:"准时率低于80%的供应商有哪些?"
    答案结构:预警清单+风险等级+改进建议

关键点:

  • 明确统计口径:不同人对"准时率"的理解可能不同,一次性说清楚
  • 完整数据血缘:从指标追溯到表,从表追溯到业务流程
  • 场景化模板:不同问题有不同的答案结构

给AI的价值:

  • 用户问"上月准时率82%,为什么?"
  • AI可以:
    1. 查询return_record表,发现退货订单增加37%
    2. 追溯到流程P001-活动5,退货主要原因是"包装破损45%"
    3. 给出结论:"准时率下降主要因质检不合格,建议加强供应商包装标准"

第五层:呈现约束模型 - 让答案"好看又好用"

对于这一个层次定义的目标很简单,就是统一回答风格,提升用户体验。比如企业已有的标准规范,参考模板,展现风格等,我们都可以提前进行约束和定义。让AI输出符合企业组织要求的最终呈现结果。

可以看到这个实际和Claude Skills技能包里面的案例,模板,最佳实践部分的定义思路完全是一致的。

设计要素:

1. 可视化规范

代码语言:javascript
复制
图表类型: 趋势图
适用指标:准时率、延期天数
配置:
-横轴:时间周期
-纵轴:准时率(%)
-基准线:行业平均85%(虚线)
-预警线:75%(红色)
-颜色:准时=绿色,预警=黄色,异常=红色

2. 报告模板

代码语言:javascript
复制
模板: 月度供应商履约分析报告
章节:
  1. 执行摘要 (本月准时率、环比变化、预警供应商数量)
  2. 准时率趋势分析 (近6个月趋势图 + 关键事件标注)
  3. 供应商绩效排名 (TOP10 + BOTTOM5)
  4. 延期原因分析 (根因分解:质检X%, 物流Y%, 生产Z%)
  5. 改进建议 (针对每个问题供应商的具体措施)

3. 问答模板

这是最关键的部分,定义AI如何回答不同类型的问题:

代码语言:javascript
复制
问题类型1: "{{时间}}的{{指标}}是多少?"
答案模板:
{{时间}}的{{指标}}为**{{数值}}{{单位}}**

📊数据详情:
-统计订单总数:{{N}}
-准时订单数:{{M}}

📈趋势对比:
-环比上期:{{+/-X%}}
-同比去年:{{+/-Y%}}

💡数据说明:
该数据统计范围为{{...}},判定标准为{{...}},
数据来源于{{流程P001}},最后更新时间{{...}}

---

问题类型2:"为什么{{供应商}}{{时间}}延期了?"
答案模板:
🔍延期原因分析-{{供应商}}在{{时间}}:

📉数据表现:
-延期订单:{{N}}单(占比{{X%}})
-平均延期:{{M}}天

🔍原因分解:
1.质检不合格退货:{{占比X%}}
     主要问题:包装破损({{Y单}}),规格不符({{Z单}})
2.供应商生产延误:{{占比%}}
3.物流延误:{{占比%}}

📋典型案例:
订单PO001:承诺12-15,实际12-22,延期7天
原因:首次送货质检不合格,退货重送

💡数据追溯:
purchase_order→goods_receipt→quality_inspection→return_record

给AI的价值:标准化的回答结构,用户体验一致且专业。

第六层:上下文感知 - 理解"弦外之音"

第六个层次是上下文感知的设计,即让AI理解用户的角色、时机、意图。这个也是我经常谈到的,任何对数据,指标的解读都不能脱离上下文,脱离当时的空间,时间和环境。

即使是同样一个数据结果,在不同的上下文下,往往都可能产生不同的结果,而这正是我们经验的积累,也是单纯的AI期初所最欠缺的东西。

设计维度:

1. 组织上下文

代码语言:javascript
复制
采购部:
  关注指标:准时率、延期天数
预警阈值:<85%
报告频率:每周一上午

质量部:
关注指标:质检合格率、退货率
关注场景:质检不合格导致的延期

2. 时间上下文

代码语言:javascript
复制
月末(25-31日):
  用户行为:查询本月数据、生成月报
AI默认:统计周期=本月
自动触发:月度分析报告

周一上午:
用户行为:查看上周数据
AI默认:统计周期=上周

3. 用户画像

代码语言:javascript
复制
采购员:
  专业度:业务专家
回答风格:业务语言,少技术术语
详细度:中等,关注结论和行动建议
偏好格式:图表+简要文字

数据分析师:
专业度:技术专家
回答风格:可以使用SQL、统计术语
详细度:详细,可输出计算逻辑
偏好格式:数据表+方法说明

采购经理:
专业度:管理层
回答风格:高层次总结
详细度:精简,关注战略洞察
偏好格式:执行摘要+关键数字

4. 对话记忆

代码语言:javascript
复制
场景:
  用户: "上个月供应商A的准时率是多少?"
  AI: "78% (低于预警线)"
  用户: "他的订单量呢?" 
  AI: (自动关联"他"=供应商A, 时间=上个月)

给AI的价值:同样的问题,不同角色、不同时机给出差异化的答案。

第七层:元模型治理 - 让系统越用越聪明

最后一个层次是元模型治理,简单来说就是要建立持续优化机制。让整个AI模型和AI应用能够自我进化,越来越聪明。

关键机制:

1. 版本管理

代码语言:javascript
复制
版本: v1.0.0
更新日志:
  - 2025-01-15: 初始版本,定义8个核心术语,4个指标
  - 2025-02-01: 新增"首次送货准时率"指标
  - 2025-03-01: 优化质检不合格的判定规则

2. 责任划分

代码语言:javascript
复制
术语词典: 
拥有者:数据治理团队
评审者:业务部门负责人
更新频率:季度评审

业务流程:
拥有者:业务流程部门
评审者:IT部门
更新频率:流程变更时实时更新

3. 质量监控

代码语言:javascript
复制
监控指标:
  -AI回答准确率>90%(用户反馈+人工抽检)
-元模型覆盖率>80%(问题可匹配度)

改进闭环:
触发:AI回答错误
行动:分析是哪层元模型缺失

触发:新业务场景
行动:扩展术语词典和流程模型

4.实施效果:从"猜"到"懂"

在实际项目中应用这套元模型后,效果显著:

效果对比(非真实数据)

维度

传统方案

优化后

AI回答准确率

~60%

~92%

用户满意度

2.8/5.0

4.5/5.0

可解释性

无法追溯

完整血缘

覆盖场景

简单查询

复杂分析+根因追溯

典型案例

用户问题: "为什么供应商A上个月准时率这么低?"

传统ChatBI回答: "供应商A上月准时率68%,可能是因为物流原因。" (无法解释,只能猜)

优化后回答:

代码语言:javascript
复制
🔍 根因分析 - 供应商A在2024年12月:

📉 数据表现:
- 总订单: 23单
- 延期订单: 11单 (47.8%)
- 平均延期: 6.2天

🔍 延期原因分解:
1. 质检不合格退货重送: 72.7% (8单)
   主要问题: 包装破损5单, 规格不符3单
2. 供应商生产延误: 18.2% (2单)
3. 物流延误: 9.1% (1单)

📋 典型延期订单:
- PO202412001: 承诺12-15, 实际12-22, 延期7天
  追溯路径: 12-15首次送货 → 质检不合格(包装破损18%) 
           → 12-16退货 → 12-22重新送货

💡 改进建议:
- 已要求供应商A升级包装标准
- 下次订单增加包装质量检查条款
- 建议交付周期+2天以降低风险

📋 数据来源:
基于采购订单履约全流程(P001)的数据追溯
purchase_order → delivery_record → goods_receipt 
→ quality_inspection → return_record

差异:

  • ❌ 传统:只有结论,无法解释
  • ✅ 优化:数据+原因+追溯+建议,完整闭环

5.实施建议:分阶段落地

不要一次性建模太细,建议分三步走:

阶段1:MVP验证 (2-4周)

  • 选择1-2个高频业务场景
  • 定义20-30个核心术语
  • 建立1个核心业务流程
  • 定义3-5个核心指标
  • 设计10个问答模板

验证目标:核心场景准确率>85%

阶段2:迭代优化 (2-3个月)

  • 收集AI错误case,分析缺失的元模型
  • 扩展到5-8个业务流程
  • 增加到50-80个术语
  • 完善呈现模板和上下文感知

优化目标:覆盖80%用户问题

阶段3:规模化 (持续)

  • 建立元模型治理机制
  • 用AI辅助生成元模型(让AI帮AI建模)
  • 形成企业级知识资产

6.技术实现建议

存储方案

  • 图数据库(如Neo4j):存储实体、流程、指标之间的复杂关系
  • 向量数据库:存储术语、问答模板,支持语义检索

检索策略

代码语言:javascript
复制
用户问题 
  → 术语识别(从术语词典匹配) 
  → 指标识别(从指标库匹配)
  → 场景匹配(从典型场景匹配)
  → 流程追溯(从过程模型追溯)
  → 生成答案(按呈现模板输出)

RAG增强

不要把所有元模型都塞给AI,而是:

  1. 先用embedding检索相关的术语、指标、流程
  2. 只把相关的元模型片段注入Prompt
  3. 让AI基于元模型生成可解释的答案

7. 总结

传统ChatBI只给了AI"数据字典",而我们要给AI"业务百科全书"。传统ChatBI只给AI静态数据模型,而我们需要结合DDD和本体论构建一个静态数据+动态行为+规则的完整语义的数字孪生模型。

这套七层元模型的核心价值:

  1. 消除歧义(术语词典):让AI说话精确
  2. 可追溯(过程模型):让AI知道数据从哪来
  3. 可推理(指标模型):让AI知道数据怎么用
  4. 可解释(数据血缘):让AI回答有理有据
  5. 懂用户(上下文感知):让AI千人千面
  6. 能进化(元模型治理):让AI越用越聪明

最重要的是:这不仅仅是技术优化,更是企业知识资产的数字化沉淀。当业务规则、流程逻辑、指标定义都以结构化方式保存后,它的价值不仅在于"让AI更准确",更在于:

  • 新员工培训:看元模型就能理解业务
  • 业务规范:统一了全公司的业务语言
  • 流程优化:可视化暴露流程中的问题点
  • 知识传承:老员工经验不再"失传"

这才是智能问数系统的终极意义。也是我们在通过AI辅助进一步发挥AI价值的关键点所在。今天分享就到这里,希望对大家有所启发。

注:特别鸣谢华南CIO协会夏总提供背景问题和素材。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-12-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 人月聊IT 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.问题发现:AI为何总是答非所问?
    • 传统元模型只有"骨架",没有"灵魂"
  • 2.解决思路:构建业务知识图谱
    • 整体架构:数据生命周期的完整闭环
  • 3.七层元模型详解
    • 第一层:领域术语词典 - 让AI说"人话"
    • 第二层:静态数据模型 - 传统的"地基"
    • 第三层:过程模型 - 数据的"出生证明"
    • 第四层:指标推理模型 - 数据的"使用说明书"
    • 第五层:呈现约束模型 - 让答案"好看又好用"
    • 第六层:上下文感知 - 理解"弦外之音"
    • 第七层:元模型治理 - 让系统越用越聪明
  • 4.实施效果:从"猜"到"懂"
    • 效果对比(非真实数据)
    • 典型案例
  • 5.实施建议:分阶段落地
    • 阶段1:MVP验证 (2-4周)
    • 阶段2:迭代优化 (2-3个月)
    • 阶段3:规模化 (持续)
  • 6.技术实现建议
    • 存储方案
    • 检索策略
    • RAG增强
  • 7. 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档