想让AI回答关于你自己公司、自己项目的问题,而不是泛泛而谈?那你需要搭一个RAG知识库。这篇记录下用Ollama + RagFlow搭建本地知识库的过程。
什么是RAG?
RAG(Retrieval-Augmented Generation)= 检索增强生成。简单说就是:让AI在回答问题前,先从你提供的文档里检索相关内容,再基于这些内容生成回答。
这样AI的回答就不再是"通用知识",而是基于你的数据。
为什么选本地部署?
三个原因:
- 数据安全:公司内部文档不出内网
- 成本可控:不用按API调用次数付费
- 完全可控:不依赖任何第三方服务
工具选择
Ollama:本地运行大模型的工具,一行命令启动。支持Llama、Qwen、Gemma等主流开源模型。
RagFlow:开源RAG引擎,负责文档解析、向量化、检索和生成的完整链路。界面友好,支持多种文档格式。
搭建步骤
1. 安装Ollama
下载安装后,拉一个模型:
ollama pull qwen2.5:7b
选7B参数的模型就够用了,16G内存的电脑可以流畅运行。
2. 部署RagFlow
用Docker一键部署,配置文件里指定Ollama作为推理后端。
3. 导入文档
把你的PDF、Word、Markdown文件上传到RagFlow。它会自动做文档解析、分块、向量化。
4. 测试问答
在RagFlow的对话界面里提问,它会先检索相关文档片段,再生成回答,并标注信息来源。
实际效果
我用公司内部的技术文档(大约200篇Markdown)做了测试:
- 关于项目架构的问题,回答准确率很高
- 能正确引用文档来源
- 响应时间在3-5秒(7B模型)
- 偶尔会出现"检索到了但理解偏了"的情况
几个优化建议
- 文档分块很重要:太大了检索不精准,太小了丢失上下文。建议300-500字一块
- Embedding模型选好:中文场景推荐bge系列
- 做好文档预处理:表格、代码块需要特殊处理
- 设置检索阈值:相似度太低的结果宁可不返回,也别瞎编
适合什么场景?
- 企业内部知识库问答
- 项目文档智能检索
- 客服系统的知识支撑
- 个人学习笔记管理
不适合需要实时数据的场景(比如查股票价格),那是MCP干的事。
有搭过本地知识库的吗?用的什么方案?