2026年7月16日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

企业级 RAG 的知识分层:实体、关系、属性与规则如何落库

发布日期:2026-07-09 21:13:52 浏览次数: 1515
作者:AD观察站

微信搜一搜,关注“AD观察站”

推荐语

企业级RAG系统如何避免“召回乱、查询慢”?关键在于为不同知识类型匹配合适的存储,实现精准召回与逻辑推理的结合。

核心内容:
1. 企业知识库的分层架构与不同数据库的分工
2. 四类核心业务知识(实体、关系、属性、规则)的存储策略
3. 图数据库在表达确定性业务逻辑上的关键作用

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家
实体、关系、属性、规则如何与业务真正挂钩
很多团队在做企业知识库时,陷入了一个误区:把所有文档塞进向量库,或者把所有知识塞进图数据库,然后发现系统要么召回乱,要么查询慢,要么答案不可信。 

问题的根源不是工具选错了,而是没想清楚每类知识该以什么形式存在哪里。

· · · ✦ · · ·

一、企业知识库和 RAG 系统分层

这五层不是竞争关系,而是分工。

例如用户问:

上海用户办理 5G畅享199 后,还能不能叠加宽带融合优惠?

Milvus 可以召回相关政策、活动说明和客服口径。

但 Neo4j / NebulaGraph 才适合查询:

5G畅享199套餐 --互斥--> 老融合优惠
宽带融合优惠 --适用客户群--> 新装用户
宽带融合优惠 --适用区域--> 上海
宽带融合优惠 --生效时间--> 2026年7月1日到2026年12月31日
规则A --来源于--> 政策文档B

这些是确定性业务关系,不能只靠向量相似度判断。

二、知识分类

企业的业务知识大致分为四类,存储方式完全不同。

第一类:主数据与实体(必须结构化,进图数据库)

这是业务的骨架,是所有问答的起点。

产品(套餐、服务、商品)

产品编码、标准名称

别名(用户说的非标准叫法)

权益(套餐包含的内容)

活动(促销、优惠、限时政策)

客户群(新装用户、存量用户、企业客户)

区域(省市分公司、渠道区域)

渠道(线上营业厅、实体营业厅、客服热线)

这些内容的特点是:稳定、有唯一标识、可复用、需要精确命中。

不能只存成文档切片,因为文档是“某一份政策里写了这个产品”,但主数据是“这个产品在整个系统里是谁”。

推荐存入:Neo4j / NebulaGraph 图数据库,作为节点(Node)。

第二类:关系(业务规则的骨架,进图数据库)

关系是图数据库真正发挥价值的地方。企业业务中,关系不是模糊的,而是确定的。

包含:套餐包含哪些权益。例:5G畅享199 → 包含 → 100G流量包。

互斥:两个优惠不能同时享受。例:5G畅享199 → 互斥 → 老融合优惠。

适用:活动适用哪些客户群。例:宽带融合优惠 → 适用于 → 新装用户。

依赖:办理条件依赖什么。例:宽带融合优惠 → 依赖 → 宽带在网状态。

来源于:规则出处。例:规则A → 来源于 → 政策文档B。

别名是:非标准名称与标准名称映射。例:“畅享199” → 别名是 → 5G畅享199套餐。

限制于:地域或时间限制。例:活动C → 限制于 → 上海区域。

覆盖:新规则覆盖旧规则。例:规则2026版 → 覆盖 → 规则2025版。

这些关系是业务的真实逻辑,无法从语义相似度中推断出来。

向量库可以找到“和这份文档内容相似的文档”,但它不知道两个产品是否互斥。

推荐存入:Neo4j / NebulaGraph 图数据库,作为边(Edge)。

第三类:属性(节点和边上的限定条件)

每个实体和关系都有属性,属性是做过滤和判断的关键。

实体节点属性示例(以产品为例):

     product_id: P1000199
     canonical_name: 5G畅享199套餐
     aliases: ["畅享199", "199融合", "5G 199套餐"]
     product_code: P1000199
     status: 生效中
     launch_date: 2025-01-01
     valid_regions: ["上海", "浙江", "江苏"]
     channels: ["线上营业厅", "客服热线"]   

关系边属性示例(以互斥关系为例):

     relation_type: conflicts_with
     subject: 5G畅享199套餐
     object: 老融合优惠
     region: 上海
     valid_from: 2026-01-01
     valid_to: 2026-12-31
     confidence: 1.0(人工确认)
     source_doc_id: policy_doc_202601
     confirmed_by: 业务负责人A
     confirmed_at: 2026-03-15   

属性的核心价值是做查询时的过滤条件。

如果没有属性,查出来的关系是“全局的”,不知道这个互斥规则是否在上海生效、是否还在有效期内。

有了属性,查询就可以是:

    查 5G畅享199 在上海当前生效的互斥关系,且经过人工确认的。

第四类:规则(从文档里来,但不能直接进图)

这是企业知识里最难处理的部分。

规则通常藏在文档里,表现形式是:

“新装宽带用户不可重复享受老融合优惠”

“合约期内退订需收取违约金”

“活动期间叠加权益包,需在线上渠道办理”

“仅限上海、浙江、江苏区域生效”

这类规则有时间限制、区域限制、渠道限制、客户群限制,而且可能随政策更新而变化。

错误做法是:让模型直接从文档抽取,然后写入图数据库。

正确流程应该是:

文档原文 → 模型抽取候选规则

记录候选关系(含置信度、证据片段、来源文档)

