ARTICLE · 1211105
产品经理的 RAG 实战:让历史需求文档自己回答问题
▎ READ THIS FIRST
接手一个跑了三年的项目,新需求来了 —— 上百份历史文档,你从哪一份开始翻?
1文档散落成一个个 doc 文件,连「该看哪一份」都不知道
2就算翻到了,也不敢保证没有遗漏,需求写着写着就缺一块
3想交给 AI 整理,它却一本正经地编,你反而不敢信
别急,往下看 —— 一个叫 RAG 的东西,能一次性解决这三件事。
那它到底是什么?我们从头说起。
PART 01
什么是 RAG?
RAG(Retrieval-Augmented Generation,检索增强生成)是一种把“外部知识检索”和“大语言模型生成”结合起来的技术框架,用来解决大模型“胡说八道”“知识过时”“不懂私有数据”等问题。
简单的理解就是:给大模型装了一个“可随时查阅的开放式参考书库”。
PART 02
产品经理如何应用?
上面这三个问题,就是我接手那个项目时的真实处境。
先看我们的现实需求:很多中小企业项目的需求文档并没有系统性管理,而是散落为一个个doc文件。后续项目优化时,如果需要查阅某些需求原文,往往要人工逐个文件翻找,十分耗时。
比如我现在遇到的问题:接手了一个离职同事的项目,该项目已经正常运作三年,期间积累了大量文档。现在继续做需求优化,我不得不先查阅历史需求文档,很多细节容易被遗漏,导致需求不完善或错漏。这一点我在之前的文章中特意讲过:直接用AI去整理,确实容易产生幻觉,导致AI不可信,所以我只能手工查找原始需求。
本篇文章通过RAG来解决这个问题。
由于是本地小型项目测试,不涉及团队协作,因此我采用最小化的方式先进行实验。
▎ 本次实验环境
工具AnythingLLM(桌面版),模型:deepseek-flash(公司提供)。
其他依赖Ollama、bge-m3。
本地小型项目,不涉及团队协作,用最小成本先跑通。
先简单看一下它的工作原理:

图 1 | RAG 工作原理:文档切片向量化入库 → 提问向量化检索 → 拼接上下文生成答案
一句话总结:用户在 AnythingLLM 上传文档时,会调用 Ollama 里的 bge-m3 把文档切片转为向量存入本地库;提问时先用 bge-m3 将问题向量化检索相关片段,再把问题 + 片段交给 Ollama 中的 deepseek-flash 生成答案并返回界面展示。
先看一下最终效果示例:
我有一个比较复杂的需求分析,由于我不清楚该需求的影响范围,如果我自己去翻文档,可能会:
1不知道看哪个文档
2即便看了文档,也不清楚是否有遗漏的地方
因此,我先让它来根据我的项目文档,分析可能的影响,先快速检索本次的需求有哪些的历史文档依赖。

图 2 | 让 AI 基于项目文档,分析本次需求可能影响的历史文档
以下是我所有的安装步骤及注意事项,有需要的同学可参考收藏。
▎ 先备清单
1anythingllm 下载地址:anythingllm.com/download
2embedder:ollama + bge-m3,下载地址:ollama.com
两个地址复制后直接在浏览器打开即可。
PART 03
第一步 · 安装 AnythingLLM
模型选择:
1本地安装(需要占用本地内存)
2使用大模型 API / 公司 API
如果选择公司 API,则需要选择“generic openAI”,自行配置 Base URL 和 API Key。

图 3 | 在 AnythingLLM 中选择 Generic OpenAI,配置 Base URL 与 API Key
⚠ 注意事项
注意,这里的 maxTokens 不要设置过小,否则可能会导致输出截断。如果在后续使用时发现有输出截断的现象,可以调整此参数。如有其他大模型的 key,可自行选择模型。

图 4 | Max Tokens 建议调大,避免长答案被截断
安装成功,做一次联通性测试:

图 5 | 联通性测试:模型正常回应即配置成功
可以正确回应,表示联通成功。
PART 04
第二步 · 安装 Ollama

图 6 | Ollama 官网下载页
我采用直接下载桌面应用并手动安装的方式,点击“download manually”,下载后根据引导一步步安装成功即可,该安装文件有1.48GB。

图 7 | 点击 Download manually 手动下载安装包(约 1.48 GB)

图 8 | Ollama 安装完成
安装成功后,可见如上的欢迎界面,点击“ continue“ 按钮继续。
在cmd窗口中,输入如下命令,获取bge-m3模型 (1.2G大小)
COMMAND LINE
ollama pull bge-m3

图 9 | 命令行拉取 bge-m3 嵌入模型(约 1.2 GB)
⚠ 注意事项
如果报错,则可在桌面右下角找到ollama图标,右键 - > open ollama ->界面中点击:terminal。之后再cmd窗口中粘贴命令:ollama pull bge-m3

图 10 | 报错时可从桌面右下角 Ollama 图标打开 Terminal 再执行命令
安装完成后,在anythingLLM界面“嵌入器(Embedder)中,嵌入引擎提供商选择”OLLAMA“,MODEL会自动带出bge-m3

图 11 | 嵌入器选择 Ollama,Model 自动带出 bge-m3
这样我们的安装完成,现在引入项目。
PART 05
第三步 · 创建项目并上传文档
1新建一个工作区:

图 12 | 第一步:新建工作区
2设置工作区参数
工作区创建好后,先不着急上传文件,先点击“设置”按钮,完成必要的设置。

图 13 | 第二步:进入工作区设置
在“聊天设置”中,先选择我们之前配置的大模型,系统提示词可根据你的实际情况重新编写。

图 14 | 聊天设置中选用已配置的大模型,可按需改写系统提示词
“代理配置”中也关联好你的大模型。

图 15 | 代理配置同样关联好你的大模型
通用设置中,调整“文本分割”参数:

图 16 | 通用设置:调整文本分割与文本块重叠参数
以上参数设置完成,我们开始上传文件,上传文件有两种方式:
1手工上传
2脚本批量上传
如果文件量比较少,则可以采用手工上传的方式,点击左侧工作区的上传按钮,打开上传界面:
左侧为临时文件区,上传的文件先进入此区域,然后再加载到右侧工作区。

图 17 | 左侧为临时文件区,需再 Move to Workspace 加载到右侧
如果文件量较大,比如我测试的项目文件有150多份文档,它的手工上传方式不支持上传文件夹,只能选中文件上传,这就非常不方便。因此,我让 AI 生成一个 Python 脚本,递归项目目录,一次性全部上传。
使用脚本上传同样需要先上传至左侧临时区域,再手动加载到右侧工作区。
右侧工作区文件加载成功后,我们就可以在右侧工作区提出问题,检测一下它的效果。示例如下:

图 18 | 在工作区直接提问,验证 RAG 回答效果
写在最后
整套方案全部跑在本地,不依赖任何外部服务,历史文档一次入库,后面做需求时就能直接问。如果你手上也有一堆散落的旧文档,不妨照着这三步试一遍。















































































