Featured image of post Deepseek+Ollama+Dify搭建本地RAG知识库

Deepseek+Ollama+Dify搭建本地RAG知识库

Deepseek R1+Ollama+Dify搭建本地RAG知识库

注:以下为Windows10系统操作记录,16G内存,NVIDA 4060 8G显卡

Dify

Dify 是低代码一站式大模型应用开发平台。它有可视化界面,降低开发门槛,支持集成多种主流大语言模型。可上传数据微调模型、编排工作流,还能快速部署应用并提供运维监控。支持RAG知识库和AI Agenta 适用于智能客服、内容创作等场景,高效灵活又安全。


中文官网Dify.AI · 生成式 AI 应用创新引擎

Github项目地址Github-Dify

前置准备

本文工具和模型

  • Ollama—-开源软件,本地部署大模型
  • Deepseek R1—- 开源LLM模型
  • Nomic-Embed-Text—-开源嵌入向量模型
  • Dify—-开源,低代码LLM应用、agent应用平台
  • Docker Desktop—Docker官网提供,Windows下运行Docker的工具
  • Git—免费开源的分布式版本控制系统,拉取开源项目源码

Windows安装Docker Desktop

打开Hyper-V 功能

通过控制面板的方法:

  1. 打开控制面板:可以通过左下方 “开始” 菜单直接搜索 “控制面板” 打开;也可以使用 “Win+R” 快捷键开启运行,输入 “control” 回车进入 “控制面板”。
  2. 进入程序和功能:在控制面板中,将查看方式设置为 “大图标” 或 “小图标”,找到并点击 “程序和功能”。
  3. 启用或关闭 Windows 功能:在 “程序和功能” 窗口的左侧,点击 “启用或关闭 Windows 功能”。
  4. 勾选 Hyper-V:在弹出的 “Windows 功能” 窗口中,找到 “Hyper-V” 选项并勾选,勾选后下方会出现一系列相关的子功能,通常建议全部勾选以确保功能的完整性。
  5. 安装并重启:点击 “确定” 后,Windows 将开始下载并安装 Hyper-V 所需的文件,安装完成后,系统会提示需要重启电脑以完成配置。
在 Windows 10 上安装WSL2 以支持安装 Docker

可参考以下步骤:

启用适用于 Linux 的 Windows 子系统
  1. 以管理员身份打开 PowerShell,可以通过 “开始” 菜单找到 “PowerShell”,单击右键选择 “以管理员身份运行”。
  2. 在 PowerShell 中输入命令:dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart,该命令用于启用适用于 Linux 的 Windows 子系统功能。
启用虚拟机平台
  1. 继续在管理员权限的 PowerShell 中输入:dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart,此命令用于启用虚拟机平台,为 WSL2 提供支持。
  2. 输入完上述命令后,重启计算机,以完成 WSL 相关功能的安装和配置。
下载 Linux 内核更新包

可前往WSL2 Linux 内核更新包下载页面下载适用于 x64 计算机的 WSL2 Linux 内核更新包。

也可使用wsl.exe --installwsl.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 方式启动虚拟化相关

image-20250202182507425

  • 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目录,然后按项目官方说明执行命令进行安装

1
2
3
4
cd dify
cd docker
cp .env.example .env
docker compose up -d

这里docker compose up这一步会有如下报错,也是因为不可抗力造成无法访问docker的官方镜像仓库地址

也需要更换国内的镜像仓库解决,例如https://1ms.run 网站提供的

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
PS C:\WINDOWS\system32> docker compose up -d
no configuration file provided: not found
PS C:\WINDOWS\system32> cd L:\RAG\Dify\dify\docker
PS L:\RAG\Dify\dify\docker> docker compose up -d
[+] Running 9/9
 ✘ db Error         context canceled                                                                              17.4s
 ✘ ssrf_proxy Error context canceled                                                                              17.4s
 ✘ web Error        context canceled                                                                              17.4s
 ✘ redis Error      context canceled                                                                              17.4s
 ✘ api Error        Get "https://registry-1.docker.io/v2/": dialing registry-1.docker.io:443 contain...           17.4s
 ✘ weaviate Error   context canceled                                                                              17.4s
 ✘ nginx Error      context canceled                                                                              17.4s
 ✘ sandbox Error    context canceled                                                                              17.4s
 ✘ worker Error     context canceled                                                                              17.4s
