今天要聊的是 Dify-Plus——一个面向企业级大语言模型应用开发平台。它并不是一个从零开始的新项目,而是在开源项目 Dify 的基础上,针对企业场景做了深度增强。这篇文章会围绕三个核心部分展开:Dify-Plus 的功能优化与新增特性、企业级增强版管理中心集成,以及具体的部署步骤与环境配置要求。
先简单回顾一下 Dify 本身。它是个开源的大语言模型(LLM)应用开发平台,融合了后端即服务(BaaS)和 LLMOps 的理念,目标是帮开发者快速搭出生产级的生成式 AI 应用。不过,任何技术产品都不完美,Dify 在企业落地时也会遇到一些短板——比如用户权限管理、额度控制、多租户支持等。正是这些痛点,催生了 Dify-Plus 这样的增强版。
企业使用 Dify 的过程中,往往会发现:开源版本虽然灵活,但缺少一些“开箱即用”的管理功能。比如如何控制每个用户的调用额度?如何让不同团队只看到自己的应用?如何统一管理 API 密钥?这些需求在 Dify 原版里需要自行二次开发,而 Dify-Plus 恰好把这些能力集成进来了。
Dify-Plus = 管理中心 + Dify 二开开发
简单来说,Dify-Plus 就是在 Dify 的基础上,植入了基于 gin-vue-admin 的管理中心,并针对企业场景做了大量功能优化。 下面先看二开部分都新增了哪些实用能力。
Dify 二开功能
- 用户额度
- 对话余额限制判断
- 异步计算用户额度逻辑
- 左上角新增使用额度显示
- 新增个人监测页
- 密钥额度设置 —— 新增应用 API 调用余额限制判断
- Web 公开页登录鉴权
- 管理员同步应用到应用模版
- 初次注册用户默认加入默认空间
- 可鉴权的 cookie
- 同步应用到模版中心
- 应用中心页面,并且默认跳转到应用中心
- 应用使用次数记录,应用中心按使用次数排序
- 权限调整
- 不允许普通成员关闭模型
- 空间普通成员不渲染“模型供应商”标签
- 非管理员隐藏密钥显示
- 优化:csv 编码监测,修复批量请求,Windows 下保存再上传问题
- 优化:markdown 图片放大问题
管理中心
- JWT 与 Dify 打通
- 用户同步
- 模型同步工作区
- 用户额度修改
- 费用报表
有了这些能力,企业级的用户管理、权限控制和用量监控就变成了标准化操作,而不再需要各自造轮子。下面说说怎么把它跑起来。
部署详细步骤(docker-compose)
方式一:使用 docker-compose 一键部署(推荐快速体验)
- 克隆项目:
git clone git@github.com:YFGaia/dify-plus.git
- docker compose 启动:
cd dify-plus/docker
docker-compose -f docker-compose.dify-plus.yaml up -d
备注:这个 docker-compose 文件是从原 Dify 项目精简而来,只保留了最小需要启动的服务,其他服务可以根据实际需求自行调整。
- 检查是否启动正常:
docker compose ps
- 访问
http://127.0.0.1/install初始化 Dify 的管理员账号(即第一个账号)
部署详细步骤(本地源码方式)
如果想从源码部署,或者做二次开发,可以参考下面的步骤。
- 前置依赖
- Python 版本:3.11 或 3.12
- Node 版本:≥ 18.17.0
- Golang 版本:≥ 1.22.0
- Redis
- PostgreSQL
- 启动 API 服务
# 1. 进入 api 目录
cd api
# 2. 复制环境变量配置文件
cp .env.example .env
# 3. 生成随机密钥,并替换 .env 中 SECRET_KEY 的值
awk -v key="$(openssl rand -base64 42)" '/^SECRET_KEY=/ {sub(/=.*/, "=" key)} 1' .env > temp_env && mv temp_env .env
# 4. 安装依赖包
poetry env use 3.11
poetry install
# 5. 执行数据库迁移
poetry shell
flask db upgrade
# 6. 启动 API 服务
flask run --host 0.0.0.0 --port=5001 --debug
更详细的说明可参考官方文档:https://docs.dify.ai/zh-hans/getting-started/install-self-hosted/local-source-code#fu-wu-duan-bu-shu
- 启动 Dify Web 服务
# 1. 进入 web 目录
cd web
# 2. 安装依赖包
npm install
# 3. 复制环境变量配置文件
cp .env.example .env.local
# 4. 根据需求配置环境变量
vim .env.local
# 5. 构建代码
npm run build
# 6. 启动 web 服务
npm run start
# 或者
yarn start
# 或者
pnpm start
- 启动 Dify Worker 服务
# Linux / MacOS 启动
celery -A app.celery worker -P gevent -c 1 -Q dataset,generation,mail,ops_trace,extend_high,extend_low --loglevel INFO
# 或者 Windows 启动
celery -A app.celery worker -P solo --without-gossip --without-mingle -Q dataset,generation,mail,ops_trace,extend_high,extend_low --loglevel INFO
注意:这里比原版 Dify 项目新增了两个队列:extend_high(处理二开高频任务),extend_low(处理二开低频任务)。
- 启动 Dify Beat 服务
celery -A app.celery beat --loglevel INFO
- 启动 Admin-Web 服务
cd admin/web
yarn install
yarn run serve
- 启动 Admin-Server 服务
cd admin/server
go mod tidy
go run main.go
- 初始化管理员账号
- Dify 设置管理员账号页面:
http://localhost:3000/install - 进入管理中心初始化页面:
http://localhost:8081/#/init - 填写对应的数据库配置,点击初始化
至此,Dify-Plus 的完整部署流程就走完了。企业团队可以直接上手使用,也可以基于这套代码做进一步的定制。希望这份指南能帮你更顺畅地把大模型应用落到企业场景中。
