Dify动手实战教程(Dify本地部署)

发布于:2025-06-19 ⋅ 阅读:(23) ⋅ 点赞:(0)

目录

Dify本地部署

1.下载Docker

2.安装Docker

3.启动Docker

4.Dify本地Docker部署

5.打开Dify

核心模块与可配置项

其他重要变量


去年agent智能体爆火,我自己也使用了多款智能体产品来搭建agent解决生活中的实际问题,如dify、coze等等。dify作为一个开源的框架得到了大量的应用,如一些需要隐私保护需要本地部署的场景,也有不少企业在公司内部接入了dify,以解决企业内部的实际问题。本人在去年年末的北京大学新青年极客松中,利用dify搭建了一款健康姿态检测助手,得到了不错的效果也最终获奖。

有幸看到Datawhale开源了dify相应的学习教程,并决定和大家一起重温一下dify应用。

项目地址项目地址教程手册教程手册

本教程将全面指导你如何快速搭建自己的AI应用环境,从Docker桌面版的安装与配置开始,到本地部署Dify并自定义AI助手功能,让你轻松实现“猜病例”、“甜蜜哄人”、“新生入学指南”、“小红书读书卡片”与“面试宝典”等多种特色AI应用。

Dify本地部署

1.下载Docker

这里就是docker的下载,可以直接搜去官网下载,或者去上面的教程手册中有打包好的文件,可以直接下载,这里就不过多赘述。

2.安装Docker

这里我是win11的电脑,所以我以windows为例,首先要启动hyper-v,(Hyper - V 是微软开发的一款基于微内核架构的硬件虚拟化技术,可在 Windows Server 及部分 Windows 客户端系统中创建和管理虚拟机,通过 VMbus 架构实现高效的硬件资源调用与分配。)

打开控制面板——程序——程序和功能:

点击左侧启动或关闭Windows功能:

这里我们惊奇地发现并没有Hyper-v,先别慌,原来我的系统是Win11家庭版,是没有的。然后如下图所示,先进入任务管理器——性能——CPU,右下角虚拟化先检查一下是否已启用,这里我已经启用。

到这里有一种方法是装Hyper-v,但是我之前用docker跑过项目,docker是支持使用 WSL2来运行 Linux 容器的,所以这里我就不用Hyper-v了,如果想要使用的小伙伴可以自行搜索方法。

这里稍微介绍一下Hyper-vWSL2以及Docker for Windows

Docker for Windows是一种用于在Windows操作系统上运行Docker容器的工具。它允许将应用程序及其所有依赖项打包在一个独立的容器中,然后在任何支持Docker的环境中运行。容器是一种轻量级的虚拟化技术,使得应用程序可以在一个隔离的环境中运行,同时与主机系统相互隔离。

Docker for Windows不能独立存在,需要有一个运行环境。Docker for Windows+WSL2 或docker for Windows+Hyper-v都可以。当然也可以直接在WSL2的Linux操作系统中直接安装Docker,但这样就不方便和IDEA等开发工具联合使用。

下面我是用WSL2来运行的,首先还是回到启用或关闭Windows功能页面,找到适用于Linux的Windows子系统并打勾,然后关机重启即可。

既然都装了WSL2顺手把Ubuntu也装上,直接去微软商店搜索Ubuntu并下载安装,这里注意一个细节就是不要使用魔法。

现在安装完成后去搜索中搜索Ubuntu并点击,然后进入加载页面,这里我显示WSL2版本可能过低,需要更新到新的版本,也就是现在的最新的稳定版本2.5.7。

运行后发现更新速度太慢了,而且网络不稳定的情况下可能会下载失败,我搜索后发现了一个解决方案,因为这是微软的产品,我们直接去找到离线安装包,地址如下:

https://github.com/microsoft/WSL/releaseshttps://github.com/microsoft/WSL/releases进入后找到对应的版本下载安装即可,如下图所示是我下载的记录:

完成之后不在报需要更新的错误了,但是还是会出现这个报错:

我搜索后,解决方案是还需要在启用或关闭Windows功能中开启虚拟机平台,我第一次找了一遍发现好像没有这个选项,后来才发现我的电脑是以英文显示的,大家也仔细看看自己的电脑是不是英文显示的,别像我一样找半天以为是没有该选项。

