春节 DeepSeek 火爆,不知道为啥带火了个人 AI 知识库。
这篇我们不讲那种 “把文章拖进去就库库问 AI ”的玩具,因为讲了也没人听。
我们讲讲“企业知识库”的搭建和应用,也就是 RAG,这项工作的常见盲点。
RAG 是如何工作的
RAG 的三个字母分别是 检索-增强-生成,它的原理其实很简单,就是三个单词对应的字面意思,按顺序做一遍:
-
1. 当用户提出问题时,不发给大模型,而是拿着问题去【检索】相关资料 -
2. 把检索到的资料与原始问题拼接,以【增强】稍后发送给大模型的提示词质量(增加上下文) -
3. 大模型接收到 “提问”和 “资料”后,【生成】答案回答用户

注意,这里有两个非常重要认知:
-
1. 措辞方面,我在第二步用的是 “资料”,而不是 “答案”; -
2. 大模型在这个过程中扮演的是 “编辑”角色,而不是 “客服”或者什么创造答案的人
大部分没做好的 RAG,都是因为默认检索到的资料就是答案。
这个错误的认知,会导致你在最后一步约束大模型生成答案的提示词里缺少对可能的错误、甚至完全错误资料的判断提醒。
错误的资料会导致大模型产生 “幻觉”。
举个例子,加深一下理解:
你考试前没上课、没复习,遇到不会的题找同桌要答案。但是同桌很忙,直接给了你好几段小抄。
你因为啥也不会,强行把那几个小抄里的文字编辑后就答卷了。

当你理解透了以上,下面的坑也大概率能避过。
文章还是长一点显得有干货,我继续用考试作弊这个例子把下面的几个坑给大家盘一盘。
坑一:直接硬塞
你企业内部的知识资料,就是给大模型用的小抄。
如果你直接把教材撕吧撕吧就塞裤兜里带进考场,最终成绩一定不会很好。
倒不是说你不方便找到答案,这里面最大的问题是,你是教材的时候,可能把一个关联的知识撕成两半!
而考试的时候,你每次只能拿出三段撕开的答案。这就有很大的概率只拿到一半和两段完全不相关的内容。
可以想象你会拼出个什么答案。
所以,直接把资料塞进知识库,简单的按字符长度或者段落换行分段,是完全不行的。
清洗、人工拆分是企业知识库的必修课。
“一本书一个分段行不行,不撕开?”
行,但是记得多申请 token 预算。
坑二:扮演客服
我看到很多 RAG 系统的提示词里开场第一句话都是 “你是一个专业的客服…”
大模型对客服这个角色的身份认知是 “解答客户的问题”,但是如前所述,大模型在 RAG 里扮演的是 “编辑”角色。
它的核心任务是基于我们提供的资料回答问题。
你既然选择了为它提供资料,就意味着它回答问题的能力已经不能满足你了。
客服这个身份,会让大模型竭尽全力服务好客户,当你为它提供的资料不能支撑它完成任务时,它会动用 “幻觉”力量,给出一个像模像样的回答。
“帮助客服人员整理资料的实习生”这个角色会更好一些。
坑三:要求太多
“一家用打卡考核员工的公司,只会让员工真正工作的时长更短。”
“森严的家教培养不出艺术家。”
大模型也一样。
我能理解大家担心大模型胡说八道,所以制定了严苛的约束提示词,类似:
-
1. 你必须… -
2. 务必提供… -
3. 不要臆想不存在的…
以及各种类似 “你熟悉……”、“你精通……”、“你擅长……”这种祈祷式的能力赋予,都会让大模型更难以聚焦真正的问题回答。
大模型更需要的是对它在负责任务背景信息的了解,以及它可能遇到的问题的处理方式。
下面是我给某套课程配置的助教智能体的系统级提示词的片段:
你将扮演一位课程助教,根据学员的问题和我提供的相关资料,组织、编辑对应的响应文本。
## 任务背景和要求
- 我把课程的逐字稿进行分析提炼后构造了一个问答资料库
- 当学员提出问题时,我会在资料库中进行多维度检索,将检索到的资料和学员问题发送给你
- 你的任务是对问题和检索到的资料进行编辑润色,生成可以回答问题的响应文本
- 注意:资料库并不能覆盖所有问题,所以会存在资料不相关、残缺甚至没有支持资料的情况,这意味着我在课程中并没有教授相关内容,这种情况下你可以不输出问题响应文本而是引导学员咨询张佳老师
- 你实际的职责并不是回答学员的问题,而是 ** 根据资料告知学员课程中是否有教授、在哪节讲解,引导他们去学习课程 **
- 为了方便学员理解、判断你的响应文本是否准确,你需要根据支持资料简单介绍课程如何解决他的问题,然后给出进一步学习的引导
- 你的回复会被发在微信群,确保简洁,如果多段落增加空行一提升阅读体验,
- 确保回复纯文本,** 禁止使用任何 markdown 标识符 **