Qwen3.5+RAGFlow+Ollama本地AI知识库搭建完整教程

使用Qwen3.5+RAGFlow+Ollama搭建本地AI知识库的完整教程
本文详细介绍了基于RAGFlow+Qwen3.5+Ollama搭建本地AI知识库的完整流程。通过RAG技术解决大模型知识截止、AI幻觉等痛点,利用Docker部署RAGFlow(负责文档处理和检索编排)、LM Studio运行Qwen3.5(负责生成回答)、Ollama运行Embedding模型(负责向量化检索),实现本地化的文档问答系统,适合科研和企业保密场景。
为什么需要本地AI知识库?
大语言模型虽然强大,但存在几个核心痛点:知识截止日期限制、本地模型知识体系有限、AI幻觉问题,以及企业保密场景下无法使用云端服务。
关于AI幻觉问题:AI幻觉(Hallucination)是指大语言模型生成看似合理但实际上不正确或无中生有的内容。这一问题的根源在于LLM本质上是基于概率的文本生成器——它预测下一个最可能出现的token,而非从事实数据库中查询答案。当模型遇到训练数据中未充分覆盖的问题时,它倾向于"编造"看起来合理的答案而非承认不知道。研究表明,即使是GPT-4级别的模型,在专业领域问答中幻觉率仍可达15-25%。
RAG(检索增强生成)技术正是解决这些问题的关键方案——通过外挂知识库,让AI在回答时能够引用真实文档内容,大幅减少"胡编乱造"的情况。RAG(Retrieval-Augmented Generation)是2020年由Facebook AI Research提出的技术框架,其核心思想是在大语言模型生成回答之前,先从外部知识库中检索相关文档片段,将这些片段作为上下文注入到提示词中,再由LLM基于这些真实信息生成回答。这种方式相比单纯微调模型有三大优势:一是知识可以实时更新而无需重新训练模型;二是回答可溯源,用户能验证信息来源;三是大幅降低了幻觉率(可从15-25%降低到5%以下)。RAG的典型流程包括:文档切片→向量化存储→用户提问向量化→相似度检索→上下文拼接→LLM生成回答。
本文基于B站教程,详细梳理使用 Qwen3.5 + RAGFlow + Ollama 搭建本地AI知识库的完整流程,帮助零基础用户快速上手。

