手把手教你在个人电脑部署本地知识库(基于RAGFlow + DeepSeek [+ Ollama])
1. 实现方案及准备工作
按照教程一步一步操作,基本没有什么太大难度,稍显麻烦的可能就是因网络问题有些资源无法下载,对于镜像无法下载的问题,文中也提供了替代的方法,但是github访问不稳定这点,如果你不是上网达人,只能找朋友求助了。
本文档提供了两种部署方法:半本地化部署、完全本地化部署,你可以根据自己的需求选择。
部署本地知识库的工具有很多,RAGFlow、FastGPT、DIFY、AnythingLLM等,他们各有特点,本文以RAGFlow为例。
本文讲述的是在Windows操作系统中进行的部署,但实际上在Linux系统中部署差别也不是很大,因为本文的部署主要是基于docker-compose。
1.1. 安装docker桌面版
docker桌面版用于容器化运行ragflow相关组件。
官网下载地址:https://www.docker.com/
下载后安装,一直下一步,直至安装成功。
这里有一点需要注意,很多虚拟机软件包括docker默认会使用Hyper-V,比如先安装vmware再安装docker后,可能就会引起冲突,建议先卸载本机上的虚拟机软件,再安装docker。
安装完成后,打开docker desktop(下文称docker桌面版),点右上角的设置(齿轮)按钮,选择Resource -> Advanced,修改此处的路径,下载的镜像、docker运行期间占用的虚拟磁盘空间,都会使用这个目录。
2. 半本地化部署
半本地化部署是指知识库工具部署在本地,但语言模型不部署在本地,而是接入互联网模型提供商提供的接口。这种方式对本机性能要求不算太高,但需要按用量付费,且文件安全性较完全本地化部署要差一些。
2.1. 克隆ragflow仓库
选择一个盘符,确保其剩余空间大于100GB。
打开docker桌面版,点击右下角的“Terminal”进入终端模式。
输入下面命令进入选择的盘符。
cd e:\
然后输入下面命令克隆仓库。
git clone https://github.com/infiniflow/ragflow.git
如果提示git命令不存在,可能是本机没有安装git,通过下列地址下载安装:https://git-scm.com/
因为github连接的不稳定性,这里可能会有一些问题,可根据报错自行上网寻找解决方法或向朋友求助。
克隆成功后,会创建E:\ragflow目录,执行如下命令。
cd ragflow
git checkout -f v0.16.0
2.2. 修改.env文件
在“我的电脑”中,进入刚刚克隆的目录,进入其子目录docker下,用文本编辑器打开.env文件。
决定要下载的版本,配置文件中提供了两个版本,一个是v0.16.0-slim(第84行),一个是v0.16.0(第87行),两者的区别是,前者不会预下载嵌入模型,默认会安装前者,为了方便这里改为后者。
修改前。
但因为DockerHub官方镜像源很早开始就无法访问了,直接修改还不行。如果你能正常下载,如上面修改就行;但大概率是不能正常下载的,这里提供了一种解决办法,可以按docker镜像无法下载问题解决中的步骤来操作。
操作完成后,将新的镜像地址填写进来。最终如下图。
.env的第二处修改,是将HF_ENDPOINT=https://hf-mirror.com这一行取消注释,因为一般情况下我们是访问不了huggingface。修改后如下。
第三处修改,包括多个组件的密码,比如MYSQL_PASSWORD(第46行),等号后面的值改为自己要设定的密码。
2.3. 修改docker-compose-base.yml文件
这个文件的修改并非强制,主要是指定挂载文件的路径,比如MySQL的数据文件存放目录。
如下图,我配置了将MySQL文件存放到e:\docker\ragflow\mysql目录下。
以下是代码文本,注意driver_opts:这一行必须与上一行对齐,type: none以及下面两行缩进两个字符间距。
driver_opts:
type: none
device: /e/docker/ragflow/mysql/
o: bind
还有一种情况,即默认的镜像无法下载成功时,使用docker官网镜像无法下载解决方法后,需要在这里修改镜像地址。
2.4. 启动容器
回到docker桌面版,确保此时位于ragflow目录。因为我用的是nvidia显卡,所以用docker-compose-gpu.yml文件来启动,如果是其他情况,可以用docker-compose.yml文件。
docker compose -f docker/docker-compose-gpu.yml up -d
初次运行,docker会下载多个镜像。如果出同下面这种错误,说明拉取镜像失败。
在前面修改.env文件时我们已经提到了,目前docker官网的镜像直接访问不了,请按docker镜像无法下载问题解决中的步骤来操作。
启动成功后,在Containers中就会出现ragflow相关组件。
2.5. 删除容器
只有需要修改配置文件时,才需要执行此操作。
使用下面的命令删除容器。
docker compose -f docker/docker-compose-gpu.yml down
修改配置文件后,再重新启动容器。
docker compose -f docker/docker-compose-gpu.yml up -d
3. 首次登录
在docker桌面版的Containers中,找到ragflow-server,点击其右侧的Show all ports。
点击80:80。
系统会在默认浏览器中打开登录地址http://localhost/login。
点击注册,来注册一个账号。
用注册的账号登录后,点击右上角English右侧的下拉图标,可将语言切换为简体中文。
4. 完全本地化部署
完全本地化部署是指所有组件都部署在本地,这一步并不是必须的,取决于你的需求,同时对电脑配置有一定要求。如果不需要,可以跳过这一步,继续从添加互联网模型开始。
4.1. 部署要求
系统:Windows、Linux均可,本文以Windows为例。
显卡:7B参数模型需要NVIDIA GeForce RTX 3060 Ti或更高端显卡,14B参数模型需要NVIDIA GeForce RTX 4080或更高端显卡。
内存:7B参数模型推荐32GB内存,14B参数模型推荐64GB内存。
CPU:Intel Core i5 12400或同级别以上CPU。
磁盘:剩余磁盘空间大于100GB。
4.2. 下载ollama并运行本地模型
ollama是一个模型管理工具,可以通过它下载多种不同模型。ollama官网地址:https://ollama.com/。
下载后安装,安装成功后在浏览器打开http://127.0.0.1:11434/。如果页面上显示Ollama is running,表示安装成功。如果下载页面加载失败,可以到github中下载OllamaSetup.exe,下载页面:https://github.com/ollama/ollama/releases。
仅下载ollama还不行,还必须下载需要的模型。
ollama默认将模型下载到C盘,因此我们需要修改模型下载目录。
1.打开系统设置,进入系统属性或系统变量设置。
2.创建一个新的系统变量或修改现有的环境变量,变量名为OLLAMA_MODELS。
3.将变量的值设置为ollama模型文件下载路径,例如d:\ollama。
设置完以后重启Ollama服务即可。
打开ollama官网,在导航栏上找到Models,点击进入。
在这个页面中可以搜索到各类模型,找到我们需要下载的模型。点击进入该模型详情页面。
在模型页面选择需要下载的参数规模,一般个人电脑最多只能支持到14b,然后点击右侧的“复制”按钮,复制下载模型的命令。
打开windows命令提示符工具(WIN +R快捷键,然后输入cmd,回车)。点击右键粘贴命令,回车,ollama会自动下载模型。
安装完成后,可以通过CTRL+D快捷键退出会话。
可以通过ollama list命令查看已安装的模型。
4.3. 添加本地模型
点击右上角的头像,在设置页面点击“模型供应商”,在列表中找到Ollama,点击其下方的“添加模型”。
模型类型根据情况选择。
chat:语言(会话、聊天)模型。
embedding:嵌入模型,用于将文本向量化。
rerank:重排模型,用于对检索结果进行再次排序,在ragflow中创建助理时,默认使用矢量余弦相似性进行这一处理,除非指定了rerank模型。
image2text:图片转文本模型。
模型名称必须与ollama中的名称一致,如想将deepseek-r1:7b添加为本地模型,就需要将其完整名称复制到文本框中。
基础Url:因为ragflow是基于docker运行,但是ollama是直接安装在宿主机的,因此基础Url填写:http://host.docker.internal:11434
API-Key:留空。
最大token数:根据需要填写,不超过8192。
填写完成后单击右下角“确定”。
如果要继续添加本地模型,可以点击ollama中的“添加模型”按钮,进行添加。
5. 添加互联网模型
本章中只描述半本地化部署的模型添加方法,完全本地化部署的模型添加方法请参考的添加本地模型步骤。
5.1. 获取API KEY
本文以DeepSeek为例,进入DeepSeek开放平台,https://platform.deepseek.com/。
在API Keys中,创建API key。然后复制并保存。
5.2. 添加模型
点击右上角头像。
点击“模型提供商”,在列表中找到自己期望的模型供应商,以DeepSeek为例,点击“添加模型”。
在弹出的窗口中填写上一步获取的API KEY,确定。
添加成功后,可以在页面上半部分的已添加模型列表中,看到刚刚添加的DeepSeek了。
6. 添加知识库与对话
6.1. 修改系统模型
在模型供应商中,点击右上角的“系统模型设置”。
在其中选择各类模型的默认模型,比如聊天模型选deepseek等。
嵌入模型和Rerank模型一般不必修改。
Img2txt、Sequence2txt、TTS这三种模型,可以等需要用到的时候,添加模型后,再来配置。其中img2txt模型用于识别图片,Sequence2txt模型用于识别语音,TTS模型用于生成语音。
6.2. 添加知识库
点击上方导航栏的“知识库”,进入知识库页面,点击右侧的“创建知识库”按钮。
在弹出窗口中,输入名称后确定,进入知识库配置页面。
设置知识库的各项参数。
文档语言:“中文”。
嵌入模型:默认不变。
解析方法:取决后面需要上传到知识库的文件类型,每一种在页面右侧都有说明和示例,我要上传的是一个存放在EXCEL中的问答对,所以我选择Q&A。
其他信息如果不懂就不调整。
确认后保存。
在数据集中新增文件,选择本地文件。
在弹出的窗口中,上传准备好的知识库文档。
上传成功后,单击文件右侧的解析按钮开始解析文件,解析成功后,解析状态会变为“成功”。
单击“检索测试”,在该页面中进行问答测试。通过调整相似度阈值和关键字相似度权重两个参数,来测试什么样的设置能获得相对精准的回答。
6.3. 创建对话
点击上方导航栏的“聊天”,再点击“新建助理”。
给助理设置一个姓名,最底部的知识库中选择刚刚创建的知识库。
然后点击窗口上方的“提示引擎”。
在窗口中根据需要修改提示词,因为我需要助手严格按知识库中的内容作答,不要回答其他内容,所以在默认的提示词基础上做了一点修改。
再根据上一步添加知识库时的测试,设置合适的相似度阈值和关键词相似度权重。
提示引擎设置完成后,点击窗口上方的“模型设置”。
选择期望使用的模型,以及模型的回复风格。
注意模型下拉列表中,Ollama下面的是本地模型,上面的DeepSeek是接入供应商的API,需要按用量付费的。实际使用中,我们要么选择半本地化部署,要么选择完全本地化部署,一般是不太会出现二者皆有的情况,这里只是为了方便演示。
最大token数,如果助手给出的回答中预估内容比较长,可以适当增加最大token数。
一切确定后,单击“确定”按钮,创建助手成功。
点击聊天右侧的“+”号,创建新的对话。
然后就可以开始对话了。
6.4. 分享助手
有时候助手需要分享给别人使用,点击右上角头像,进入API页面,点击API KEY按钮。
在弹出的窗口中点击“创建新密钥”,然后确定。
点击上方导航栏“聊天”,回到聊天页面。
鼠标光标停留在智能助手上方时,会出现一个设置按钮,将光标移动上去,在弹出的列表中选择“嵌入网站”。
将src后面引号内的内容复制出来,将localhost替换为本机IP或域名,就可以分享给别人使用了。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· c# 半导体/led行业 晶圆片WaferMap实现 map图实现入门篇