Skip to content

第36课 · 本地 RAG 知识库

本节要点

  • 本地 RAG 知识库解决的核心问题:文档在手上,但「找得到、问得准」很难
  • 典型场景:合规性检查、内控审计、内控搭建、合同/法规整理、制度冲突检查
  • RAG 五步流程:解析文档 → 智能切片 → Embedding 向量化 → 存入向量库 → 语义检索 + Rerank
  • 这个 skill 的优势:轻量本地、语义检索、零模型安装、三种用法、可离线、为制度文档优化
  • 实战:把公司制度文件夹一键入库,再用内控要求检索制度、生成控制矩阵
  • 延伸:FastGPT / RagFlow 是更重的开源方案,适合有服务器资源的同学

1. 为什么需要本地 RAG 知识库

在前面第17课,我们讲过用 IMA 知识库给 AI 提供可靠信息源。但 IMA 有两个明显限制:

  1. 调用频率受限:问题太多或频率太快,就会被限制访问。
  2. 依赖网络和服务商:资料存在云端,隐私和自主性都不够。

而财务、审计、内控领域有大量场景,本质上都是「读大量文档,从文档里找内容」:

场景传统做法痛点
合规性检查面对几百页制度,人工翻找「消防安全」「数据安全」等条款效率低、容易漏
内控审计根据关键控制点,从公司制度里找控制要求靠记忆和 Ctrl+F,找不全
内控搭建参考同行业制度写内控手册不知道资料库里有没有可参考的模板
合同/法规整理客户丢来一摞 PDF、Word,按主题整理传统方式根本做不到
制度冲突检查检查公司制度与集团制度、外部法规是否冲突需要同时读很多文件

这些场景的核心矛盾是:文档在手上,但怎么才能快速找到相应内容,并且问得准?

本地 RAG 知识库就是来解决这个问题的。


2. RAG 是什么?五步流程讲清楚

RAG 是 Retrieval-Augmented Generation(检索增强生成)的缩写。用人话说就是:

先把你的文档变成 AI 能查的「知识库」,AI 回答时先从知识库里找相关段落,再基于这些段落组织答案。

这样做有两个好处:

  1. 回答有据可查:AI 不是凭空编,而是从真实文档里找依据。
  2. 幻觉大幅降低:因为参考材料是你提供的,可控、可追溯。

本地 RAG 知识库的整个流程可以分成五步:

📄 解析文档  →  ✂️ 智能切片  →  🔢 Embedding 向量化  →  🗄️ 存入向量库  →  🔍 语义检索 + Rerank

第一步:解析文档

把 PDF、Word(.doc/.docx)、Markdown 等文件读成纯文本。如果是扫描件,会自动走 MinerU 做 OCR。

第二步:智能切片

制度类文档通常很长,不能整篇塞给 AI。需要切成一小段一小段(chunk),每段保留完整语义。

中文制度的切片策略是三级递归:

  1. 按「第 X 章」分章节
  2. 按双换行分大段落
  3. 按单换行分条款/段落

每个切片目标约 800 字,上下文之间有一定重叠(overlap),避免切断了语义。

第三步:Embedding 向量化

把每个文本切片通过一个「嵌入模型」转化成一个高维向量。你可以把向量理解成:给这段文本打了一串语义标签

这个 skill 默认用硅基流动的 BAAI/bge-m3

  • 免费额度足够日常使用
  • 1024 维向量
  • 支持 8192 tokens

第四步:存入向量库

把所有向量存到本地数据库里(这个 skill 用 ChromaDB)。每个项目对应一个独立的 collection,项目之间完全隔离。

第五步:语义检索 + Rerank

你提问时,问题也会被向量化,然后在向量库里找最相似的切片。

但向量相似度只是第一步。这个 skill 还会做一个 Rerank(重排序)

  1. 先用向量检索召回 top-20 个候选
  2. 再用 reranker 模型精排,选出 top-10 最相关的
  3. 把这些候选段落交给 LLM,让它做深度语义匹配,精确定位条款

关键点:RAG 不是关键词匹配,而是语义匹配。你问「灭火器怎么管」,它能找到「消防器材配置与管理」相关条款。


3. 这个 skill 的六大优点

做这个 skill 之前,我看过很多开源项目,比如 FastGPT、RagFlow。它们功能很强,但都很「重」:需要部署、资源消耗大、配置复杂。

所以我做了一个更轻量的版本,专门服务审计/财务/内控这类「制度检索」场景。

优点一:轻量本地

  • 数据存在自己电脑
  • 多项目隔离,不同客户/项目互不影响
  • 不需要服务器、不需要 Docker

优点二:语义检索

  • 不用背条款编号
  • 用自然语言提问
  • AI 从候选文本里做深度语义匹配,定位「管理同一件事的条款」