Error response from daemon: Get "https://registry-1.docker.io/v2/": dialing registry-1.docker.io:443 container via direct connection because  has no HTTPS proxy: connecting to registry-1.docker.io:443: dial tcp 162.125.32.13:443: connectex: No connection could be made because the target machine actively refused it.
PS L:\RAG\Dify\dify\docker>

Windows的docker desktop版本修改镜像仓库地址的方法是直接在图形界面设置中修改,在Docker Engine中增加registry-mirrors配置项,apply&restart重启生效

image-20250203024529771

docker info命令检查镜像仓库配置是否生效

image-20250203025112742

如果镜像仓库可用,修改后可正常安装,如果不能用,还是一样的报错,注意不是因为新配的镜像仓库地址没生效,而是默认和新配的都不可用;

看上去它这个报错的打印只会显示默认镜像地址的不可用报错。

安装成功后docker可以看到容器在正常运行

image-20250203120318603

浏览器访问http://localhost/install进入dify的web界面,配置用户信息。

设置完后登录正常显示主界面,至此Dify安装成功,可以看到对比anythingLLM界面差距比较大,Dify功能更丰富,工具agent有很多

image-20250203025805642

知识库功能初测

进行模型设置,和anythingLLM配置一样,也是选择本地ollama,配置LLM和向量模型,把这两个模型配置好。

image-20250203030731376

image-20250203031801176

image-20250203032404258

可以看看帮助文档做参考,本文是docker安装方式,所以填http://host.docker.internal:11434

image-20250203031533128

关于知识库上传文档大小限制,可以根据需要修改dify的docker目录下的.env重启Docker服务生效

有两处配置需要修改

上传文件默认15MUPLOAD_FILE_SIZE_LIMIT=15

nginx的配置客户端上传文件限制15MNGINX_CLIENT_MAX_BODY_SIZE=15M

1
2
3
4
5
6
# Upload file size limit, default 15M.
UPLOAD_FILE_SIZE_LIMIT=15
# Nginx performance tuning
NGINX_WORKER_PROCESSES=auto
NGINX_CLIENT_MAX_BODY_SIZE=15M
NGINX_KEEPALIVE_TIMEOUT=65

知识库创建

image-20250319005443063

image-20250203033254306

可改为选择推荐混合检索

image-20250319003723002

聊天应用创建

image-20250203033659479

测试

目前能看到是去读取了相关知识库的文件,检查ollama也正常跑了本地的大模型,后续再继续研究回答与AnythingLLM有差异的问题。

image-20250319003922728

关于Chatbot

进过调试预览问答后的结果,进行发布更新后,在单独Chat窗口就能得到新发布的结合知识库检索的结果

image-20250319005236190

image-20250319004344348

image-20250319004638954

文档召回测试

这里可以输入测试文本在知识库的文档Chunk的命中的情况

image-20250319004814199

监测功能

image-20250204165806333

总结

  1. Dify安装使用难点主要在于Windows下Docker Desktop软件问题,以及不可抗力导致的网络连接问题如何不科学上网的情况下解决
  2. Dify的功能很多,需要更深入的去了解和尝试,目前使用测试来看Dify的可用性,易用性,灵活度,是高于anythingLLM的。
  3. 知识库中的文档内容,比如PDF以及文档中的图像,大模型是否分析、处理到了,如何处理图片以及图片上文字的,业务流程图大模型是否能读取分析,需要研究
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计