大家好,我是小耶,写功课只是为了我踩过的坑,你们别再踩了!
搭过RAG的兄弟应该都经历过这种时刻:向量检索明明返回了Top-K最相似的文档,大模型基于这些文档生成的回答,业务方一看就说“口径错了”。
比如问“上个月的复购率是多少”,模型从相似的文档里提取了一个数字,但这个数字是按“自然月内下单两次”算的,而业务口径是“90天内下单两次”。相似度匹配找到了相关文档,但语义层没有参与过滤和重排,模型在错误的定义上做了正确的计算。
这就是外挂向量库方案的根本缺陷:它只解决了“找得像不像”,没有解决“找得对不对”。
一、语义断层:外挂方案的结构性盲区
外挂方案的数据流是:业务库 → ETL抽取 → 向量化 → 写入向量库 → 大模型调API检索 → 返回相似文档。
在这条链路上,业务语义在哪里定义? 在表注释里、在指标文档里、在老员工的记忆里、在提示词的某个角落。大模型拿到的是一段Embedding向量,向量只编码了文本的语义相似性,不编码“有效订单排除测试单”“复购率按90天窗口计算”这些业务口径。
结果就是:检索结果“看起来相关”,但口径可能完全错了。模型不知道自己错,业务方一看就知道错。
更深一层的问题是:语义散落在多个地方,谁维护、放哪儿、怎么和大模型对齐,在库外方案里没有一个统一的答案。
二、库内语义构建:把“业务口径”变成数据库的一等公民
KES AI数据库在发布会中明确将“库内语义构建”列为三大核心能力之一,与“库内计算推理”“库内原生数据安全管控”并列。发布会给出的痛点是明确的:业务语义缺失是企业落地AI的第一大障碍。
库内语义构建的工程逻辑,不是“在数据库里存一份指标文档”,而是把实体、指标、关系、口径定义在数据库层,让向量检索在返回结果之前,先经过语义层的过滤和重排。
具体来说,它改变的是检索的执行路径:
库外方案:向量相似度 → Top-K结果 → 直接返回给模型
库内语义方案:向量相似度 → 语义层过滤(口径校验、实体对齐、权限继承)→ 重排后的结果 → 返回给模型
区别不在“向量算法更准”,而在检索结果在离开数据库之前,经过了一次业务语义的校验。
三、为什么“语义”放在数据库里比放在应用层更合理
一个自然的反问是:语义定义放在应用层、放在提示词里,不行吗?
短期可以,长期不行。原因有三个。
第一,语义的生命周期和数据的生命周期是绑定的。 业务表加了字段、口径变了,应用层的提示词需要同步修改,但没有任何机制保证同步发生。语义放在库内,和表结构、指标定义在同一个地方维护,变更时天然联动。
第二,权限和语义是同源的。 一个用户能看哪些数据,和他能基于哪些语义做推理,应该是同一套权限体系。语义放在应用层,权限在数据库层,中间天然存在一个管控断层。库内语义构建让语义层继承数据库原生的行级、列级权限。
第三,语义层是“数据不出库”的前提。 如果语义定义在库外,大模型需要把数据拉出去做口径对齐;语义在库内,口径校验和检索在数据库内部完成,数据不需要离开安全边界。
四、从“相似”到“正确”:开发者视角的收益变化
对于正在搭RAG的开发者,库内语义构建带来的变化不是“少写几行代码”,而是问题排查的方向变了。
外挂方案下,回答口径错误,你需要查:向量检索的Top-K够不够、Embedding模型对不对、提示词里的口径有没有写全、文档切片有没有截断关键定义。四个地方,四个系统,排查链路极长。
库内语义方案下,口径错误首先查语义层:实体关系定义对不对、指标口径有没有遗漏、权限过滤是不是把不该返回的结果过滤掉了。排查收敛在一个地方。
在发布会中同步推出了智能数据开发工具,覆盖特征工程、知识工程与知识图谱工程,支持将库外数据转化为可用知识,并通过KES MCP和Agent Skills对接主流AI开发工具。这套工具链的定位,是把“语义构建”从手工活变成工程化流程,而不是让每个团队从零开始定义实体和口径。
五、边界:库内语义不是“自动懂业务”
需要说清楚的是,库内语义构建不会自动理解你的业务。它提供的是承载语义的机制和位置——实体怎么定义、指标口径怎么维护、关系和权限怎么绑定,仍然需要业务方和开发团队去填充。
它的价值在于:把语义的定义、存储、检索、校验收敛到了同一个系统里,而不是散落在应用代码、提示词、文档和某个人的记忆里。语义断层是RAG“胡说八道”的根源,但填上这个断层,靠的是工程化的语义管理,而不是一个更聪明的向量算法。
六、小结
外挂向量库解决了“找得像不像”,没有解决“找得对不对”。业务语义缺失——口径散落、实体关系不清、权限断层——是RAG回答出错的更深层原因。库内语义构建把业务定义沉淀到数据库层,让向量检索的结果在返回之前经过语义校验,同时继承数据库原生的权限和安全边界。语义不会自动生成,但把语义放到正确的位置,是让RAG从“看起来对”走向“口径正确”的第一步。
小耶在手,SQL 不愁
还有什么想了解的,欢迎留言!小耶一定知无不言言无不尽……我们下次见~