Deepseek R1+Ollama+Dify搭建本地RAG知识库
注:以下为Windows10系统操作记录,16G内存,NVIDA 4060 8G显卡
Dify
Dify 是低代码一站式大模型应用开发平台。它有可视化界面,降低开发门槛,支持集成多种主流大语言模型。可上传数据微调模型、编排工作流,还能快速部署应用并提供运维监控。支持RAG知识库和AI Agenta 适用于智能客服、内容创作等场景,高效灵活又安全。
Github项目地址Github-Dify
前置准备
本文工具和模型
- Ollama—-开源软件,本地部署大模型
- Deepseek R1—- 开源LLM模型
- Nomic-Embed-Text—-开源嵌入向量模型
- Dify—-开源,低代码LLM应用、agent应用平台
- Docker Desktop—Docker官网提供,Windows下运行Docker的工具
- Git—免费开源的分布式版本控制系统,拉取开源项目源码
Windows安装Docker Desktop
打开Hyper-V 功能
通过控制面板的方法:
- 打开控制面板:可以通过左下方 “开始” 菜单直接搜索 “控制面板” 打开;也可以使用 “Win+R” 快捷键开启运行,输入 “control” 回车进入 “控制面板”。
- 进入程序和功能:在控制面板中,将查看方式设置为 “大图标” 或 “小图标”,找到并点击 “程序和功能”。
- 启用或关闭 Windows 功能:在 “程序和功能” 窗口的左侧,点击 “启用或关闭 Windows 功能”。
- 勾选 Hyper-V:在弹出的 “Windows 功能” 窗口中,找到 “Hyper-V” 选项并勾选,勾选后下方会出现一系列相关的子功能,通常建议全部勾选以确保功能的完整性。
- 安装并重启:点击 “确定” 后,Windows 将开始下载并安装 Hyper-V 所需的文件,安装完成后,系统会提示需要重启电脑以完成配置。
在 Windows 10 上安装WSL2 以支持安装 Docker
可参考以下步骤:
启用适用于 Linux 的 Windows 子系统
- 以管理员身份打开 PowerShell,可以通过 “开始” 菜单找到 “PowerShell”,单击右键选择 “以管理员身份运行”。
- 在 PowerShell 中输入命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
,该命令用于启用适用于 Linux 的 Windows 子系统功能。
启用虚拟机平台
- 继续在管理员权限的 PowerShell 中输入:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
,此命令用于启用虚拟机平台,为 WSL2 提供支持。 - 输入完上述命令后,重启计算机,以完成 WSL 相关功能的安装和配置。
下载 Linux 内核更新包
可前往WSL2 Linux 内核更新包下载页面下载适用于 x64 计算机的 WSL2 Linux 内核更新包。
也可使用wsl.exe --install
或wsl.exe --update
命令
验证 WSL2 安装
在 PowerShell 中输入wsl --list --verbose
,可以查看已安装的 WSL 及其版本信息,确认是否成功安装 WSL2。
安装好 WSL2 后,就可以进行 Docker 的安装。如果要安装 Docker Desktop for Windows,可前往Docker 官方下载页面下载安装程序,然后按照提示完成安装,并在 Docker Desktop 的设置中配置 WSL Integration,勾选安装的 Linux 发行版,以实现 Docker 与 WSL2 的集成。
实际操作
以上为一些大模型回答的信息汇总,实际操作时,在WSL2这部分遇到问题,处理解决,一些记录如下
- dism 方式启动虚拟化相关
-
docker启动后如果有wsl update的报错,需要下载msi文件先安装下
-
Docker如果正常跑起来,命令行检查结果
安装
采用源码方式安装,需要进行git clone dify源码,docker
git clone dify项目源码
由于不可抗力无法访问Github
使用国内镜像源,例如使用 git clone https://gitcode.com/gh_mirrors/di/dify.git
使用docker安装
clone完成后,命令行进入到dify的docker目录,然后按项目官方说明执行命令进行安装
|
|
这里docker compose up这一步会有如下报错,也是因为不可抗力造成无法访问docker的官方镜像仓库地址
也需要更换国内的镜像仓库解决,例如https://1ms.run 网站提供的
|
|
Windows的docker desktop版本修改镜像仓库地址的方法是直接在图形界面设置中修改,在Docker Engine中增加registry-mirrors
配置项,apply&restart重启生效
docker info
命令检查镜像仓库配置是否生效
如果镜像仓库可用,修改后可正常安装,如果不能用,还是一样的报错,注意不是因为新配的镜像仓库地址没生效,而是默认和新配的都不可用;
看上去它这个报错的打印只会显示默认镜像地址的不可用报错。
安装成功后docker可以看到容器在正常运行
浏览器访问http://localhost/install进入dify的web界面,配置用户信息。
设置完后登录正常显示主界面,至此Dify安装成功,可以看到对比anythingLLM界面差距比较大,Dify功能更丰富,工具agent有很多
知识库功能初测
进行模型设置,和anythingLLM配置一样,也是选择本地ollama,配置LLM和向量模型,把这两个模型配置好。
可以看看帮助文档做参考,本文是docker安装方式,所以填http://host.docker.internal:11434
关于知识库上传文档大小限制,可以根据需要修改dify的docker目录下的.env
重启Docker服务生效
有两处配置需要修改
上传文件默认15MUPLOAD_FILE_SIZE_LIMIT=15
nginx的配置客户端上传文件限制15MNGINX_CLIENT_MAX_BODY_SIZE=15M
|
|
知识库创建
可改为选择推荐混合检索
聊天应用创建
测试
目前能看到是去读取了相关知识库的文件,检查ollama也正常跑了本地的大模型,后续再继续研究回答与AnythingLLM有差异的问题。
关于Chatbot
进过调试预览问答后的结果,进行发布更新后,在单独Chat窗口就能得到新发布的结合知识库检索的结果
文档召回测试
这里可以输入测试文本在知识库的文档Chunk的命中的情况
监测功能
总结
- Dify安装使用难点主要在于Windows下Docker Desktop软件问题,以及不可抗力导致的网络连接问题如何不科学上网的情况下解决
- Windows 下docker的安装部署,WSL/WSL2相关安装时报错问题
- Dify源码安装,拉取Github镜像,会遇到网络问题;
docker compose up -d
安装时大概率也会遇到docker镜像仓库不可访问的网络问题 - 整理了几个网站,在不科学上网情况下,解决上述不可抗力网络问题
- Github国内镜像站2025最新可用!18个Github镜像站,国内更快部署下载(1月更新)
- Docker镜像加速网站服务状态国内 Docker 服务状态 & 镜像加速监控
- 测试可用网络评价稳定的Docker镜像仓库毫秒镜像
- Dify的功能很多,需要更深入的去了解和尝试,目前使用测试来看Dify的可用性,易用性,灵活度,是高于anythingLLM的。
- 知识库中的文档内容,比如PDF以及文档中的图像,大模型是否分析、处理到了,如何处理图片以及图片上文字的,业务流程图大模型是否能读取分析,需要研究