RAGFlow的核心优势
在GitHub众多开源RAG项目(如Dify等)中,RAGFlow有几个突出特点:
多格式文件支持与OCR能力
RAGFlow支持处理TXT、PDF、JSON等多种文件格式。更重要的是,它集成了DeepDoc项目的OCR能力,能够识别扫描版PDF中的文字内容,这对于处理学术论文和扫描文档非常实用。
智能切片与索引
RAGFlow在底层对数据做了专门优化,包括智能切片(chunking)和索引构建。文档切片是RAG系统中最影响检索质量的环节之一。简单的固定长度切片会破坏语义完整性,而RAGFlow采用的智能切片策略会考虑文档结构(标题、段落、列表)、语义边界和上下文窗口大小。常见的切片策略包括:按段落切分、按语义相似度切分、递归字符切分、以及基于文档结构的层次化切分。切片过大会导致检索精度下降(混入无关信息),切片过小则可能丢失上下文。RAGFlow还支持父子切片策略——用小切片做检索匹配,但返回包含更多上下文的父切片给LLM,兼顾精度和完整性。
它不仅能检索到相关内容,还能指出具体引用来源——哪篇文章的哪段话被引用,这对科研场景尤为重要。
可视化工作流
类似ComfyUI的拖拽式界面,RAGFlow支持构建自动化工作流,降低了使用门槛。
环境准备与工具安装
硬件与系统要求
- 能流畅运行Windows 10/11的硬件基本就能满足需求
- 需要开启Windows虚拟化设置
- 需要安装WSL(Windows Subsystem for Linux)
关于WSL:WSL是微软开发的兼容层,允许用户在Windows上原生运行Linux二进制可执行文件。WSL2基于轻量级虚拟机运行完整的Linux内核,性能接近原生Linux。Docker Desktop在Windows上正是依赖WSL2作为后端引擎来运行Linux容器。开启虚拟化平台(Hyper-V或Windows虚拟化平台)是WSL2运行的前提条件,这需要在BIOS中确认CPU虚拟化(Intel VT-x或AMD-V)已启用。
核心工具清单
| 工具 | 用途 |
|---|---|
| Docker Desktop | 容器化运行RAGFlow及相关数据库 |
| Ollama | 运行Embedding模型,提供API接口 |
| LM Studio | 运行LLM大模型(Qwen3.5),提供API接口 |
Docker安装步骤
Docker是一种操作系统级别的虚拟化技术,它将应用程序及其所有依赖(库文件、配置、运行时环境)打包成一个标准化的"容器"。与传统虚拟机不同,Docker容器共享宿主机的操作系统内核,因此启动速度快、资源占用低。RAGFlow使用Docker部署的好处在于:它依赖Elasticsearch(全文检索)、Redis(缓存)、MySQL(元数据存储)等多个服务,Docker compose能一键拉起整个技术栈,避免用户逐一安装配置的痛苦。
具体安装步骤:
- 前往Docker官网下载Desktop版本(Windows AMD64)
- 右键以管理员身份运行安装程序
- 如遇权限报错,需对C盘Program Files文件夹赋予当前账号读写执行权限
- 开启Windows虚拟化平台支持和"适用于Linux的Windows子系统"
- 使用
wsl --install命令安装WSL
理解LLM与Embedding模型的区别
在部署前需要理解两个关键概念:
-
LLM(大语言模型):负责对话、处理文字上下文、输出自然语言回答。本教程使用Qwen3.5。Qwen3.5是阿里巴巴通义千问团队发布的开源大语言模型系列,相比前代在推理能力、指令遵循和多语言支持方面有显著提升,特别是中文场景下的表现在开源模型中处于领先地位。该模型提供多种参数规格(从0.6B到72B),用户可根据硬件条件选择合适的版本。
-
Embedding模型:将输入文字转换为向量表示,方便计算机存储、理解和检索。类似线性代数中的向量空间映射。具体来说,Embedding模型将文本映射到高维向量空间(通常768维或1024维),使得语义相近的文本在向量空间中距离更近。这一过程基于Transformer架构的编码器,通过大规模文本对比学习训练而成。例如,"猫在沙发上睡觉"和"小猫躺在沙发上休息"虽然用词不同,但它们的向量余弦相似度会非常高(接近0.95)。在RAG系统中,用户的提问和知识库中的文档片段都会被转换为向量,然后通过近似最近邻(ANN)算法快速找到最相关的文档片段。
两者在RAG系统中各司其职:Embedding负责"找到相关内容",LLM负责"组织语言回答"。
RAGFlow部署全流程
下载与启动RAGFlow服务
# 克隆RAGFlow源码
git clone https://github.com/infiniflow/ragflow.git
# 进入Docker目录
cd ragflow/docker
# 启动服务(需先打开Docker Desktop)
docker compose up -d
如果网络问题无法git clone,可直接在GitHub下载ZIP包解压。执行docker compose后,Docker会自动下载相关依赖。docker compose up -d中的-d参数表示以后台(detached)模式运行,所有容器将在后台启动。docker compose是Docker的编排工具,通过一个YAML配置文件(docker-compose.yml)定义多个容器的启动参数、网络关系和数据卷挂载。配置文件中的预定义变量可在同级目录的.env文件中修改。
部署Qwen3.5大语言模型
使用LM Studio部署Qwen3.5:
- 在LM Studio中下载Qwen3.5模型
- 在后台开启服务,使其他程序可通过API调用
LM Studio提供了友好的图形界面和兼容OpenAI API格式的服务端点,这意味着RAGFlow可以像调用OpenAI API一样调用本地运行的Qwen3.5,无需修改任何代码逻辑。默认情况下,LM Studio会在本地的1234端口提供API服务。
部署Embedding模型
使用Ollama部署Embedding模型:
# 拉取Embedding模型
ollama pull nomic-embed-text
# 查看已下载模型
ollama list
nomic-embed-text是一个开源的高性能Embedding模型,支持8192 token的长上下文输入,在多个检索基准测试中表现优异。Ollama默认在11434端口提供API服务。
配置RAGFlow连接模型
添加LLM模型配置
- 打开RAGFlow界面(注册账号,密码可随意填写)
- 点击右上角设置,搜索"OpenAI API Compatible"
- 输入LM Studio的端口号和API接口地址
- 模型类型选择Chat,API Key随便填写
- Token数根据需求配置
添加Embedding模型配置
关键注意点:RAGFlow运行在Docker容器内部网络中,需要使用物理机的局域网IP地址(通过ipconfig查看),而非容器内部的localhost。
为什么不能用localhost? Docker容器运行在隔离的虚拟网络中,每个容器有自己的网络命名空间。当RAGFlow容器内的程序需要访问宿主机上运行的Ollama服务时,不能使用127.0.0.1(localhost),因为这在容器内指向的是容器自身而非宿主机。解决方案有三种:一是使用宿主机的局域网IP(如192.168.x.x),这是最通用的方式;二是使用Docker提供的特殊DNS名称host.docker.internal;三是使用--network=host模式(仅Linux支持)。教程中推荐使用局域网IP的方式最为通用和稳定。
配置步骤:
- 下拉找到Ollama选项
- 将URL中的IP地址改为本机局域网IP
- 填写模型名称,保存即可
知识库创建与测试
创建并解析知识库文档
- 创建新的知识库
- 根据需求选择OCR等解析选项
- 上传文件(支持TXT、PDF等格式)
- 重要:上传后必须点击"解析"按钮,文件才能被索引
解析过程中,RAGFlow会执行以下操作:对文档进行格式识别和内容提取(如有需要会调用OCR)、按照智能切片策略将文档分割为语义完整的片段、调用Embedding模型将每个片段转换为向量、将向量存入向量数据库并建立索引。只有完成这一系列操作后,文档内容才能被检索到。
实际测试效果
教程作者在测试中发现,开启深度思考模式后,系统能够:
- 正确检索知识库中的特定内容
- 引用原文中的关键信息
- 标注内容出处,指向具体文章段落
总结与部署建议
RAGFlow + Qwen3.5 + Ollama的组合方案,为本地AI知识库提供了一个相对完整的解决方案。整个架构的分工清晰:Docker负责容器化部署,LM Studio运行LLM,Ollama运行Embedding,RAGFlow负责文档处理和检索编排。
从技术架构角度看,这套方案的数据流如下:用户提问 → RAGFlow接收 → 调用Ollama将问题向量化 → 在向量数据库中检索相似片段 → 将检索到的片段与原始问题拼接为提示词 → 发送给LM Studio中的Qwen3.5 → Qwen3.5生成基于文档内容的回答 → RAGFlow返回答案并附带引用来源。
对于想要入门的用户,建议:
- 先确保Docker环境正常运行
- 注意容器网络与物理机网络的IP区别
- 上传文档后务必执行解析操作
- 可以从小规模文档开始测试,逐步扩展知识库规模
- 如果硬件资源有限,Qwen3.5可选择较小的参数版本(如4B或8B),Embedding模型本身资源占用较小无需担心
核心要点
- RAGFlow支持多格式文件处理和OCR识别,能智能切片并标注引用来源
- 系统架构分三层:Docker运行RAGFlow,LM Studio运行Qwen3.5(LLM),Ollama运行Embedding模型
- Docker容器内访问物理机服务需使用局域网IP而非localhost,这是常见配置陷阱
- 上传文档后必须手动点击解析按钮才能被索引检索
- 整套方案适合科研论文管理、企业保密文档问答等需要本地化部署的场景
相关推荐
教程攻略Cursor+Codex双IDE协同:开源项目二开实战方法论
基于实战经验总结的开源项目二次开发完整方法论,详解Cursor+Codex双IDE协同工作流,涵盖二开七环节、MVP验证、AI读源码技巧,帮助开发者三天跑通项目、两周完成业务集成。
教程攻略Cursor多Agent实战:50分钟搭建Next.js全栈博客
使用Cursor IDE多Agent协作模式,50分钟内从零搭建全栈博客。涵盖Next.js、Clerk认证、Supabase数据库集成,详解4个AI Agent分阶段开发流程与关键避坑经验。
教程攻略从零搭建AI软件工厂:Cursor工程师的多Agent协作实战经验
Cursor工程师Eric分享AI软件工厂构建实战:从自动化六层级、护栏设计、并行Agent管理到规模化扩展,详解如何用多Agent协作实现7×24小时高效软件开发。