资讯动态

VeapAI 实战(二)元数据标准与 Collection 声明式管理

发布时间:2026/8/28 18:52:08 来源:尧图企业网站定制
摘要本文是 VeapAI 实战系列第二篇聚焦企业 AI 知识库中元数据标准与 Collection 的声明式管理。文章先点出知识库建设的两大痛点——字段口径混乱与向量集合手工创建易出错随后介绍标准、字段、模板三层模型说明如何通过元数据标准定义字段、由标准声明式创建 Milvus Collection并借助 sync_state 状态字段与 schema_json 快照解决标准与集合的两本账一致性问题。文中还走读了源码入口与 Milvus 操作封装总结了标准层的层级、版本、链路三个扩展点并给出可复现步骤。# 从零打通企业 AI 知识库全链路VeapAI 实战二元数据标准与 Collection 声明式管理 关键词Milvus 集合创建教程、元数据标准、动态表单 | 首发CSDN | 同步知乎 / 掘金![本系列 8 步流程总览当前② 元数据标准与 Collection]## 问题先摆出来做知识库最怕两件事字段口径乱和向量集合手工建。前者好理解政策库要发文机关 文号 生效日期工程库要项目名称 预算金额 类别每个主题一套字段靠开发硬编码加一个字段改一次代码。后者更隐蔽手动在 Milvus 里建集合维度写错、度量写错向量一进去检索结果全歪还查不出哪一步错了。VeapAI 的解法是把这两件事绑在一起元数据标准定义字段Collection 由标准声明式创建数据库里还留了同步状态。## 三层模型标准、字段、模板先看 ai_metadata_standard 和 ai_metadata_field 两张表。ai_metadata_standard 关键字段code标准编码、title、parent_id支持子标准、version、llm_id。注意最后这个字段标准上直接挂 embedding 模型后面向量作业的模型一致性约束靠它。ai_metadata_field 关键字段standard_id归属标准、field_name、field_type、is_required、schema_json。schema_json 是这张表的灵魂存 JSON Schema 片段支持类型、枚举、正则、范围、嵌套对象。前端动态表单按它渲染加字段不改代码。第三张是 ai_metadata_standard_template模板表field_schema 存一组字段定义JSON 数组含字段名、类型、必填、描述建标准时从模板导入省得反复配。这三张表放在一起看是一个字段定义可复用的设计模板是库标准是实例字段是明细。同类的标准比如各类政策文件都有一套发文机关/文号/生效日期从模板起手改几个字段就行不用每次从头配。## Collection 是怎么由标准长出来的ai_milvus_collection 是声明式管理的主体关键字段| 字段 | 说明 || ---- | ---- || metadata_standard_id | 声明结构来源。一个标准可对应多个集合单集合只对应一个标准 || vector_field / vector_dim | 向量字段名和维度维度必须与 embedding 模型一致 || metric_type | L2 / IP / COSINE || schema_json | Schema 快照用于 diff 展示 || sync_state | unknown / in_sync / out_of_sync / pending / error配 last_sync_time / last_sync_msg |字段层面两张表- ai_milvus_collection_field集合的字段定义注释直说这是 **Schema 权威**。uk_collection_metadata_field(tenant_id, collection_id, metadata_field_id) 保证一个集合里一个元数据字段只出现一次dim 对向量字段必填max_length 对 VarChar 必填。- ai_milvus_index索引定义index_typeHNSW / IVF_FLAT / IVF_PQ / AUTOINDEX、build_stateunknown / building / ready / error记录构建进度。![核心表关系标准 → 集合]## 页面操作![元数据标准编辑页]1. 在「AI 知识库 → 元数据标准」建标准挂 embedding 模型2. 标准下维护字段每个字段配 schema_json前端表单自动长出来3. 在「Milvus 管理 → 集合管理」新建 Collection选实例、选标准、定主键字段 / 向量字段 / 维度 / 度量字段列表从标准字段里勾选4. 保存后系统调 Milvus 建集合、建索引sync_state 走到 in_sync。更新标准字段后集合状态会变成 out_of_sync页面提示需要同步——这就是声明式管理的意思数据库是期望态Milvus 是实际态两边差了状态字段说话。## 源码走读业务侧入口是 com.veap.ai.controller.AiMetadataStandardControllerbasePath /metadataStandard和 com.veap.ai.controller.AiMetadataFieldController。真正操作 Milvus 的代码在 veap-milvus 的 milvusops 包- milvusops.facade.MilvusOpsFacade实现 IMilvusOpsFacade统一入口hasCollection、createCollection 等方法- milvusops.service.MilvusCollectionOpsService拼 HasCollectionParam / CreateCollectionParam 调 SDK- 每次调用前后走审计写入 ai_milvus_op_log。javaBoolean exists MilvusRUtil.requireData(resp, hasCollection);MilvusRUtil.requireData 这类工具方法把 SDK 返回的 RPC 状态做了统一断言失败直接抛——和第 1 篇的禁止吞错是同一条规矩。## 一处值得抄的设计sync_state 五态 schema_json 快照这个组合解决的是分布式系统里最烦的两本账问题。集合到底和标准一不一致不靠人肉比对靠状态字段和快照 diff。运维界面把 out_of_sync 标红剩下就是点一下同步。我自己早期版本没有这个状态标准改了字段Milvus 里还是旧的检索时按新字段过滤Milvus 直接报字段不存在排了半天。## 标准这层的三个扩展点别把标准看成一张静态字典它自带三层可扩展结构1. **层级扩展**parent_id 支持子标准。上级标准管公共字段发文机关、文号子标准加专属字段。字段定义随层级分化不互相污染。2. **版本扩展**version 字段在标准演进就有账可查。主题绑定的是 standard_code 不是标准主键第 3 篇会讲到版本变化不影响引用侧。3. **链路扩展**字段定义不只给 Collection 用。ai_semantic_template 语义模板表的表注释写了一条取值链路——topic_code → 知识主题 → 元数据标准 → 元数据字段意思是后面 AI 生成知识内容时取哪些字段、拼什么格式也是从这套标准里长的。标准定义一次Collection 建表、动态表单、语义生成三处共用这是整条链路配置化的地基。## 复现环境同第 1 篇。建一个标准、挂三个字段、创建一个维度 1024 的集合看 ai_milvus_collection.sync_state 变化再去 Milvus 侧 describe collection 验证字段一致。下一篇讲知识主题多级主题怎么绑标准以及应用主题知识配置里召回条数、匹配度阈值这些参数为什么值得单独一张表。仓库https://gitee.com/mindock/veap表结构 veap-cloud/DB/veap.sql设计文档 docs/AiMilvus/

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价