当前位置: 首页 > news >正文

01-从第一性原理理解RAG-企业知识库为什么不能只依赖大模型

从第一性原理理解 RAG:为什么企业知识库不能只依赖大模型

系列:从零构建企业 RAG 知识库(第 1 篇)

1. 先拆开企业问答的真实需求

企业并不是只需要一段“像答案的话”,而是需要:

  1. 答案基于组织允许访问的资料;
  2. 资料更新后,不必重新训练整个模型;
  3. 回答能说明来自哪份文档;
  4. 没有证据时拒绝猜测;
  5. 不同用户只能看到自己有权访问的数据。

大模型的核心能力,是根据输入 Token 和训练中学到的统计规律预测后续 Token。模型参数不是企业数据库,也不会自动知道刚更新的制度,更不能天然理解当前登录用户的数据权限。

2. RAG 的第一性结构

RAG(Retrieval-Augmented Generation,检索增强生成)把任务拆成两个阶段:

Retrieval:从外部知识中找出与问题相关、且用户有权访问的证据 Generation:把问题和证据交给模型,生成受证据约束的回答

因此,RAG 不是某个产品名称,也不等于“向量数据库”。只要系统在生成之前检索外部资料,并把结果用于约束回答,就具备 RAG 的基本结构。

3. 最小数据模型

fromdataclassesimportdataclass@dataclass(frozen=True)classChunk:"""可检索的最小证据单元。"""chunk_id:strdocument_id:strtenant_id:strtext:strsource_title:str@dataclass(frozen=True)classSearchContext:"""权限信息必须来自可信登录会话。"""tenant_id:strallowed_document_ids:frozenset[str]

tenant_idallowed_document_ids不能由模型填写,也不能从用户问题中推断。

4. 先用确定性检索理解闭环

下面不是生产级搜索,而是一个可运行的关键词重合检索器。它帮助我们看清:必须先过滤权限,再计算相关性。

importredefterms(text:str)->set[str]:"""教学分词:提取英文单词、数字和连续中文字符。"""returnset(re.findall(r"[A-Za-z0-9_]+|[\u4e00-\u9fff]",text.lower()))defretrieve(question:str,chunks:list[Chunk],context:SearchContext,top_k:int=3,)->list[Chunk]:ifnotquestion.strip():raiseValueError("问题不能为空")ifnot1<=top_k<=20:raiseValueError("top_k 必须在 1 到 20 之间")query_terms=terms(question)scored:list[tuple[int,str,Chunk]]=[]forchunkinchunks:# 权限过滤必须发生在候选进入结果之前ifchunk.tenant_id!=context.tenant_id:continueifchunk.document_idnotincontext.allowed_document_ids:continuescore=len(query_terms&terms(chunk.text))ifscore>0:# chunk_id 作为稳定排序键,保证测试结果可复现scored.append((-score,chunk.chunk_id,chunk))scored.sort()return[item[2]foriteminscored[:top_k]]

5. 没有证据时必须拒答

defbuild_grounded_prompt(question:str,evidence:list[Chunk])->str:ifnotevidence:return"现有授权资料中没有足够证据,请不要猜测。"context_text="\n\n".join(f"[{item.chunk_id}] 来源:{item.source_title}\n{item.text}"foriteminevidence)returnf""" 你是企业知识库助手。 只能根据 <evidence> 回答,不得使用无法从证据确认的事实。 回答中的关键结论必须引用对应 chunk_id。 证据冲突时说明冲突;证据不足时回答“现有资料无法确认”。 <evidence>{context_text}</evidence> <question>{question.strip()}</question> """.strip()

Prompt 约束不能保证模型永远不幻觉,最终还需要输出校验、评测和人工审核。

6. 可复验测试

deftest_permission_filter_happens_before_retrieval()->None:chunks=[Chunk("c1","d1","tenant-a","退款期限为七天","A 租户制度"),Chunk("c2","d2","tenant-b","退款期限为三十天","B 租户制度"),]context=SearchContext("tenant-a",frozenset({"d1"}))result=retrieve("退款期限",chunks,context)assert[item.chunk_idforiteminresult]==["c1"]assert"三十天"notinbuild_grounded_prompt("退款期限",result)deftest_no_evidence_refuses_to_guess()->None:prompt=build_grounded_prompt("董事长手机号是什么?",[])assert"不要猜测"inprompt

