基于Docker+Dify+Ollama实现DeepSeek R1的本地部署
首先,在任务管理器中确认系统的虚拟化是否开启。确认开启后,接下来进入wsl的安装,本文在进行此项安装时,全程开着科学上网!!!。打开命令提示符(必须以管理员身份运行,否则会出现“权限不足”的报错信息),然后下列代码,启用wsl 。上述代码执行完毕后,输入下列代码,启用虚拟机平台。上述代码执行完毕后,将电脑进行重启。重启完毕后,再次以管理员的身份运行命令提示符,然后输入下列代码。【注意】此处在进行时
1. Decker的安装
1.1 wsl的安装
首先,在任务管理器中确认系统的虚拟化是否开启。
确认开启后,接下来进入wsl的安装,本文在进行此项安装时,全程开着科学上网!!!。
打开命令提示符(必须以管理员身份运行,否则会出现“权限不足”的报错信息),然后下列代码,启用wsl 。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
上述代码执行完毕后,输入下列代码,启用虚拟机平台。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
上述代码执行完毕后,将电脑进行重启。
重启完毕后,再次以管理员的身份运行命令提示符,然后输入下列代码。
wsl --install -d Ubuntu
【注意】此处在进行时出现报错信息,如下所示:
错误: 0x80072ee7
该错误通常是与网络连接有关,故对梯子进行检查,发现全局连接与规则连接所选择的节点不统一,将这两部分的节点统一成“台湾中继节点”后,该报错解除。
解决后,再次运行代码
wsl --install -d Ubuntu
然后,等待即可。
完成安装后,会弹出下列界面(该图片,借鉴与参考文章):
然后输入一个用户名和密码。
根据参考文章中的提示,此处的密码不能有大写 。
至此,wsl安装完毕。
此时,可以检测一下wsl的版本,不出意外的话,应该是wsl1。但是后续进行Docker安装时,在开始界面会有一个推荐提示,Docker推荐安装的是wsl2,故接下来需要将wsl升级为wsl2.
1.2 wsl2的安装
以管理员的身份运行命令提示符,然后输入下列代码检查wsl的版本。
wsl --list --verbose
不出意外,应该是1。
然后,使用下列代码将wsl1升级为wsl2。
wsl --set-version Ubuntu 2
此处的原始升级代码为:
wsl --set-version <你的发行版名称> 2
而在1.1中我们使用的是Ubuntu版本,故将发行版本修改为Ubuntu即可。
至此,wsl2安装完毕。
1.3 Docker的安装
Docker的下载地址为:https://desktop.docker.com/win/stable/Docker%20Desktop%20Installer.exe
下载完成后,以管理员的身份运行该文件,此时会出现两个选项,第一个就是推荐使用wsl2,第二个是创建桌面快捷方式,建议两个都选择。
安装成功后,会出现一个提示,其中蓝色框内显示为:建议重启电脑。点击蓝色框,对电脑进行重启。
电脑重启之后,打开软件,显示下列界面。
选择接收条件, 然后出现下列界面后,选择推荐的设置。
然后就出现登录账号的选择,这里我是跟着参考文章进行的,选择的是GitHub账号。
然后,参考文章中,在这一步会弹出一个提示升级的选项,本文在进行时,并没有弹出这个选项。并且,在打开软件之后,也没有提示安装缺少的组件。不知道是因为安装问题还是因为版本的问题。
【注意】在进行安装时,与参考文章的版本不同,并且在进行账号登录之后,Docker提示进行升级,按照提示进行升级即可。
然后完成后登录即可。
登录后,对Docker的镜像源文件进行修改。具体修改位置如下图所示。
将原来的Docker Engine中的代码修改为下列代码:
{
"registry-mirrors": [
"https://docker.211678.top",
"https://docker.1panel.live",
"https://hub.rat.dev",
"https://docker.m.daocloud.io",
"https://do.nark.eu.org",
"https://dockerpull.com",
"https://dockerproxy.cn",
"https://docker.awsl9527.cn",
"https://ftp.cn.debian.org/debian",
"https://mirrors.ustc.edu.cn/debian/",
"https://mirrors.tuna.tsinghua.edu.cn/debian/",
"https://mirrors.aliyun.com/debian/"
]
}
上述镜像源地址是本文在进行设置时尝试出的,应该可以完成后续的修改。假如在进行Dify的操作时,出现报错,大概率是因为镜像源地址的问题。
至此,Docker安装完毕。
2. Dify的安装
2.1 Dify源码的下载
使用Git,开启科学上网,进行下载。
Dify的源码地址:https://github.com/langgenius/dify
在你选择的文件夹下,使用Git,通过下列代码将Dify的代码下载到本地。
git clone https://github.com/langgenius/dify.git
此时,如何代码无法下载,大概率的原因是梯子的问题,可以尝试更换节点之类的方法。
2.2 Dify的部署
2.2.1 环境文件的配置
下载完Dify的源码后,进入Dify文件下的docker文件夹,会看到一个环境配置文(.env.example)件。此时需要将该文件重命名为“.env”,然后右键,选择通过记事本打开,然后在该文档的末尾加入下列代码。
#启用自定义模型
CUSSTOM_MODEL_ENABLED=true
#指定Ollama的API地址
OLLAMA_API_BASE_URL=host.docker.internal:11434
然后保存。
2.2.2 Dify的安装
再次进入到dify文件下的docker文件中,然后再文件路径中输入CMD,打开该目录下的命令提示符,然后输入下列代码查看Docker Compose的版本。
docker-compose --version
如果版本是1,则运行下列代码:
docker-compose up -d
如果版本是2,则运行下列代码:
docker compose up -d
如果顺利的话,看到下列内容则表示顺利完成了Dify的部署。
并且,在Docker中看到下列内容。
然后,打开浏览器,输入网址:http://localhost/signin 即可进入本地的Dify,如果顺利,会出现下列界面。
如果是第一次打开,此处应该是注册界面,我这里是因为之前注册过,所以打开会显示登录界面。
2.2.3 报错信息修改
2.2.3.1 报错信息1
此处,我有一个报错内容为:
failed to copy: httpReadSeeker: failed open: failed to do request: Get "https://docker.211678.top/v2/library/redis/blobs/sha256:ea2c9629163b1567d9046a3b55e9262b8cf5844531b66112c723cae6cb3d780b?ns=docker.io": dialing docker.211678.top:443 container via direct connection because has no HTTPS proxy: connecting to docker.211678.top:443: dial tcp 199.59.148.96:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
询问AI后,可能是因为DNS导致的,故修改了电脑的DNS。
首先,打开:网络和Internet
选择:更改适配器选项
然后 根据电脑连接网络的方式,选择以太网或者无线网,然后选择:更改此连接的设置
然后选择 :Internet协议版本4(TCP/IPv4),选择:属性
然后选择:使用下面的DNS服务器地址,并将其设置为下列内容。本文此处只是进行了这样的设置,具体的内容,请查看DNS的参考文章。
修改完成后,再次运行代码即可完成安装。
2.2.3.2 报错信息2
安装完上述内容后,在输入网址:http://localhost/signin 之后,可能会出现打不开的情况,此时页面显示的报错信息为“服务器内部错误”,我尝试过很多的修改方式,比如设置数据库之类的,但是都没哟解决这个问题。
此时,我将电脑进行了关机重新,然后开机之后,再次进行了Dify的安装(前提:将Docker中所有的内容删除,同时关闭了Doeker的所有容器),然后再次尝试的时候,发现已经安装完成了并且可以正常打开进行注册。
总结:如果出现“服务器内部错误”的错误信息,建议在删除Docker内所有的内容并关闭容器的情况下,进行电脑重启,然后再次进行Dify的安装,此时应该可以解决这个问题。
3. Ollama的安装
3.1 Ollama的下载与安装
Ollama的官方下载地址为:Ollama 进入后可以看到下列界面。
然后选择Download进行下载,此时直接下载就可以。下载完成后,安装一般的软件安装方式进行安装即可。
注意:Ollama在安装过程中,不可更改安装目录,默认安装到电脑的C盘,并且之后通过Ollama下载大模型时,也会默认下载到C盘。当然,可以修改Ollama中大模型的下载地址,但是Ollama的安装地址,本文没有进行更改。
3.2 更改Ollama中大模型的存放地址
第一步,需要关闭Ollama程序,右键Ollama的图标,然后选择Quit Ollama,如图所示。
第二步, 在搜索框中输入“编辑系统环境变量”,打开该设置。
然后,点击“环境变量”
在“系统变量”下,点击新建,具体名称如图所示。
注意:在变量值处,填写你要存在大模型的地址。
点击确定即可。
第三步,找到之前Ollama安装时的models的存在位置,可以通过everything软件去搜索。
然后打开该路径,将.ollama文件下的 models文件,剪切复制到你想要更改的位置。
注意:models的位置,要与你填写的第二步中的位置相同,拿本文的来说,我系统变量中设置的地址为F:\DeepSeek_R1+Dify+SearXNG\ollama\ollama\models,那么我需要将剪切的models文件存放在F:\DeepSeek_R1+Dify+SearXNG\ollama\ollama下。
至此,就完成了对大模型存放地址的修改。
4. 下载DeepSeek R1大模型
4.1 确定下载版本
不同的电脑型号配置不同,因此可以安装的DeepSeek R1 的版本也不同。因此,需要先搞清楚自己的电脑配置适合什么样的版本。
可以将自己的电脑配置总结好,然后发给DeepSeek,让其给你推荐一个适合的版本。
4.2 DeepSeek R1模型的下载
确定好版本后,进入到Ollama的官网,然后点击左上角的Models,然后第一个就是DeepSeek R1模型的下载
然后,点击第一个,选择一个适合的版本,然后复制右边的下载命令。
然后,win+r,输入cmd,然后将复制的命令粘贴上去,回车即可运行。
注意安装的过程可能很慢,耐心等待即可。
至此完成了DeepSeek R1的本地部署。
5. Dify+DeepSeek R1
完成上述安装之后,只能在命令提示符中使用该模型,其界面不是很友好,此时就可以用本地部署的Dify接入DeepSeek R1,实现良好的互动。具体来说:
5.1 Dify中配置DeepSeek 模型
打开本地Dify网址,点击右上角的头像,然后点击设置
然后,点击模型供应商,选择Ollama,然后点击添加模型,即可出现下列界面。
在该界面上,选择LLM模型,然后再模型名称处,填写刚刚你下载的DeepSeek 模型的版本。拿本文距离,我下载的是deepseek-r1:7b模型,则此处我就要在模型名称处填入:deepseek-r1:7b
又因为,我们使用的是Ollama和Dify的同机部署,并且Dify是通过docker部署的,故在基础URL中填入下列地址
http://host.docker.internal:11434
然后点击确定即可。
部署完成后,即可在Ollama下看到刚刚部署的模型。
5.2 搭建智能体
完成部署后,即可在Dify中搭建智能体,完成基于本地DeepSeek模型的AI。
回到Dify页面,点击工作室,然后选择创建空白应用。
然后,按照图中进行布置,当然,在名称处可以自由填写。
然后,在右上角模型处,选择刚刚部署的模型即可。
然后即可在对话框中与机器人进行对话。
结尾
上述最好的应用模式,应该是搭建属于自己的智能体,进而可以搭建属于自己的知识库体系,这只是一小步,后续还继续更新这一系列。
更多推荐
所有评论(0)