前提:已安装Docker、Ollama、wsl,本地大模型为qwen2.5 7b(或deepseek-r1:7b)

为了打造一个完全属于自己的工作流并使用本地部署模型,今天来尝试一下怎么配置。

步骤概览:

本文介绍了在已安装Docker、Ollama和wsl环境下,如何配置本地大模型qwen2.5 7b/deepseek-r1:7b与Dify协同工作的完整流程。主要内容包括:1)检查Docker服务状态并安装Docker Compose;2)验证Ollama服务运行状态及API可访问性;3)部署Dify的详细步骤,包括克隆仓库、检查端口占用和启动服务。通过docker-compose命令启动容器后,需查看日志确认各组件正常运行。整个过程旨在帮助用户搭建基于本地大模型的个性化工作流。

Dify与Ollama协同工作原理

一、环境检查

检查Docker服务状态

sudo systemctl status docker

预期:看到绿色的 <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">active (running)</font>
问题:若未运行,执行 <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">sudo systemctl start docker</font><font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">sudo systemctl enable docker</font>(设置开机自启)。

2.安装Docker Compose

方法一:下载最新版的 docker-compose 二进制文件

下载最新版的 docker-compose 二进制文件
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

方法二:使用代理镜像地址下载(通常更稳定)

# 使用代理镜像地址下载(通常更稳定)
sudo curl -L "https://get.daocloud.io/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

方法三:通过pip安装

# 1. 确保pip已安装
sudo apt update
sudo apt install -y python3-pip

# 2. 通过pip安装docker-compose
sudo pip3 install docker-compose

方法四:直接安装传统版本的 docker-compose(由Ubuntu仓库提供)

#直接安装传统版本的 docker-compose(由Ubuntu仓库提供)
sudo apt install -y docker-compose

3.安装完成后进行验证

docker-compose --version

二、配置启动

检查Ollama服务状态

ollama list

预期:看到服务正在运行。
问题:若未运行,执行 <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">sudo systemctl start ollama</font><font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">sudo systemctl enable ollama</font>

验证Ollama API可访问

#验证 API 服务在运行并返回版本信息
curl http://localhost:11434/api/version

#进一步确认模型能正常工作,可以执行一个简单的生成请求
curl http://localhost:11434/api/generate -d '{"model": "qwen2.5:7b", "prompt": "你好,你是谁?", "stream": false}'

三、部署 Dify

1.进入**dify 子目录并下载 Dify 的 最新部署文件**

git clone https://github.com/langgenius/dify.git

2.检查端口 80 是否被占用

# 检查 80 端口占用情况
sudo lsof -i :80

3.启动 Dify 服务

# 启动所有容器(首次启动会拉取镜像,可能需要几分钟)
docker-compose up -d

查看启动日志,确认所有服务正常运行:

docker-compose logs -f

等待日志输出稳定后(看到类似 <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">db</font><font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">redis</font><font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">api</font><font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">worker</font><font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">nginx</font> 都启动成功),按 <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">Ctrl+C</font> 退出日志查看。

检查容器状态:

docker-compose ps

所有服务状态应为 <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">Up</font>(或 <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">healthy</font>),例如:

4.获取 WSL 的 IP 地址

在 WSL 内运行以下命令获取 Ubuntu 的 IP(供 Windows 浏览器访问):

hostname -I | awk '{print $1}'

记下输出的 IP(例如 <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">172.18.xxx.xxx</font>)。

5.访问 Dify 完成初始化

  1. Windows 浏览器 中输入地址:<font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">http://<你的WSL-IP>:80</font>(如果修改了端口,用你修改的端口,如 <font style="color:rgb(15, 17, 21);background-color:rgb(235, 238, 242);">http://172.18.xxx.xxx:8080</font>)。

  1. 首次访问会进入初始化页面,根据提示创建管理员账户(邮箱、密码)。

  1. 登录后进入 Dify 主界面。

五、在 Dify 中集成Ollama

在Dify设置中添加模型供应商,配置Ollama的本地API地址。

如果想接入自己部署的模型,可以在右上角设置中添加

六、其他过程中遇到的问题

1.忘记密码如何重置

A.以 root 身份进入 WSL

(1)打开 Windows 的 PowerShell(管理员权限)。

(2)运行以下命令进入默认 WSL 发行版的 root 环境:

wsl -u root

B.重置用户密码

passwd fuduodu

C.重新进入wsl即可

2.dify项目克隆失败

fatal: unable to access 'https://github.com/langgenius/dify.git/': HTTP/2 stream was not closed cleanly

这表明Git在通过HTTPS协议连接GitHub时遇到了HTTP/2协议层的问题。通常是网络代理、防火墙或Git配置问题。

排查:检查并配置网络代理(如果在使用代理)
# 1. 检查当前网络环境
ping github.com -c 4
curl -I https://github.com

# 2. 如果使用代理,请设置Git代理
# 查看当前代理设置
echo $http_proxy
echo $https_proxy

# 3. 如有代理,配置Git使用代理
git config --global http.proxy http://proxy_host:proxy_port
git config --global https.proxy http://proxy_host:proxy_port

# 4. 或者先禁用代理再尝试
unset http_proxy
unset https_proxy
git clone https://github.com/langgenius/dify.git

从截图可以看出:

  1. 网络连接正常:ping成功,curl返回HTTP/2 200响应
  2. 无代理配置http_proxyhttps_proxy环境变量为空
  3. 核心问题:Git客户端在使用HTTP/2协议时与服务器连接异常终止

解决办法:禁用Git的HTTP/2支持

# 1. 临时禁用HTTP/2(仅当前会话有效)
cd ~/ai-stack/dify
git config --global http.version HTTP/1.1

# 2. 清理之前的失败克隆
rm -rf dify

# 3. 重新克隆
git clone https://github.com/langgenius/dify.git
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