链载Ai

标题: Dify新版本部署失败的看过来!Dify 1.0.0本地部署使用及主要问题解决方法 [打印本页]

作者: 链载Ai    时间: 前天 17:34
标题: Dify新版本部署失败的看过来!Dify 1.0.0本地部署使用及主要问题解决方法


ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;display: table;padding: 0.3em 1em;color: rgb(255, 255, 255);background: rgb(85, 201, 234);border-radius: 8px;box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px;">1. dify 简介

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;color: rgb(63, 63, 63);">

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">Dify 是一个开源的大模型(LLM,Large Language Model)应用开发平台,提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,旨在通过低代码/无代码方式简化生成式 AI 应用的构建,仅通过拖拉拽和配置即可构建复杂的企业级人工智能应用。此外也支持通过其插件体系、API 调用等方式编程开发扩展实现更为复杂的功能需求。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">在ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 12.6px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;">deepseek-r1带动起来的 AI 热潮下,大家对部署私有 deepseek 模型和搭建本地知识库、AI智能体具有前所未有的热情。在众多支持知识库、工作流和智能体的应用框架中,Dify 因其安装使用简单、配置灵活、可玩性高等特点而独树一帜。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">近期 Dify 发布了全新的 1.0.0 版本。本文将介绍 Dify 1.0.0 版本基于 docker 的私有化安装配置及使用过程中遇到的主要问题的解决方法。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;display: table;padding: 0.3em 1em;color: rgb(255, 255, 255);background: rgb(85, 201, 234);border-radius: 8px;box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 6px;">2. 基于 docker 部署 Dify

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">请先确保已安装了ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 12.6px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;">gitingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-feature-settings: normal;font-variation-settings: normal;font-size: 12.6px;text-align: left;line-height: 1.75;color: rgb(221, 17, 68);background: rgba(27, 31, 35, 0.05);padding: 3px 5px;border-radius: 4px;">docker(企业内也可以安装podman替代docker)。可参考:

然后参考执行如下命令:

# 示例,进入工作目录
cd~/workspace

# 拉取 Dify 仓库源码
gitclonehttps://github.com/langgenius/dify.git

# 将 `dify/docker` 目录复制出来
# 因为后文会涉及修改 `docker-compose.yaml` 文件,故不修改仓库中文件,方便后续拉代码升级
cp-r dify/docker dify-docker
cddify-docker
# 复制方式创建环境变量配置文件 .env
cp.env.example .env

# 拉取镜像 -- 国内用户可能会失败,可参考下一章节内容解决
docker-compose pull

新建run.sh文件,用于快速启停 Dify 服务:

echo"docker-compose down && docker-compose up -d"> run.sh
# 赋予可执行权限
chmod+x run.sh

执行./run.sh启动 Dify 服务。然后可通过浏览器访问http:<ip>:<nginx 端口>,如:http://192.168.1.100:8001

以上即为基于 docker 安装和配置并启动 Dify 的全部步骤。

但是如果你是国内用户且没有开代理上网方式,那么你可能会遇到一些问题,可参考下一章节内容解决,主要是通过修改docker-compose.yaml.env文件的部分配置以适应国内网络环境。

2. Dify 1.0.0 版本国内安装的主要问题及解决

首先你应掌握基于 docker 部署的服务通过查看日志分析排查问题的基本方法:

# 查看当前运行中的容器服务
docker ps

# 以 watch 模式查看某个容器打印的日志
docker logs -f <容器ID>
# 示例:
docker logs -f dify-docker_dify-api-1
docker logs -f dify-docker_dify-plugin-daemon-1

2.1 Docker 镜像拉取失败的问题及解决

然后再执行docker-compose pull拉取镜像。

2.2 启动报 80 端口禁止绑定的问题及解决

这主要是因为我使用了 Podman。Podman 是以非 root 用户身份启动容器服务的,非 root 用户默认只能使用 1024 以上端口。使用sysctl命令可以修改该起始端口,示例:

# 临时生效
sysctl net.ipv4.ip_unprivileged_port_start=0
# 永久生效
echo"net.ipv4.ip_unprivileged_port_start=0">> /etc/sysctl.conf

