书接上回《本地部署deepseek,创建你的DBA小助理》。
要知道,deepseek的模型截止日期是2023年底,这就意味着,整个2024年所有新产生的文本都无法在deepseek中直接获取。另一方面,我们平时工作中有很多的配置、笔记、事故报告等等,都需要经常调用或者查阅。有没有办法把它们集成到一起?
答案是有,存在着一个叫做本地知识库的东西,大模型可以通过把这部分文档读取后,写入到向量数据库中,而用于相关的提问。目前为止,大模型的知识库软件已经非常多,除了windows平台可以直接安装的cherry studio或者anythingllm,还有其他更好用的吗?
我给出的答案是:RAGFlow,这是一款国产开源的本地知识库解决方案。
部署RAGFlow
仍然还要先说一下我的系统配置。
CPU:i7 13700
GPU:4060Ti
内存:64GB
硬盘:NVME 100GB
操作系统:Windows 11
大模型管理工具:ollama
deepseek大模型:deepseek-r1:14b(之前的32b版跑的很吃力,我选择了参数更少的)
除此之外,我们还需要一个docker destop,用于启动docker引擎,这些都安装完之后,接下来我们开始部署。可以参考官方文档:https://github.com/infiniflow/ragflow/blob/main/README_zh.md
1. 下载代码库
使用git命令或者直接在网页上download code都可以
git clone https://github.com/infiniflow/ragflow.git
2. 获取RAGFlow镜像
进入ragflow/docker目录下,修改.env文件的参数RAGFLOW_IMAGE=infiniflow/ragflow:v0.16.0
如果此处不修改会默认下载slim版,然后在RAGFlow目录下使用命令
docker compose -f docker/docker-compose.yml up -d
整个文件大概不到10gb,根据网速时间会有不同,除了RAGFlow,还要下载minio、mysql和es的镜像,都下载完成服务即可启动
3. 配置windows服务
都完成之后,用命令确认一下结果,能够输出日志就说明配置成功了
docker logs -f ragflow-server
如果在windows上,还需要一个步骤,就是添加端口和环境变量,OLLAMA_HOST的值设置成0.0.0.0,这一步一定要做
然后在防火墙端口中增加规则,在入站规则里添加tcp端口11434,这是ollama的端口
都配置完成,在浏览器中输入http://{your_ip}:11434,能够看到ollama已经在执行的页面,就说明配置成功了
4. 配置RAGFlow服务
在浏览器中输入http://localhost:80
,就能看到RAGFlow的登陆页面,第一次使用需要注册,注册完成之后即可登录
创建本地知识库
完成RAGFlow的配置之后,接下来我们需要开始配置我们本地部署的ollama和deepseek,以及创建一个本地知识库。
1. 关联大模型
点击右上角的头像,进入设置。
选择模型供应商,并选择ollama,点击进去之后,模型类型选择chat,模型名称是我本地部署的deepseek-r1:14b,基础url填写刚刚测试过的哪个ollama地址,最大token数可以根据自己情况调整
完成之后,在web上就会看到已添加的模型里有ollama,点击展示更多模型按钮,看到deepseek就说明配置成功
2. 创建知识库
点击web上的知识库——创建知识库,会弹出一个菜单,知识库语言根据自己情况选择,创建完成之后,我们在上传一个测试文件,包含了2025赛季F1各个车队的车手名单,上传完成后一定要解析,否则不能用。同时可以点进去看看分块数的具体情况,如果不满意点击扳手按钮,选择调整分块规则
然后我们创建一个新对话,点击聊天——新建助理,知识库就是我们刚刚创建的哪个,注意这里模型设置需要选择ollama,最大token数根据自己需求调整。创建完成后再选择创建一个聊天对话,接下来就可以验证知识库是否生效
能够看到的是,知识库已经生效了,法拉利的车手变成了勒克莱尔和汉密尔顿,如果我们不包含本地知识库,直接从dos去问,得到的答案还是之前的版本,甚至还是错的,诺里斯成了法拉利的车手
3. 拓展应用
接下来我上传一个excel,包含了所有的服务器设备列表,然后我们创建一个新的助手,并关联这个excel所在的知识库,并提问,这个excel文件中各类型数据库各自有多少台服务器
能够看到统计的结果,除此之外,常用的命令也可以用它来搜索,比如我要去找一个创建物化视图的命令,从笔记里找一个创建物化视图的ddl,结果是这样的:
4. agent模板
agent功能也是RAGFlow里非常炫酷的一个功能,而且提供了模板,比如我需要的text2sql以及DB Assistant,点进去以后可以直接生成模板,填写完参数即可运行。这部分使用需要一些学习,所以后面会找机会单独选一个篇幅来做。有兴趣大家也可以去RAGFlow官网 去找找
小结
横向对比了多个本地知识库之后,最后还是选择了RAGFlow来做我的测试工具,理由如下:
1. 支持多平台服务部署,可以多人同时访问,工作成果可以共享给团队,这是windows平台其他几个工具不具备的
2. 知识库的构建更加精细,比如之前那个物化视图的提问,实际上做过调整,我把解析后的文件块打了标签并关联的问题,这样获得的答案更加精准
3. 支持agent与模板,这是属于高级特性,只要掌握了,可以做出很多定制化的工具,给自己未来工作节省人力物力
4. 多种大模型集成,允许集成多种大模型,deepseek只是其中一个,可以根据自己需要添加定制
5. 可以定制助理的名称、头像、风格等等,这些让体验更加丝滑
当然,也有两个不足之处:
1. 提问必须关联知识库,创建一个空知识库没法关联
2. 暂未发现权限管理的办法,没有超级管理员和普通用户之分