把前面几轮串起来看,这一问其实是把“本体驱动的 AI 问答”从单次测试推进到工程化常驻流水线。
核心定位一句话:
库存本体作为「业务真理源 + 可版本化图谱」,让 AI 问答能力像代码一样进 CI:改一次公理、换一次模型、加一个维度,都自动跑回归、自动卡门禁。
一、整体架构:本体是 CI 里的“一等公民”
代码仓(服务代码) ├─ 库存本体定义仓(OWL/YAML/DSL) ← 版本化 ├─ 公理规则仓(BR-INV-*) ← 版本化 ├─ AI问答Prompt/编排配置 ← 版本化 └─ 测试用例仓(Golden Set YAML) │ ▼ CI Pipeline(MetaERP DevOps平台) │ ┌──────────┼──────────┐ ▼ ▼ ▼ 本体编译校验 规则可执行检查 问答回归套件 │ │ │ └──────────┼──────────┘ ▼ 门禁报告 + 血缘差异 + 发布门控关键转变:以前 CI 只测接口和表结构,现在连“业务语义”也进版本库受控。
二、库存本体在 CI 里承担的角色
CI 角色 | 本体提供的能力 | 库存场景举例 |
|---|---|---|
Schema Oracle | 类/属性/关系定义编译校验 | 新增 |
Rule Oracle | 公理可执行化,带版本号 |
|
Data Oracle | 快照化实例图做基准 | 用 2026-06-30 深圳仓快照当回归基线 |
Path Oracle | 关系图路径断言 | 成本问答必须走 |
Permission Oracle | 角色→类可见性矩阵 | 店长角色问答不得触达 |
Diff Oracle | 本体变更影响面分析 | 改 ATS 公式,自动标出受影响问答用例 |
三、CI 流水线分阶段设计(库存 AI 问答专用)
Stage 1|本体编译与契约校验
每次提交本体 DSL:
inv-ontology build inv-ontology validate --profile=metaerp-inv校验项:
- 类不能重名、关系域范围合法(
costedBy只能指向 CostLayer) - 枚举类
StockStatus值集不被删(冻结/合格/待检/报废) - 维度向量
(Material,Org,Loc,Project,OwnerType)完整性 - 与下游 Cost/GL 本体关系不断链
❌ 失败则阻断合并,避免“语义裂开”。
Stage 2|公理规则单测
把库存公理当单元测试跑:
Scenario: 冻结库存禁止出库 Given OnHandQty status = 冻结 When 请求生成销售出库事务 Then 推理引擎拒绝 AND 返回 BR-INV-017覆盖:
- ATS 公式
- 成本层取值规则(出库不回查标准价)
- 寄售库存不计自有资产
- 项目库存维度隔离
Stage 3|AI 问答回归(Golden Set)
拉起沙箱库存本体图(不连生产),跑上一轮讲的自动化用例集:
用例组 | CI 触发方式 |
|---|---|
ATS 口径类 | 每次提交必跑 |
成本血缘类 | 成本规则变更时强化跑 |
冻结/状态机类 | 状态枚举变更时跑 |
跨域溯源类 | Cost/GL 本体联动 PR 时跑 |
权限脱敏类 | 角色矩阵变更时跑 |
断言输出结构化:
{ "case": "INV-AI-0123", "entity_link": "pass", "ats_value": 500, "axiom_hit": "BR-INV-ATS-v2.1", "faithfulness": 1.0, "leak_costlayer": false }Stage 4|本体变更影响分析(Diff Gate)
这是 MetaERP 特色能力,最值钱。
比如 PR 里把:
ATS = onHand - reserved - frozen - qcHold 改为 ATS = onHand - reserved - frozen (去掉qcHold)CI 自动产出:
影响面分析: 受影响公理: BR-INV-ATS-v2.1 受影响问答用例: 37条 (其中12条必挂) 受影响下游: 销售可用量看板 / OTC出库校验 关联成本规则: 无 关联GL凭证: 无 建议: 需业务签核,禁止自动合并不是看代码 diff,是看业务语义影响面。
Stage 5|模型版本对照回归
盘古模型换版(v3.2 → v3.3)时:
- 同一套本体快照 + 同套 Golden Set
- 双跑对比:
公理命中率 98% → 99.2% 幻觉率 0.7% → 0.3% 成本血缘完整率 96% → 98% 新增越权泄露 0 - 下降指标直接卡发布门禁
Stage 6|发布门禁策略
指标 | 门禁阈值 | 动作 |
|---|---|---|
实体链接准确率 | ≥99% | 否则 block |
公理命中率 | ≥98% | 否则 block |
ATS数值一致率 | 100% | 否则 block |
越权泄露率 | 0 | 否则 block |
幻觉率 | ≤0.5% | 标红人工审 |
本体断链数 | 0 | 否则 block |
四、持续集成里的“本体版本管理”机制
和代码同套 Git 工作流:
ontology/ inv/ classes.yaml # OnHandQty/Lot/StockStatus... properties.yaml # costedBy/postsTo... axioms/ BR-INV-ATS.yaml BR-INV-017.yaml dimensions.yaml # 维度向量定义 rules-engine/ inv-rules.bundle ai-qa/ prompts/ golden_cases/- 每个 MR 带
ontology-version-bump - 打 tag:
inv-ontology@2.6.0 - AI 问答服务绑定本体版本,不漂移
- 支持多版本并行:旧模型挂旧本体,新模型挂新本体做灰度
五、和 MetaERP 工程体系的对齐点
能力 | 对接方式 |
|---|---|
分钟级自动化测试流水线 | 库存问答套件挂接主流水线 |
元数据多租 | 租户扩展子类走独立分支,合主干前跑基类回归 |
可观测 | 线上问答命中公理ID、路径耗时、faithfulness 上报 |
灰度发布 | 新本体+新模型先对 1 个库存组织开放 |
回滚 | 本体版本回退 → AI 问答语义同步回退 |
六、一个真实感的 CI 流转示例
场景:业务新增“VMI寄售库存可部分转自有”
- 开发提 MR:
- 新增
OwnerType=VMI维度实例 - 新增公理
BR-INV-031 寄售转自有事件驱动成本层生成
- 新增
- CI 跑:
- Stage1 本体编译 ✅
- Stage2 新公理单测 ✅
- Stage3 Golden Set 全绿(旧用例不受影响)
- Stage4 Diff:影响 5 条新用例 + 2 条成本血缘用例
- Stage5 模型对照无退化
- 门禁:新增用例全过 → 允许合入
- 发布:绑定盘古 v3.3 灰度到深圳仓
- 线上:问答“这批VMI转自有后成本怎么算”可溯源到 BR-INV-031
七、落地建议(按优先级)
阶段 | 动作 |
|---|---|
P0 | 本体定义进 Git,ATS+冻结两条公理先版本化 |
P1 | Golden Set 50 条接 CI,门禁卡数值+公理命中 |
P2 | 接 Diff Gate,做业务影响面分析 |
P3 | 多模型对照 + 灰度本体版本 |
P4 | 租户扩展子类自动跑基类回归 |
八、一句话收口
MetaERP 库存本体支持 AI 问答 CI 的本质 =把库存业务语义版本化,让“能问出什么、怎么算、引用哪条规则”都变成可编译、可 diff、可门禁、可回滚的工程资产。