7. RAG 能解决什么,不能解决什么

RAG 能改善:

  • 私有知识接入;
  • 知识更新速度;
  • 回答溯源;
  • 一部分事实性幻觉;
  • 查询前的数据权限过滤。

RAG 不能自动保证:

  • 检索一定召回正确文档;
  • 文档本身没有错误或冲突;
  • 模型一定忠实使用证据;
  • 用户一定有权查看检索结果;
  • 所有问题都适合用知识库回答。

8. 对抗性审查

  • 文档内容同样是不可信数据,可能包含 Prompt Injection;
  • 权限过滤应在检索阶段完成,不能生成后再删除;
  • 不把整个企业文档库塞进上下文;
  • 证据必须保留文档、页码或段落等来源元数据;
  • 知识更新后要使旧索引和缓存失效;
  • 高风险答案需要人工确认。

9. 总结

RAG 的本质不是“给大模型加数据库”,而是把知识事实从模型参数中分离出来:检索系统负责找到授权证据,生成模型负责基于证据表达。企业知识库的可靠性来自两部分共同受控。

http://www.jsqmd.com/news/1292991/

相关文章:

  • 2026年舟山装修不踩雷!附合同避坑与报价参考 - 博客万
  • 还原铁粉厂家推荐从生产实力到应用场景的专业选择指南 - 栈上春秋
  • STM32 IIC协议详解:从核心原理到实战避坑指南
  • 基于STM32的智能闹钟系统:从硬件设计到软件实现的完整指南
  • 计算机毕业设计之Java推荐系统
  • 2026江西特产酸枣糕品牌合作选型大全盘点,正规合规品牌避坑指南及优质服务商甄选攻略 - 商业大观
  • 终极指南:5分钟快速上手Seraphine英雄联盟战绩查询工具
  • 工控一体机项目适配难点解析:如何解决工业开发软硬件兼容难题
  • WPS表格集成Python实现办公自动化实战指南
  • K金、足金二者计价规则不一样,新手在苏州做黄金回收需要做好哪些细节区分? - 奢侈品回收评测
  • 天津西青家装怎么选?本地装修避坑技巧与服务优势解析 - 百航
  • Agent 状态机实战:让任务可暂停、可恢复、可重放
  • 2026年护墙板环保防水与工厂直销解读 - 万相科技
  • 太原汽车凹陷修复怎么选?极致汽车凹陷修复真实口碑与高性价比实测 - 百航
  • 2026.7长沙靠谱蔚来汽车贴膜店top5推荐,捷程新能源车改口碑好又正规 - 界川
  • 绵阳家具采购全攻略:行业痛点拆解与靠谱门店选购指南 - 国麟测评
  • 高端AI工程化和落地:真正的高手,要懂得“取舍”
  • Anthropic 密码学红队:算法过了“专家评审”,为什么仍可能被 AI 在 60 小时内砍半安全强度?
  • STM32 RTC精度误差分析与校准实战:从半年快13分钟案例到系统解决方案
  • Elsevier Tracker:科研投稿状态智能追踪解决方案
  • STM32 USB DFU固件升级实战:从原理到配置与避坑指南
  • 职场技能迭代:从提示词到AI管理能力的跃迁
  • 贺州 BBA 豪车维修行业盘点:车主痛点、行业现状与门店如何选择 - 国麟测评
  • 2026年宁波地区ERP管理系统相关企业名录梳理 - 起跑123
  • 2026年全国场景下汽车继电器优质厂家推荐参考 - 起跑123
  • 打工人福音!实测6款AI一键Word转PPT工具,百度文库凭什么排第一?
  • 2026天津防水公司推荐排行榜 全场景适配推荐清单 - 博客万
  • 学网络安全真的可以完全不上班?看这一篇就够了
  • 湘桥区业主必看!2026潮州本地化防水修缮,告别反复渗漏、常年漏水 - 吉林同城获客
  • 2026青岛钻石回收探店实录:如何打消顾虑,让闲置变现更安心? - 奢侈品回收探店ing