从零开始之Dify部署篇

从零开始之Dify部署篇


前言

Dify是一个对接大模型的脚手架,Dify对应的文档地址为:Dify传送门。本系列文章从零开始探索Dify的功能及搭建过程。本文的搭建流程是基于Docker Compose进行部署。


一、工具列表

搭建Dify需要准备的工具列表有:

  • vmware
  • centos
  • docker
  • docker-compose
  • dify

二、搭建流程

1. VMWare安装

VMWare安装流程传送门

2. Centos安装

Centos安装流程传送门

3. Centos环境配置

本文将Centos系统配置为静态IP:192.168.200.130,对应的子网为192.168.200.0。防止每次服务器重启,对应的IP都会变化。

1. 更改子网IP

在“编辑(E) "上左键单击,然后在"虚拟网络编辑器(N)… "上左键单击。
虚拟网络编辑器
进入虚拟网络编辑器页面后点击【更改设置】,更改子网IP为192.168.200.0
子网IP更改

2. 配置静态IP地址

修改网卡配置,命令如下,其中的 ifcfg-ens33 为配置对应的网卡。

vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改网卡配置

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
IPADDR="192.168.200.130"
GATEWAY="192.168.200.2"
NETMASK="255.255.255.0"
DNS1="8.8.8.8"
DNS2="8.8.4.4"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="d8fbbece-3798-40d7-9333-351a58f811a2"
DEVICE="ens33"
ONBOOT="yes"

网卡配置信息

3. 修改DNS配置

修改DNS配置,命令如下。

vi /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
search localdomain

DNS配置

4. Docker和Docker Compose安装

其中的Docker Compose需要根据对应的Docker版本安装,如果Docker为最新的版本,Docker Compose应为最新版本。Docker Compose若为github上下载下来,可直接上传到服务器的 /usr/local/bin/ 路径下,全路径为: /usr/local/bin/docker-compose
Docker和Docker Compose安装流程传送门
Docker Compose github传送门

5. Docker镜像加速源配置

可以解决docker和docker compose安装容器慢的问题。
创建或修改/etc/docker/daemon.json为如下

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"],
  "insecure-registries":["192.168.200.100:5000"]
}

Docker镜像加速源配置传送门
这个镜像源可以换成其他的,如果用了镜像加速源也不行。可参考 从零开始之Dify二次开发篇 中的 【将dify组件镜像转移到阿里云(可选)】部分 或 【Docker镜像库失效应对策略】教你两种方式快速下载镜像

6. 部署Dify

1. 下载Dify

将Dify代码从github下载至服务器,或者通过http的方式下载Dify的代码的zip文件后,上传至服务器解压缩。

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

2. 编排Dify

如果您的系统安装了 Docker Compose V2 而不是 V1,请使用 docker compose 而不是 docker-compose。通过$ docker compose version检查这是否为情况。

cd dify/docker
docker compose up -d

Dify部署结果传送门

7. Nginx配置(最新版本不用配置)

编排后会在存放代码的docker文件夹下生成一个nginx的文件夹,里面存放着nginx的配置文件。
Nginx文件
进入 nginx/conf.d 路径下,会发现default.conf的nginx配置文件。内容如下

server {
    listen 80;
    server_name _;

    location /console/api {
      proxy_pass http://<api-ip>:5001;
      include proxy.conf;
    }

    location /api {
      proxy_pass http://<api-ip>:5001;
      include proxy.conf;
    }

    location /v1 {
      proxy_pass http://<api-ip>:5001;
      include proxy.conf;
    }

    location /files {
      proxy_pass http://<api-ip>:5001;
      include proxy.conf;
    }

    location / {
      proxy_pass http://<web-ip>:3000;
      include proxy.conf;
    }
}

需要将server_name 后的 _ 更改为服务器的IP,本文中的服务器IP地址为192.168.200.130。然后替换和,其中api-ip为api业务服务的ip地址,可通过如下命令查找到。注意每次docker的api业务服务重启都会分配不一样的IP地址。

docker inspect docker-api-1

查找到 NetworkSettings - Networks - docker_default - IPAddress
api-ip配置信息
本文中对应的api业务服务的ip为172.18.0.5,同理可找到web-ip的值为172.18.0.3。更改后的内容如下。

server {
    listen 80;
    server_name 192.168.200.130;

    location /console/api {
      proxy_pass http://172.18.0.5:5001;
      include proxy.conf;
    }

    location /api {
      proxy_pass http://172.18.0.5:5001;
      include proxy.conf;
    }

    location /v1 {
      proxy_pass http://172.18.0.5:5001;
      include proxy.conf;
    }

    location /files {
      proxy_pass http://172.18.0.5:5001;
      include proxy.conf;
    }

    location / {
      proxy_pass http://172.18.0.3:3000;
      include proxy.conf;
    }
}

最后保存Nginx的配置,用如下命令重新启动nginx的docker容器。

docker restart docker-nginx-1

8. 测试

用浏览器进行校验,服务器IP加上斜杆/即可

http://192.168.200.130/

Dify界面

9. 辅助工具Finalshell安装

Finalshell可以方便连接Linux服务器,方便文件的上传下载,服务器的状态监控。
Finalshell官方下载传送门


参考

  • 52
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
dify是一个开源的Python库,用于快速开发机器学习模型和部署机器学习服务。它提供了一系列的工具和接口,帮助开发者在机器学习项目中更高效地进行数据处理、特征工程、模型训练和模型部署等任务。 dify的主要特点包括: 1. 简单易用:dify提供了简洁的API和丰富的功能,使得开发者可以快速上手并进行高效的开发。 2. 模块化设计:dify采用模块化的设计,每个模块都有清晰的功能和接口,可以根据需求选择性地使用。 3. 数据处理和特征工程:dify提供了丰富的数据处理和特征工程工具,包括数据清洗、特征选择、特征变换等功能,帮助开发者更好地准备数据。 4. 模型训练和评估:dify支持多种常见的机器学习算法,并提供了模型训练和评估的接口,方便开发者进行模型选择和性能评估。 5. 模型部署和服务化:dify支持将训练好的模型部署为API服务,方便其他应用程序进行调用和集成。 如果你想开发新模块,可以按照以下步骤进行: 1. 确定模块的功能和接口:明确你的模块要解决的问题,并设计好相应的功能和接口。 2. 实现模块代码:使用Python编写你的模块代码,可以借助dify提供的工具和接口来简化开发过程。 3. 测试和调试:对你的模块进行测试和调试,确保其功能正常并符合预期。 4. 文档编写:编写清晰的文档,介绍你的模块的功能、使用方法和示例代码等。 5. 提交和分享:将你的模块提交到dify的开源社区,与其他开发者分享你的成果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值