也可以编辑.env文件,搜索并修改 NGINX 映射端口号为 1024 以上。示例:

EXPOSE_NGINX_PORT=8001
EXPOSE_NGINX_SSL_PORT=4443

2.3 Dify 插件市场模型、插件安装失败的问题及解决

Dify 1.0 版本上线了全新的插件市场,所有的模型、工具和扩展都可通过插件模式进行安装。当然如果有开发能力,也可以开发自己的插件,这无疑为 Dify 提供了非常大的个性化定制潜力,可玩性也高了不少。Dify 1.0 的插件市场功能比较完整,但细节还不够完善,网络环境较差的情况下使用体验较差。

Dify 插件的底层是 Python 代码开发,插件依赖的第三方库则需要在安装时实时下载。

由于众所周知的原因,国内用户在安装插件时,大概率会遇到因网络问题下载慢、无法成功安装等现象。可以通过设置 pip 使用国内镜像源解决。

docker-compose.yaml中查找plugin_daemon,在其下方的environment下新增如下内容:

plugin_daemon:
image:langgenius/dify-plugin-daemon:0.0.3-local
restart:always
environment:
# 设置超时时间为 300 秒
PYTHON_ENV_INIT_TIMEOUT{PYTHON_ENV_INIT_TIMEOUT:-300}
# 设置 pip 使用国内镜像源
PIP_MIRROR_URL{PIP_MIRROR_URL:-https://pypi.tuna.tsinghua.edu.cn/simple}

此外还需修改.env文件,在末尾添加如下环境变量配置:

MARKETPLACE_URL=https://marketplace.dify.ai

PLUGIN_WORKING_PATH=/app/storage/cwd
PYTHON_ENV_INIT_TIMEOUT=300
PIP_MIRROR_URL=https://pypi.tuna.tsinghua.edu.cn/simple

相关建议参考:


2.4 使用 Podman 启动报错的问题及解决

Podman是当前最佳的docker开源替代品,由于因授权问题公司禁止使用 docker-desktop,所以我日常是使用 Podman 替代 Docker。

关于Podman的安装与使用可参考该文:替代 docker 与 docker-desktop:国内环境下 podman 的安装与使用

在使用podman-compose启动服务时遇到了network相关的报错:

RuntimeError:missingnetworks:default

经排查分析解决方法为,编辑docker-compose.yaml文件,搜索networks并在其下方新增如下内容即可:

sandbox:
networks:
-ssrf_proxy_network
-default# 需新增的内容

networks:
default:# 需新增的内容
driver:bridge# 需新增的内容

3 Dify 1.0 的模型下载、配置及使用

新版本的所有模型配置都通过插件形式提供。首先需要下载和安装模型,然后配置它。推荐在插件市场下载安装如下几个模型:

可以通过添加第三方模型供应商的 API 以使用更为强大的大模型能力。当前有如下几个注册送免费额度的供应商:

在完成安装和配置之后,就可以通过在“工作室”创建个性化 AI 应用了。下图是一个较为复杂的投资工具工作流示例,它包含了数十个工作步骤,通过它可以看出工作流模式是相当具有灵活性了:

值得一提的是,Dify 支持 DSL 导入导出,可以方便的将工作流导出为 DSL 文件,然后分享给他人,他人再通过 DSL 文件导入即可。下面是一个开源的 Dify DSL 仓库,若有兴趣可以下载和参考,学习他人是如何创建和使用的:

总体来讲,Dify 1.0 版本最大的变化是引入了全新的插件体系,并提供了插件市场,将大厂模型适配、工具、扩展等从核心框架抽离为独立的插件,从而使得其个性化定制有了非常大的空间。通过安装官方插件可满足低代码/无代码方式快速搭建 AI 原生应用,也可通过开发定制私有插件扩展更为复杂的个性化能力需求。这种模式也为后续引入付费插件提供了想象空间。

不过当前的插件体系细节还不够完善,网络环境一般的情况下体验较差,只是安装和配置插件的过程就会消耗掉许多的时间。已在使用低版本的同学建议多等一等,可以通过全新安装体验后再决定是否值得升级。






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5