优点三:零模型安装

  • 默认用硅基流动免费 API
  • 不需要 GPU
  • 不需要下载大模型

优点四:三种用法

  • CLIlocal-rag createlocal-rag ingestlocal-rag search
  • Python API:直接写脚本调用
  • MCP Server:让任何支持 MCP 的 AI 都能调用

优点五:可完全离线

内网环境可以切换 Ollama 本地 embedding + reranker:

  • qwen3-embedding:4b 等模型约 2.5GB
  • 不需要联网
  • 适合对数据敏感的场景

群友推荐的轻量本地 embedding

如果电脑配置一般,也可以先用 Qwen3-Embedding-0.6B(约 1GB 显存即可带动),本地切片向量化基本够用。群友兔王嘟嘟实测 RTX 4070 Ti SUPER 上 4B 也没问题,0.6B 对老设备更友好。

优点六:为制度文档优化

  • 中文制度专用切片策略
  • 按「章 → 大段 → 条款」递归切
  • 保留上下文,避免切断语义

4. 实战一:把公司制度一键向量化

4.1 准备工作

  1. 安装 local-rag skill(课程网盘会提供)
  2. 注册硅基流动账号,获取 API Key:https://cloud.siliconflow.cn
  3. 把公司制度文件放到一个文件夹里,比如 公司制度/

4.2 第一次运行

在 OpenCode 里打开项目文件夹,然后告诉 AI:

帮我将公司制度文件夹里的所有制度进行向量化,存储到向量数据库中。

