手把手教你本地部署Dify:图文详解


手把手教你本地部署 Dify:图文详解

Dify 是一款强大的开源 LLM 应用开发平台,它集成了 Assistants API 和 Agents 的能力,提供了可视化编排、运营、数据集管理等功能,帮助开发者快速构建基于各种 LLM 的生成式 AI 原生应用。无论你是想搭建一个智能客服、文本生成工具,还是一个个性化推荐系统,Dify 都能为你提供强大的支持。

本文将详细介绍如何在本地环境中部署 Dify,让你能够充分体验 Dify 的强大功能,并根据自己的需求进行定制开发。

一、 部署前的准备

在开始部署之前,我们需要做好以下准备工作:

  1. 硬件要求:

    • CPU: 建议至少 4 核。
    • 内存: 建议至少 8GB,如果需要运行较大的语言模型,建议 16GB 或以上。
    • 存储空间: 建议至少 20GB 可用空间,用于存储 Dify 的镜像、数据和模型文件。
    • 操作系统: 支持 Linux、macOS 和 Windows(通过 WSL2 或 Docker Desktop)。
  2. 软件要求:

    • Docker: 版本 20.10.5 或更高。Docker 是一个开源的应用容器引擎,Dify 使用 Docker 进行部署,可以简化环境配置和依赖管理。
    • Docker Compose: 版本 2.0 或更高。Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具,Dify 使用 Docker Compose 来管理多个服务组件。
    • Git: 用于克隆 Dify 的源代码仓库。
    • (可选)Node.js 和 pnpm: 如果你需要进行前端开发或自定义构建,则需要安装 Node.js(版本 16 或更高)和 pnpm。
  3. 网络环境:

    • 确保你的机器可以访问 Docker Hub(https://hub.docker.com/)以下载 Dify 的镜像。
    • 如果需要使用外部的 API 服务(如 OpenAI API),确保你的机器可以访问这些服务。
  4. (可选)API 密钥:

    • 如果你计划使用 OpenAI 的模型,需要提前准备好 OpenAI API 密钥。
    • 如果你计划使用其他第三方服务,也需要提前准备好相应的 API 密钥。

二、 部署步骤

准备工作完成后,我们就可以开始部署 Dify 了。Dify 提供了两种部署方式:

  • 快速部署(推荐): 使用 Docker Compose 一键部署,适用于大多数用户。
  • 手动部署: 分别部署 Dify 的各个服务组件,适用于需要更精细控制的用户。

本文将重点介绍快速部署方式,手动部署方式可以参考 Dify 的官方文档。

1. 克隆 Dify 代码仓库

首先,我们需要使用 Git 将 Dify 的代码仓库克隆到本地。打开终端或命令行工具,执行以下命令:

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

这个命令会将 Dify 的代码下载到当前目录下的 dify 文件夹中。

【图片说明】:终端中显示 git clone 命令的执行过程,以及成功克隆后的提示信息。

2. 进入 Dify 目录

克隆完成后,进入 dify 目录:

bash
cd dify

【图片说明】:终端中显示 cd dify 命令的执行结果,当前目录已切换到 dify 文件夹。

3. 启动 Docker Compose

dify 目录下,有一个名为 docker 的文件夹,其中包含了 Docker Compose 的配置文件。我们需要进入这个文件夹,然后使用 Docker Compose 启动 Dify:

bash
cd docker
docker-compose up -d

这个命令会执行以下操作:

  • 拉取镜像: 从 Docker Hub 下载 Dify 所需的镜像,包括 Web 前端、API 服务、数据库等。
  • 创建容器: 根据配置文件创建并启动 Dify 的各个服务容器。
  • 配置网络: 创建一个 Docker 网络,将各个服务容器连接起来。
  • 挂载卷: 将本地目录挂载到容器中,用于持久化存储数据和模型文件。

【图片说明】:终端中显示 docker-compose up -d 命令的执行过程,包括下载镜像、创建容器等步骤,以及最终启动成功的提示信息。

第一次启动时,由于需要下载镜像,可能需要较长时间,请耐心等待。

4. 检查部署状态

Docker Compose 启动完成后,我们可以使用以下命令检查 Dify 的部署状态:

bash
docker-compose ps

这个命令会列出 Dify 的各个服务容器的运行状态。如果所有容器的状态都显示为 Up,则表示 Dify 部署成功。

【图片说明】:终端中显示 docker-compose ps 命令的执行结果,列出所有服务容器的名称、状态、端口映射等信息,所有容器的状态都显示为 Up

如果某个容器的状态显示为 ExitedRestarting,则表示该容器启动失败,可以查看该容器的日志来排查问题:

bash
docker-compose logs <container_name>

<container_name> 替换为具体的容器名称,例如 apiwebworker 等。

【图片说明】:终端中显示 docker-compose logs api 命令的执行结果,显示 API 服务容器的日志信息,用于排查问题。

5. 访问 Dify

Dify 部署成功后,就可以通过浏览器访问 Dify 的 Web 界面了。

  • 访问地址: http://localhosthttp://<你的服务器IP>

在浏览器中输入以上地址,如果一切正常,你将看到 Dify 的欢迎页面。

【图片说明】:浏览器中显示 Dify 的欢迎页面,包含 Dify 的 Logo、简介和开始使用的按钮。

首次访问时,Dify 会提示你进行初始化设置,包括创建管理员账号、配置 OpenAI API 密钥等。按照提示完成设置后,就可以开始使用 Dify 了。

【图片说明】:浏览器中显示 Dify 的初始化设置页面,包括创建管理员账号、配置 OpenAI API 密钥等表单。

三、 Dify 的基本使用

部署完成后,我们可以开始探索 Dify 的各项功能。这里简单介绍几个核心功能的使用方法:

1. 创建应用

Dify 的核心概念是“应用”,每个应用代表一个独立的 LLM 应用场景。你可以创建多个应用,分别用于不同的任务。

  • 操作步骤:
    1. 在 Dify 的 Web 界面中,点击左侧导航栏的“创建应用”按钮。
    2. 选择应用类型(例如,文本生成、对话等)。
    3. 填写应用名称、描述等信息。
    4. 点击“创建”按钮。

【图片说明】:Dify 的 Web 界面,显示创建应用的流程,包括选择应用类型、填写应用信息等步骤。

2. 编排提示词

Dify 提供了可视化的提示词编排功能,你可以通过拖拽、连接不同的节点来构建复杂的提示词流程。

  • 操作步骤:
    1. 进入已创建的应用。
    2. 点击“提示词编排”标签页。
    3. 从左侧的节点列表中拖拽节点到画布中。
    4. 连接节点,配置节点的参数。
    5. 点击“保存”按钮。

【图片说明】:Dify 的 Web 界面,显示提示词编排的界面,包括节点列表、画布、节点参数配置等区域。

3. 运行应用

编排好提示词后,就可以运行应用,测试效果了。

  • 操作步骤:
    1. 在提示词编排界面,点击“运行”按钮。
    2. 在弹出的对话框中输入输入变量(如果有)。
    3. 点击“运行”按钮。

【图片说明】:Dify 的 Web 界面,显示运行应用的流程,包括输入变量、查看运行结果等步骤。

4. 管理数据集

Dify 支持上传和管理数据集,用于训练或微调模型,或者作为提示词的上下文。

  • 操作步骤:
    1. 在 Dify 的 Web 界面中,点击左侧导航栏的“数据集”按钮。
    2. 点击“创建数据集”按钮。
    3. 选择数据集类型(例如,文本、表格等)。
    4. 上传数据集文件。
    5. 配置数据集的字段。

【图片说明】:Dify 的 Web 界面,显示数据集管理的界面,包括创建数据集、上传文件、配置字段等步骤。

四、 常见问题及解决方案

在部署和使用 Dify 的过程中,可能会遇到一些问题。这里列出一些常见问题及解决方案:

  1. Docker Compose 启动失败:

    • 原因: 可能是 Docker 版本过低、端口冲突、镜像下载失败等原因。
    • 解决方案:
      • 确保 Docker 和 Docker Compose 的版本符合要求。
      • 检查是否有其他程序占用了 Dify 所需的端口(例如 3000 端口)。
      • 检查网络连接,确保可以访问 Docker Hub。
      • 查看 Docker Compose 的日志,定位具体错误信息。
  2. Dify Web 界面无法访问:

    • 原因: 可能是 Docker 容器未启动、防火墙阻止了访问、浏览器缓存等原因。
    • 解决方案:
      • 使用 docker-compose ps 命令检查 Docker 容器是否正常运行。
      • 检查防火墙设置,确保允许访问 Dify 的端口。
      • 尝试清除浏览器缓存或使用无痕模式访问。
  3. OpenAI API 密钥配置错误:

    • 原因: 可能是 API 密钥输入错误、密钥过期、账户欠费等原因。
    • 解决方案:
      • 仔细检查 API 密钥是否输入正确。
      • 登录 OpenAI 官网,检查 API 密钥是否有效。
      • 检查 OpenAI 账户余额是否充足。
  4. 应用运行出错:

  5. 原因: 提示词编排错误,模型选择不当, 输入变量有问题
  6. 解决方案: 检查提示词流程, 调整模型参数, 确认输入格式符合要求。

五、 进阶使用

除了基本功能外,Dify 还提供了许多进阶功能,可以帮助你构建更强大的 LLM 应用:

  • 插件系统: Dify 支持安装和使用插件,扩展 Dify 的功能。
  • 自定义模型: 除了 OpenAI 的模型外,Dify 还支持集成其他 LLM 模型,例如 Hugging Face 上的开源模型。
  • API 接口: Dify 提供了 API 接口,你可以通过 API 接口将 Dify 集成到其他应用中。
  • 日志和监控: Dify 提供了详细的日志和监控功能,可以帮助你了解应用的运行状态和性能。

六、 总结

本文详细介绍了如何在本地部署 Dify,并介绍了 Dify 的基本使用方法和常见问题解决方案。通过本地部署 Dify,你可以充分体验 Dify 的强大功能,并根据自己的需求进行定制开发。希望本文能帮助你快速上手 Dify,构建出令人惊艳的 LLM 应用!

如果您在使用过程中遇到任何问题,可以参考 Dify 的官方文档,或者在 Dify 的社区论坛中寻求帮助。祝您使用愉快!

THE END