勾选完后,重启电脑,再次点击Ubuntu,这时终于成功了,设置用户名和密码:

环境配置就结束了,自己顺手配一下没想到遇到这么多问题,好在都解决了。然后进行Docker桌面安装,直接点击第一步下载的安装包安装即可。

3.启动Docker

直接双击Docker图标进行启动,然后同意一下相关协议就好了:

接着我们换一下源,这样下载比较快。点击右上角的设置按钮,然后在Docker Engine中在false后面添加上如图所示的代码,然后点击Apply&restart即可。

4.Dify本地Docker部署

首先是下载Dify,大家可以直接去网上搜索下载,也可以从上面的教程手册中获得。然后启动终端,在Dify文件夹进入到Docker文件夹,然后按shift并同时鼠标右键,点击在此处打开Powershell窗口,然后在命令行中执行如下图所示的命令后进行部署:

部署成功后,在Docker中可以看到有容器在运行:

5.打开Dify

最后一步,让我们在浏览器中打开 http://localhost/install 即可看到dify页面:

我们注册登录之后就可以看到网页端同款的Dify界面啦:

OK到这里就完成了Dify的本地部署,完结散花!

PS:如果想要关闭本地部署,直接在终端运行:docker compose down 即可:

再次打开Docker就发现已经没有容器运行了。

再简单介绍一下.env文件:

核心模块与可配置项

  • 向量数据库服务(Vector Database Services):根据所使用的向量数据库类型(由 VECTOR_STORE 指定),用户可以设置相应的访问端点、端口和认证信息。

  • 存储服务(Storage Services):根据存储类型(由 STORAGE_TYPE 指定),用户可以配置 S3、Azure Blob、Google Storage 等服务的相关参数。

  • API 与 Web 服务(API and Web Services):用户可以定义 API 接口和前端 Web 应用的访问 URL 及相关设置。

其他重要变量

.env.example 是 Docker 环境中提供的示例配置文件,内容丰富,涵盖了应用和服务的广泛配置选项。它被分为多个部分,以下是一些关键部分和变量说明:

  1. 通用变量(Common Variables)

    1. CONSOLE_API_URL、SERVICE_API_URL:不同 API 服务的访问地址。

    2. APP_WEB_URL:前端应用访问地址。

    3. FILES_URL:文件下载与预览的基础 URL。

  2. 服务器配置(Server Configuration)

    1. LOG_LEVEL、DEBUG、FLASK_DEBUG:日志记录与调试相关设置。

    2. SECRET_KEY:用于加密会话 cookie 及其他敏感数据的密钥。

  3. 数据库配置(Database Configuration)

    1. DB_USERNAME、DB_PASSWORD、DB_HOST、DB_PORT、DB_DATABASE:PostgreSQL 数据库的连接信息。

  4. Redis 配置(Redis Configuration)

    1. REDIS_HOST、REDIS_PORT、REDIS_PASSWORD:Redis 服务的连接信息。

  5. Celery 配置(Celery Configuration)

    1. CELERY_BROKER_URL:Celery 消息队列的连接配置。

  6. 文件存储配置(Storage Configuration)

    1. STORAGE_TYPE、S3_BUCKET_NAME、AZURE_BLOB_ACCOUNT_NAME:本地、S3、Azure Blob 等文件存储服务的相关配置。

  7. 向量数据库配置(Vector Database Configuration)

    1. VECTOR_STORE:向量数据库的类型(如 weaviate、milvus)。

    2. 针对不同数据库的专用设置,如 WEAVIATE_ENDPOINT、MILVUS_URI 等。

  8. 跨域资源共享配置(CORS Configuration)

    1. WEB_API_CORS_ALLOW_ORIGINS、CONSOLE_CORS_ALLOW_ORIGINS:跨域资源共享的允许来源设置。

  9. OpenTelemetry 配置(OpenTelemetry Configuration)

    1. ENABLE_OTEL:是否启用 OpenTelemetry 数据采集。

    2. OTLP_BASE_ENDPOINT:OTLP 导出器的接收端点。

  10. 其他服务相关环境变量(Other Service-Specific Environment Variables)

    1. 每个服务(如 nginx、redis、db 及向量数据库)都有特定的环境变量,这些变量通常在 docker-compose.yaml 中直接引用。


网站公告

今日签到

点亮在社区的每一天
去签到