AI 会调用 local-rag skill,自动完成:

  1. 检测是否有 SILICONFLOW_API_KEY
  2. 创建项目(默认可能会叫 company-policies
  3. 解析 PDF / Word / Markdown 文件
  4. 智能切片
  5. 调用 embedding API 把切片向量化
  6. 存入本地 ChromaDB

如果第一次没有配置 API Key,skill 会提示你设置。你可以这样设置:

bash
# macOS / Linux
export SILICONFLOW_API_KEY="sk-xxx"

或者在 local-rag setup 里交互式配置。

4.3 等待入库完成

制度文件多的话,可能需要几分钟。视频里 232 个文件大约不到两分钟就处理完了,生成了 1164 个切片。

如果有失败的文件,可以让 AI 重试:

帮我把失败的文件重新切片入库。

失败通常是因为文件损坏、格式特殊或扫描件 OCR 不稳定,重试一般都能解决。


5. 实战二:用向量库做内控检查

入库之后,就可以开始检索了。

5.1 最简单的检索

帮我搜索一下关于现金管理的制度。

AI 会调用 local-rag search,返回最相关的制度条款。你可以让它把结果展示出来,或者进一步分析。

5.2 生成内部控制活动矩阵

更高级的用法是:把「内控要求」和「制度库」结合,让 AI 自动写控制矩阵。

假设你的项目文件夹里有一个 Excel,记录了「资金循环」和「采购循环」的内部控制要求。你可以这样给 AI 下指令:

我的项目文件夹里有一个资金和采购的内部控制要求文件。
请你根据这个要求,从我们刚才建立的向量数据库里检索最相关的内部控制制度,
然后帮我输出一个内部控制活动矩阵,包含:
1. 原控制活动要求的字段
2. 控制活动描述
3. 控制频率
4. 相关责任人
5. 评价内控制度设计是否存在缺陷
6. 如果存在缺陷,写明缺陷原因

AI 会:

  1. 读取内控要求 Excel
  2. 针对每一条控制要求,去向量库检索相关制度
  3. 基于检索到的制度原文,写控制活动描述
  4. 判断是否存在设计缺陷
  5. 输出成 Excel 或 Markdown

5.3 控制活动描述写得不理想怎么办

第一次生成的控制活动描述,可能跟你事务所平时的写法不一样。这时候不要灰心,给它一个示例:

控制活动描述请按照下面这个示例的写法来:
"财务部门每月编制资金计划,经财务负责人审核后报总经理审批,审批通过后方可执行。"

或者更直接:

请学习我以前写的控制活动描述底稿,按照我的风格重新写。

你把以前的底稿文件路径给它,AI 会模仿你的风格输出。

5.4 如何避免 AI 幻觉

AI 做内控评价时,最怕它凭空编造制度依据。一个有效做法是:要求 AI 在输出里增加「引用制度原文」列。

因为我担心 AI 幻觉,请在输出中增加两列:
1. 引用的相关制度文件名称
2. 制度原文
这样我可以人工复核。

AI 会把每一条结论对应的制度依据都列出来,你人工检查时会轻松很多。

视频中第一次输出时「引用制度原文」列是空的,直接告诉 AI 这个问题,它重新生成后就能把原文填上。这就是跟 AI 协作的常态:先跑通,再补要求,再精调

5.5 一条 workflow 串起整个内控项目

其实 local-rag 只是整个内控工作流的一个底层能力。把它串起来,你可以做到:

  1. 根据控制矩阵要求检索制度 → 生成控制活动描述
  2. 根据控制活动生成访谈提纲 → 拿着提纲去访谈
  3. 把访谈录音转文字 → AI 整理访谈记录
  4. 根据制度要求生成资料清单 → 跟客户要资料
  5. 拿到资料后让 AI 做穿行测试/控制测试 → 结果写入内控检查表

整个内控项目,理论上都可以用 AI 辅助完成。而 local-rag 是其中最底层、最重要的一个能力:让 AI 能读你的制度库


6. 更多应用场景

6.1 合规性评价

把外部法规(比如消防安全法规、数据安全法规)入库,让 AI 逐条比对公司的内控制度,找出不符的地方。

6.2 制度冲突检查

把集团制度和子公司制度都入库,让 AI 检查两者之间是否有冲突。

6.3 合同/法规整理

把一摞合同或法规文件入库,按主题提问,让 AI 自动聚类、提取关键条款。

6.4 跨项目复用

一个项目做完后,向量库可以保留。下次遇到类似项目,直接基于已有知识库提问,不需要重新入库。


7. 延伸阅读:更重的开源方案

如果你有兴趣深入研究,或者团队有服务器资源,可以看看这两个更完善的开源 RAG 项目:

FastGPT

特点:功能全面,支持可视化工作流、多模型接入、权限管理,适合团队部署。但需要一定的服务器资源和部署能力。

RagFlow

特点:强调「深度文档理解」,在 RAG 流程中对复杂表格、版式、语义解析做了很多优化,适合对文档解析质量要求高的场景。同样对硬件和部署有一定要求。

这两个方案都很强,但都比本课的 local-rag 要重。本课 skill 的定位是:个人电脑即可运行、零模型安装、5 分钟上手,先把 RAG 用起来。


8. 常见问题与避坑

Q1:一定要配置硅基流动 API Key 吗?

默认模式下是的。skill 会先检查 SILICONFLOW_API_KEY 环境变量,没有会提示你配置。硅基流动的 embedding 和 reranker 都是免费的,注册即可使用。

如果你不想联网,可以切换到 Ollama 本地模式,但需要自己拉取 embedding 模型。

Q2:向量数据存在哪里?

默认存在本地跨平台数据目录:

  • macOS:~/Library/Application Support/local-rag/
  • Windows:%LOCALAPPDATA%\local-rag\
  • Linux:~/.local/share/local-rag/

可以通过环境变量 RAG_DATA_DIR 或配置文件修改。

Q3:一个项目能放多少文件?

取决于你的磁盘空间。ChromaDB 是本地持久化数据库,embedding 向量本身不大。视频里 232 个文件切了 1164 个切片,几分钟就处理完了。

Q4:搜索效果不好的原因有哪些?

  1. 切片太大或太小:可以通过 chunk-test 命令测试不同切片效果。
  2. 问题太笼统:越具体的问题,检索越准。
  3. 没用 rerank:建议加 --rerank,top-20 召回 + top-10 精排效果更好。
  4. 原文质量差:扫描件 OCR 错误或 Word 转换乱码,会影响向量化质量。

Q5:和 IMA 知识库有什么区别?

维度IMA 知识库本地 RAG 知识库
部署难度零部署安装 skill 即可
数据位置腾讯云端本地电脑
调用限制频率过高会受限本地调用,无限制
适用场景快速查共享知识库制度检索、内控项目、隐私文档
检索方式语义检索语义检索 + Rerank

两者不冲突,可以互补:IMA 查公开/共享知识,local-rag 查自己的项目资料。


9. 核心收获

TIP

本地 RAG 知识库的本质,是让你的 AI 能够「读懂」并「检索」你自己的文档。它不是什么高深技术,而是把「人翻文档找条款」这件事自动化。

对于财务、审计、内控人来说,最常见的需求就是「读大量文档、从文档里找内容」。一旦你把这个需求抽象出来,就会发现很多工作都能用 RAG 重做一遍:合规检查、内控审计、制度比对、合同整理……

这个 skill 的优势在于轻量:数据本地、免费模型、5 分钟上手。先用起来,再根据自己的项目不断优化。


10. 课后作业

  1. 找一个你手边的制度文件夹(至少 10 个文件),用 local-rag 创建一个项目并入库。
  2. 尝试问 3-5 个业务问题,观察 AI 能不能找到相关条款。
  3. 如果你做内控项目,试着把你的控制矩阵要求和制度库结合,生成一份控制活动矩阵。
  4. 思考:你现在的哪些工作,本质上是在「读文档找内容」?这些工作能不能用 RAG 重做?

更多课程:课程大纲

© 2025 逆行的狗