跳到主要内容

本地部署Dify AI全网访问

概述

Dify 是一个开源的LLM应用开发平台。其操作界面融合了 AI工作流程、RAG 管道、代理、模型管理、可安装性AI功能,可视化的工作流,让我们可以轻松在上面构建和测试功能增强的AI工作流程,支持非常全面的大模型,实现可以快速从原型到生产。

当我们在本内网部署 Dify 时,由于一般都缺乏固定的公网IP,所以我们只能在内网中访问Dify ,而无法将其分享给朋友、同事访问;内网穿透能很好的帮我们解决这个问题,无需固定IP ,通过专用域名即可实现任意位置通过公网都能访问到内网中 Dify, 且部署、操作简单、快捷。

  • img

本文介绍在Ubuntu 22.04系统中,以Docker 容器的方式部署 Dify 及 ZeroNews 零讯内网穿透

部署步骤:

第一步: 部署 Dify 应用平台

能正常SSH远程连接到Ubuntu 22.04系统,并提前安装好 docker 及 docker compose 工具

Dify 应用平台会占用 80 / 443 端口,请确保端口未被占用

下载 Dify 项目

通过git 在Dify 的官方 github 仓库下载 Dify 项目

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

启动 Dify 相关容器

进入到 Dify 项目跟目录下的 docker 目录,该目录下有 docker-compose.yaml 文件,我们执行docker-compose up -d 启动 Dify 相关容器

docker-compose up -d
  • img

Dify 相关容器部署完成后,我们可以查看已运行的容器

docker compose ps
  • img

内网访问 Dify 应用平台

在浏览器中,通过 ubuntu 系统的IP地址访问 Dify 应用平台 http://{内网IP}

  • img

首次打开Dify 平台,需要为 Dify 平台设置管理员,点击登录页下方的 "设置管理员账号" 进入到 管理员账号 设置页面

  • img

输入管理员账户的 邮箱、用户名及密码,然后点击 "设置"完成管理员账户设置

  • img

然后通过邮箱登录 Dify 应用平台

  • img

第二步: 在Dify 应用平台上,构建大模型应用

Dify 应用平台基础操作

在 Dify 应用平台主界面中,点击 "创建空白应用" 来构建应用

  • img

选择应用的类型,输入应用名称及描述信息,然后点击 "创建" 完成应用创建

  • img

选择一个大模型,进行设置就行

  • img

下面我们部署一个 ollama 本地模型进行测试

部署 ollama 本地模型

安装 Ollama

在 ubuntu 系统通过一条命令部署 ollama 本地模型

curl -fsSL https://ollama.com/install.sh | sh

修改 ollama 的本地监听IP地址, 将 Environment="OLLAMA_HOST=0.0.0.0" 添加到 ollama 的系统服务文件( /etc/systemd/system/ollama.service)中

img

重启ollama 服务,执行如下命令。

sudo systemctl daemon-reload
sudo systemctl restart ollama

在浏览器中,输入 http://{主机ip}:11434, 检查 ollama 是否正常运行, 显示 “Ollama is running”, 表示ollama 运行正常

  • img

下载大模型

下载大模型,以 llama3.2 为例,下载 llama3.2 模型

ollama run llama3.2
  • img

第三步: 在Dify 应用平台上应用 ollama 模型

添加本地 ollama 模型

点击右上角用户的图标,然后点击 "设置", 进入到 Dify 设置界面

  • img

在设置窗口中,点击 "模型供应商", 找到 Ollama , 然后点击 "添加模型"

  • img

在添加 Ollama 模型窗口中, 模式名称输入下载好的 "llama3.2" 模型, 基础URL输入 ollama的地址 http://主机IP:11434,然后点击保存

  • img

ollama 大模型添加成功后,可以查看添加好的模型

  • img

添加模型应用

点击 Dify 主页的"仓库空白应用" 来添加 ollama 应用

  • img

添加一个聊天应用,应用类型选择聊天助手,编排方法默认为基础编排,输入应用名称,如"Chat",然后点击创建

  • img

应用创建完成后,即可进行即时对话,如在左边的提示词中输入"中文", 在右下方的内容输入框中输入 AI

  • img

  • img

第四步: 部署 ZeroNews 内网穿透

我们通过 Docker 容器方式部署 ZeroNews 内网穿透

选择快速开始方式

然后登录 https://user.zeronews.cc ,在快速页面,选择docker安装方式,然后选择 ZeroNews 公共仓库

  • img

按步骤运行 ZeroNews 服务

  • img

通过以下命令在 ZeroNews 官方仓库下载 ZeroNews 容器镜像

添加容器目录

选择 Docker Run方式运行,执行如下命令

mkdir /opt/zeronews
下载 ZeroNews 容器镜像

通过以下命令在 ZeroNews 官方仓库下载 ZeroNews 容器镜像

docker pull docker.zeronews.cc/zeronews/zeronews:latest
启动 ZeroNews 容器

复制快速开始页面的启动命令并运行,因为每个人的token不一样,所以需要在自己的账号复制

  • img

查看运行中的 Agent 状态

ZeroNews 容器启动成功后,在 ZeroNews 平台上能查看已上线的 ZeroNews 容器

  • img

第五步: 为 Dify 添加域名及映射

为 Dify 平台添加域名

在 ZeroNews 管理平台的 "域名端口" 管理界面下,添加域名,如添加 difyai 域名

域名前缀: 输入 difyai1

勾选 HTTPS 协议

然后点击确定

  • img

为 Dify 应用平台添加公网映射

首先在 ZeroNews 管理平台的 "映射" 管理界面下,添加应用,如添加 Dify 应用

然后在 Dify 应用下,添加HTTPS公网映射

●选择Agent: 选择刚运行的Agent

● 映射协议: 选择 HTTPS 协议

● 公网访问地址: 选择上一步添加好的 difyai 域名地址

● 映射带宽: 输入需要的带宽,如 2M

● 内网映射地址: IP地址默认为 127.0.0.1, 端口为 Dify 应平台的端口号 80

  • img

创建完城后,就可以在映射列表看到已经条件好的映射了。

img

第六步:通过浏览器公网访问 Dify AI服务

打开浏览器,然后输入刚才配置好的映射地址,然后按回车,那么您就可以访问 Dify AI服务了。

  • img