1. 摘要

Dify是一款开源的大语言模型(LLM)应用开发平台。可以快速搭建生产级的生成式AI应用。Dify内置了构建LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的Prompt编排界面、高质量的RAG引擎、稳健的Agent框架、灵活的流程编排,并同时提供了一套易用的界面和API

在linux环境中使用docker部署dify v1.1.0版本,vllm部署DeepSeek-R1-Distill-Qwen-32Bollama部署bge-m3,并在dify中配置deepseekbge-m3

2. 安装docker和docker compose

没有安装docker和docker compose的可以参考:安装docker和docker-compose以及docker常用命令总结-CSDN博客

3. 安装dify

3.1 下载dify程序

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

3.2 用docker- compose安装dify

cd dify/docker

cp .env.example .env

sudo docker-compose up –d

运行命令后,你应该会看到类似以下的输出,显示所有容器的状态和端口映射:

检查是否所有容器都正常运行:

sudo docker compose ps

3.3 运行sudo docker-compose up -d可能遇到的几个错误

3.3.1 第一个错误

unexpected character "%" in variable name near "%H:%M:%S\n# Log Timezone\nLOG_TZ=UTC\n\n# Debug mode, default is false.\n

解决方法:

打开.env文件

把:

LOG_DATEFORMAT=%Y-%m-%d %H:%M:%S
修改成:
LOG_DATEFORMAT='%Y-%m-%d %H:%M:%S'

3.3.2 第二个错误

requests.exceptions.InvalidURL: Not supported URL scheme http+docker

解决方法:

报这个错误的时候,我的docker-compose版本是1.29.2,把docker-compose升级到最新版本,完美解决这个错误。

4. 用vllm部署DeepSeek-R1-Distill-Qwen-32B

具体的部署方法参考:使用vllm部署DeepSeek-R1-Distill-Qwen-1.5B-CSDN博客vllm多卡部署qwen2.5-72b-instruct_vllm部署qwen2.5-72b-CSDN博客

5. 用ollama部署bge-m3

5.1 ollama的安装和启动参考:使用ollama部署DeepSeek-R1-Distill-Qwen-1.5B_ollama deepseek-r1-distill-qwen-1.5b-CSDN博客

5.2 安装bge-m3

启动ollama以后,运行以下命令:

ollama pull bge-m3

6. 访问dify

6.1 前往管理员初始化页面设置设置管理员账户

# 本地环境

http://localhost/install

# 服务器环境

http://your_server_ip/install

6.2 Dify主页面

# 本地环境

http://localhost

# 服务器环境

http://your_server_ip

6.3 在dify中配置deepseek和bge-m3

在模型供应商中安装vllm和ollama,然后在vllm中配置我们刚才在服务器上部署的DeepSeek-R1-Distill-Qwen-32B,在ollama中配置我们刚才在服务器上部署的bge-m3。

7. 后续dify版本升级

7.1 可以使用git的情况

cd dify/docker

sudo docker-compose down

git pull origin main

sudo docker-compose pull

sudo docker-compose up –d

7.2 不可以使用git的情况

为了不改变volumes文件夹里面文件和文件夹的属性,我们采取旧版本里面volumes文件夹不动,把新版本的文件往旧版本里面拷贝的原则。

先下载最新的dify文件。

停掉dify:docker compose down。

备份dify:cp –rf  dify  dify_backup

整理旧版本dify目录:

cd dify

mkdir xx

保留docker文件夹,其他的文件和文件夹mv -if到xx文件夹中。

cd docker

mkdir xx_docker

保留volumes文件夹和.env文件。其他的文件和文件夹mv -if到xx_docker文件夹中。

在dify新版本文件夹中,删除volumes文件夹,然后把其他文件和文件夹按照文件夹目录结构拷贝到旧版本的dify目录下面。

如果你在旧版本中修改了docker-compose.yaml文件,那么你就把相应的修改同步到新版本的docker-compose.yaml文件中。

启动新版本的dify:docker compose up –d

测试没有问题后删除xx和xx_docker文件夹。

8. dify的80端口被占用怎么修改端口

vim /opt/dify/docker/.env

8.1 修改变量EXPOSE_NGINX_PORT,把80改成180

EXPOSE_NGINX_PORT=180

8.2 修改变量EXPOSE_NGINX_SSL_PORT,把443改成1443

EXPOSE_NGINX_SSL_PORT=1443

8.3 修改变量SERVICE_API_URL

SERVICE_API_URL=http:// your_server_ip:180

8.4 修改变量APP_API_URL

APP_API_URL= http:// your_server_ip:180

8.5 修改变量APP_WEB_URL

APP_WEB_URL= http:// your_server_ip:180

8.6 然后重启dify

docker compose down

docker compose up -d

更多推荐