进入候选池(待确认状态)→ 业务人员审核

确认后写入 Neo4j / NebulaGraph 正式图谱 → 保留版本记录和审计记录

候选规则字段建议:

     候选关系 ID
     subject(主体)
     predicate(关系类型)
     object(客体)
     置信度
     来源文档 ID
     证据原文片段
     抽取时间
     状态:待确认 / 已确认 / 已驳回
     确认人
     确认时间
     备注   

· · · ✦ · · ·

三、弱结构文档:不要强行抽成图

企业里有大量文档,根本就不适合直接进图数据库:

政策原文

客服话术

培训材料

活动说明

FAQ

投诉处理口径

营销方案

采访纪要、会议纪要

这些内容的特点是:语言自然、颗粒度不一、结构不稳定,但它们是系统回答问题的“原始证据”。

这类内容的正确处理方式:

     文档 → 切片(chunk)→ 向量化 → 存入 Milvus

     同时保留:
     原文存入 MongoDB
     文档状态、版本、上传时间、所属业务域等元数据
     切片与产品/活动/规则节点的关联 ID   

这样,Milvus 负责语义检索,MongoDB 负责原文回填,而切片本身通过 ID 与图谱里的产品、规则建立引用关系。

四、查询链路:五层如何协同工作

用一个具体例子说明整条链路:

用户问题:上海用户办理 5G畅享199 后,还能不能叠加宽带融合优惠?

Step 1 — 意图识别 + 实体提取(LLM)

     产品:5G畅享199
     区域:上海
     动作:叠加办理
     目标:宽带融合优惠
     关注点:互斥限制、办理条件   

Step 2 — 别名归一(Neo4j / NebulaGraph)

     “畅享199” → 标准产品 ID:product_5g_199
     “宽带融合优惠” → benefit_broadband_bundle   

Step 3 — 向量召回(Milvus + ES)

     召回相关政策原文、活动说明、客服口径
     过滤条件:region=上海, status=生效中, channel包含线上   

Step 4 — 图谱关系扩展(Neo4j / NebulaGraph)

     以 product_5g_199 为起点,查询:
     → conflicts_with 关系(互斥)
     → applies_to 关系(适用客户群)
     → requires 关系(办理条件)
     → valid_in 属性过滤(上海,当前生效)

     查出:
     5G畅享199 → 互斥 → 老融合优惠(上海,生效中)
     宽带融合优惠 → 适用于 → 新装用户
     宽带融合优惠 → 依赖 → 宽带在网状态   

Step 5 — 证据回填(MongoDB)

     找到政策文档原文片段:
     “5G畅享199套餐面向上海新装融合用户,不可与老融合优惠重复享受...”  

Step 6 — 答案生成(LLM)

     如果该用户已享受老融合优惠,则不能叠加宽带融合优惠。
     原因:5G畅享199与老融合优惠存在互斥关系(上海区域,2026年全年生效)。
     如用户为新装宽带用户且宽带在网,则满足宽带融合优惠的办理条件,可以单独办理。
     依据:政策文档A 第3条。   

五、什么情况下不该上图数据库?

并非所有 RAG 项目都需要图数据库。以下情况可以暂缓:

知识量少,关系不复杂,全靠文档语义检索就能满足;

业务规则频繁变化、尚未稳定,图谱很快就会过期;

团队缺乏运维 Neo4j / NebulaGraph 的能力;

没有人工审核机制,关系质量无法保证。

如果以上条件都符合,可以先用 Milvus 做轻量化的 Vector Graph RAG

把实体、关系、文档切片都向量化,通过 ID 引用串联,待关系稳定后再逐步沉淀到 Neo4j / NebulaGraph。

六、一个容易踩的坑:让模型直接生成图查询语句

很多团队尝试让大模型根据用户问题,自动生成 Cypher(Neo4j 查询语言)或 nGQL(NebulaGraph 查询语言)。

这在 Demo 阶段很流畅,但在生产环境容易出问题:

模型生成的查询语句可能引用不存在的边类型;

变长路径查询没有剪枝,容易路径爆炸;

模型不了解图谱的实际数据分布,查出空结果或超大结果集;

每次生成的查询不一致,难以调试和监控。

推荐做法是:预定义查询模板,让 LLM 负责填参数,而不是生成查询本身。

例如:

     查询模板:
     查找产品 {product_id} 在区域 {region} 的所有互斥关系,过滤条件:生效中,人工确认。

     LLM 只需要识别:
     product_id = product_5g_199
     region = 上海   

这样既保证查询稳定,又降低图数据库的风险。

七、总结:企业知识分层存储原则

主数据 + 标准实体:Neo4j / NebulaGraph(节点)

确定性业务关系:Neo4j / NebulaGraph(边 + 属性)

候选关系(待确认):候选池(MongoDB 或专用表)

文档原文 + 版本:MongoDB

文档切片 + 语义向量:Milvus

关键词 + 产品编码:Elasticsearch

LLM:意图理解 + 关系抽取 + 答案生成

图数据库(Neo4j / NebulaGraph)真正的价值,不是让 RAG 更“炫”,而是:

让知识不只是能被检索到,还能被治理、被校验、被追溯、被复用。

最终目标不是建一个很大的图,而是建立一套:

可治理(有人工审核机制)

可追溯(有证据链和版本记录)

可复用(别名归一、节点去重)

可解释(答案有关系路径支撑)

可审计(每条关系有来源和确认记录)

的企业知识能力。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