一、什么是Dify
Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。它的名称 "Dify" 来源于 "Define" 和 "AI" 的组合,寓意着通过定义来创造 AI 应用。
由于 Dify 内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排,并同时提供了一套易用的界面和 API。这为开发者节省了许多重复造轮子的时间,使其可以专注在创新和业务需求上。
核心特点
可视化编排:
提供直观的工作流设计界面,无需编写复杂代码即可构建 AI 应用
支持拖拽式操作,简化提示词工程和模型调优过程
多模型支持:
支持主流大语言模型如 GPT-4、Claude、Llama 等
可同时连接多个模型提供商,实现模型间的灵活切换
应用类型丰富:
支持构建问答系统、文本生成、摘要提取等多种 AI 应用
可开发对话型应用和文本处理型应用
企业级功能:
提供 API 访问控制和用量监控
支持知识库增强,可上传文档作为上下文
包含用户管理和权限系统
技术架构
Dify 采用现代化的技术栈构建:
-
前端:React + TypeScript
-
后端:Python (FastAPI)
-
数据库:PostgreSQL
-
缓存:Redis
-
部署:Docker 容器化
适用场景
企业内部 AI 助手:
构建基于企业知识库的智能问答系统
自动化文档处理和报告生成
开发者平台:
快速原型设计和验证 AI 应用想法
为开发者提供统一的模型接入层
教育领域:
创建智能教学助手
开发自动批改和反馈系统
内容创作:
辅助写作和创意生成
多语言内容生产和翻译
与同类产品的比较
相比于其他 LLM 应用平台,Dify 的特点是:
-
更注重开发者的灵活性和控制权
-
提供完整的开源解决方案
-
支持私有化部署,保障数据安全
-
强调工作流编排能力而非单一功能
Dify 适合需要定制化 AI 应用同时又希望减少底层开发工作的团队和个人开发者。
二、安装部署
环境准备:
说一下我的环境信息:
操作系统: Ubuntu 22.04
Docker: 27.5.1
Docker Compose: v2.10.2
Python: 3.10.12
硬件: 64G+4090
两种安装方式:【docker方式安装】、【源码安装】
方式一:【docker方式安装】:
1.安装 Docker 和 Docker Compose
确保你已经安装了 Docker 和 Docker Compose。如果没有,请先安装。
Docker 和Docker Compose可以参考博主的这篇文章:
【Docker 01】docker安装和基本理论内容-CSDN博客
Docker Compose安装我在这里遇到了很多问题:
当时使用的是apt 安装的,结果在安装dify时,出现了很多报错信息,后来网上搜索是Docker Compose安装方式不对,且版本太低导致的,后来更改了安装方式才好了。
docker-compose up报错KeyError: 'ContainerConfig’的解决办法
先卸载已有的docker-compose:
sudo apt purge docker-compose
然后使用如下方式重新安装:
### install docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.10.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
这里在执行
curl -L "https://github.com/docker/compose/releases/download/v2.10.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
时,一直报错,连接不上服务
这里我下载了离线的包,传上去了,然后才不报错了
https://github.com/docker/compose/releases/download/v2.10.0/docker-compose-Linux-x86_64
https://blog.csdn.net/tabactivity/article/details/146210697
https://blog.csdn.net/lpy13699855019/article/details/139746249
https://blog.csdn.net/qq_44866828/article/details/147549836
2.克隆 Dify 代码仓库
克隆 Dify 源代码至本地环境。
git clone https://github.com/langgenius/dify.git
3.启动 Dify
3.1 进入 Dify 源代码的 Docker 目录
cd dify/docker
3.2 复制环境配置文件
cp .env.example .env
如果默认端口(80, 5432, 6379等)被占用,修改.env
文件中的端口配置:
我是nginx和ssl冲突了:
EXPOSE_NGINX_PORT=8000
EXPOSE_NGINX_SSL_PORT=445# 修改PostgreSQL端口
PG_PORT=5433# 修改Redis端口
REDIS_PORT=6380
3.3 启动 Docker 容器
根据你系统上的 Docker Compose 版本,选择合适的命令来启动容器。
docker-compose up -d
3.4.运行命令
运行命令后,你应该会看到类似以下的输出,显示所有容器的状态和端口映射:
等上一会儿你就会发现部署结果:
[+] Running 10/10✔ Network docker_ssrf_proxy_network Created 0.1s ✔ Network docker_default Created 0.0s ✔ Container docker-redis-1 Started 2.4s ✔ Container docker-ssrf_proxy-1 Started 2.8s ✔ Container docker-sandbox-1 Started 2.7s ✔ Container docker-web-1 Started 2.7s ✔ Container docker-weaviate-1 Started 2.4s ✔ Container docker-db-1 Started 2.7s ✔ Container docker-api-1 Started 6.5s ✔ Container docker-worker-1 Started 6.4s ✔ Container docker-nginx-1 Started 7.1s
最后检查是否所有容器都正常运行:docker-compose ps
在这个输出中,你应该可以看到包括 3 个业务服务 api / worker / web
,以及 6 个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox
通过这些步骤,你可以在本地成功安装 Dify。
4.访问 Dify
在浏览器输入框里输入:localhost:8000/install,这是为了完成 Dify 的初始配置的。稍等一会儿,就大功告成了。
根据情况输邮箱,用户名,密码 完成本地注册可以开始使用
5.更新 Dify
进入 dify 源代码的 docker 目录,按顺序执行以下命令:cd dify/docker
git pull origin main
docker-compose down
docker-compose pull
docker-compose up -d
同步环境变量配置 (重要!)
- 如果
.env.example
文件有更新,请务必同步修改你本地的.env
文件。 - 检查
.env
文件中的所有配置项,确保它们与你的实际运行环境相匹配。你可能需要将.env.example
中的新变量添加到.env
文件中,并更新已更改的任何值。
完整的环境变量集合可以在 docker/.env.example
中找到。
自定义配置
编辑 .env
文件中的环境变量值。然后重新启动 Dify:
# 停止
docker-compose down
# 开启
docker-compose up -d
https://blog.csdn.net/yinshuilan/article/details/146498600
https://www.jb51.net/os/Ubuntu/985789.html
Docker Compose 部署 - Dify Docs
方式二:【源码方式安装】:
这个参考文档,大体差不多,先不做详细记录了,等有空接着完善。
使用源代码本地启动 - Dify Docs
官方文档:
产品简介 - Dify Docs
dify社区版添加新成员用户账号可以参考这篇文章:
dify社区版添加新成员用户账号_dify账号注册-CSDN博客
dify社区版添加新成员用户账号(适合公司等内部使用)_dify添加用户-CSDN博客