Dify 一词源自 Define + Modify,意指定义并且持续的改进你的 AI 应用,它是为你而做的(Do it for you)
生成式 AI 应用创新引擎
开源的 LLM 应用开发平台。内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持,提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。比 LangChain 更易用。
在线体验:https://dify.ai/zh
开源地址:https://github.com/langgenius/dify
官方文档:https://docs.dify.ai/v/zh-hans
Dify云服务,可以在线使用.
- Sandbox(免费版) 每天可调用200次GPT
- 专业版 $59/month
- 团队版 $159/month
- 企业版 面议
开源社区版
安装 Dify 之前, 请确保你的机器已满足最低安装要求:
CPU >= 2 Core
RAM >= 4 GiB
克隆 Dify 代码仓库
安装git
yum install -y git
克隆 Dify 源代码至本地环境
# 假设当前最新版本为 0.15.3
git clone https://github.com/langgenius/dify --branch 0.15.3
Cloning into 'dify'...
remote: Enumerating objects: 143184, done.
remote: Counting objects: 100% (530/530), done.
remote: Compressing objects: 100% (279/279), done.
remote: Total 143184 (delta 440), reused 252 (delta 251), pack-reused 142654 (from 4)
Receiving objects: 100% (143184/143184), 75.24 MiB | 6.51 MiB/s, done.
Resolving deltas: 100% (105740/105740), done.
Note: switching to 'ca19bd31d42fb87c83b91541c473ebae85e9d14e'.
安装docker
docker,docker-ce,podman 安装其中之一就可
rocky8 以上默认为podman
A.安装docker
yum install docker
B.安装docker-ce
删除podman (如需要)
podman数据不会转移到docker
迁移 Docker 镜像,可以先导出再导入,容器用docker export和import
docker save -o image.tar image_name:tag
docker load image.tar
先停止所有容器的应用和删除容器,再删除安装包
podman container prune
清理所有未使用的镜像
podman image prune -a
清理所有未使用的卷
podman volume prune
清理所有未使用的网络
podman network prune
检查存储状态
podman system df
删除 Podman 存储目录
rm -rf /var/lib/containers/storage
systemctl restart podman
检查存储状态
podman system df
删除podman
dnf remove podman
删除podman残余文件
rm -rf /etc/containers /etc/registries.conf /etc/containers/policy.json /etc/containers/storage.conf ~/.config/containers ~/.local/share/containers
安装docker-ce
安装docker所需依赖
dnf install -y yum-utils device-mapper-persistent-data lvm2
dnf install -y dnf-plugins-core
添加docker官方和阿里的YUM仓库
dnf config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf config-manager –add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 Docker Engine
dnf install -y docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl enable docker
docker –version
Docker version 28.0.1, build 068a01e
docker加速
tee > /etc/docker/daemon.json <<EOF
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://hub.rat.dev",
"https://dockerhub.icu",
"https://docker.wanpeng.top",
"https://register.librax.org"
]
}
EOF
验证有无出错
docker info
C.安装podman
Podman 是一个与 Docker 兼容的容器工具
dnf install podman
docker –version
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
podman version 5.2.2
设置镜像网站
Podman 默认注册表配置文件在 /etc/containers/registries.conf
vi /etc/containers/registries.conf
[[registry]]
prefix = "docker.io"
location = "docker.io"
mirror = [
{ location = "docker.nju.edu.cn" },
{ location = "docker.m.daocloud.io" }
]
docker info
docker-compose 安装
docker-compose 和 podman-compose安装其中之一就可
docker-compose 安装
如果安装的是docker则安装docker-compose
https://github.com/docker/compose/releases/
curl -L "https://github.com/docker/compose/releases/download/v2.33.0/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose
使用国内加速
wget -o /usr/local/bin/docker-compose https://ghproxy.cn/https://github.com/docker/compose/releases/download/v2.29.1/docker-compose-linux-x86_64
chmod +x /usr/local/bin/docker-compose
查看 docker-compose
docker-compose –version 版本
Docker Compose version v2.29.1
安装podman-compose
#yum install podman-compose
系统自带podman-compose version: 1.0.6版本过老
podman-compose –version
podman-compose version: 1.0.6
['podman', '--version', '']
using podman version: 5.2.2
podman-compose version 1.0.6
podman --version
podman version 5.2.2
exit code: 0
会出错以下报错
Cannot connect to the Docker daemon at unix:///run/podman/podman.sock. Is the docker daemon running?
安装pip 后安装podman-compose
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py
pip –version
升级 pip
pip install -U pip
pip 国内加速
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip 安装podman-compose
pip3 install podman-compose
更新 podman-compose
运行以下命令更新 podman-compose:
pip install –upgrade podman-compose
运行以下命令检查 podman-compose 是否已安装:
pip show podman-compose
#没找到
-bash: /usr/bin/podman-compose: No such file or directory
find / -name podman-compose 2>/dev/null
/usr/share/licenses/podman-compose
/usr/share/doc/podman-compose
/usr/local/bin/podman-compose
将路径加入到环境变量
#临时
export PATH=/usr/local/bin:$PATH
#永久添加
echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
查看版本
podman-compose –version
podman-compose version 1.3.0
podman version 5.2.2
使用podman-compose 拉起会报错
podman-compose up -d
RuntimeError: missing networks:
改用docker-compose兼容方式
检查 Podman 套接字文件
ls -l /run/podman/podman.sock
Podman 的套接字文件通常位于 /run/podman/podman.sock。如果该文件不存在,可能是系统未启用 Podman 的套接字功能。
启用 Podman 套接字
运行以下命令启用 Podman 套接字:
systemctl –user enable –now podman.socket
验证套接字文件
ls -l /run/podman/podman.sock
如果 Podman 套接字仍未生成,可以尝试手动启动 Podman 套接字服务。
手动创建套接字文件
podman system service –time=0 unix:///run/podman/podman.sock &
chmod 666 /run/podman/podman.sock
export DOCKER_HOST=unix:///run/podman/podman.sock
docker-compose ps
注册开机自动启动podman socket
cat >/etc/systemd/system/podman.socket.service<<EOF
[Unit]
Description=Podman API Socket
Documentation=man:podman-system-service(1)
After=network.target
[Service]
ExecStart=/usr/bin/podman system service --time=0 unix:///run/podman/podman.sock
Restart=always
User=root
Group=root
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable podman.socket.service
systemctl start podman.socket.service
systemctl status podman.socket.service
ls -l /run/podman/podman.sock
Dify 安装
进入 Dify 源代码的 Docker 目录
cd dify/docker
复制环境配置文件
cp .env.example .env
启动 Docker 容器
根据你系统上的 Docker Compose 版本,选择合适的命令来启动容器。你可以通过 $ docker compose version 命令检查版本,详细说明请参考 Docker 官方文档:
如果版本是 Docker Compose V2,使用以下命令:
docker compose up -d
如果版本是 Docker Compose V1,使用以下命令:
docker-compose up -d
使用docker-compose拉起
docker compose pull
Trying to pull docker.io/library/redis:6-alpine…
Trying to pull docker.io/langgenius/dify-api:0.15.3…
Trying to pull docker.io/library/postgres:15-alpine…
Trying to pull docker.io/langgenius/dify-web:0.15.3…
Trying to pull docker.io/ubuntu/squid:latest…
Trying to pull docker.io/langgenius/dify-api:0.15.3…
Trying to pull docker.io/semitechnologies/weaviate:1.19.0…
Trying to pull docker.io/library/nginx:latest…
Trying to pull docker.io/langgenius/dify-sandbox:0.2.10…
此时会遇到超时问题
pinging container registry registry-1.docker.io: Get "https://registry-1.docker.io/v2/": dial tcp 208.43.237.140:443: i/o timeout
测试拉取
docker pull docker.io/library/redis:6-alpine
docker pull docker.io/langgenius/dify-web:0.15.3
docker pull docker.io/library/postgres:15-alpine
ocker pull register.librax.org/langgenius/dify-api:0.15.3
docker pull register.librax.org/semitechnologies/weaviate:1.19.0
docker pull register.librax.org/library/nginx:latest
docker pull register.librax.org/langgenius/dify-sandbox:0.2.10
docker tag register.librax.org/langgenius/dify-api:0.15.3 docker.io/langgenius/dify-api:0.15.3
docker-compose up -d
[+] Running 11/11
✔ Network docker_default Created 0.0s
✔ Network docker_ssrf_proxy_network Created 0.0s
✔ Container docker-ssrf_proxy-1 Started 0.9s
✔ Container docker-db-1 Started 1.0s
✔ Container docker-weaviate-1 Started 1.2s
✔ Container docker-sandbox-1 Started 1.0s
✔ Container docker-redis-1 Started 0.9s
✔ Container docker-web-1 Started 0.9s
✔ Container docker-worker-1 Started 1.4s
✔ Container docker-api-1 Started 1.2s
✔ Container docker-nginx-1 Started 1.4s
你应该可以看到包括3个业务服务 api / worker / web,以及6个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox 。
通过这些步骤,你应该可以成功在本地安装Dify。
更新Dify
当Dify版本更新后,你可以克隆或拉取最新的Dify源代码,并通过命令行更新已经部署的Dify环境。
刚好Dify在2月28日发布了1.0.0版本,那么我们也就直接升级一波!
dify v1.0.0更新内容介绍
我们先来看一下这次dify v1.0.0都有哪些重磅更新
1. 插件机制 (Plugin System)
核心变化:将原有的模型和工具都改造成插件形式
应用场景:想用新的 AI 模型时,直接安装对应插件即可
需要连接 Slack 时,安装 Slack 插件就能实现集成
2. 智能工作流 (Intelligent Workflow)
新增 Agent 节点:作为工作流和聊天流的决策中心
通俗解释:相当于一个智能管家,可以根据需求自动调用合适的流程、工具
应用场景:客服机器人可以自动判断用户意图,选择合适的回复方式
数据分析任务可以自动选择合适的分析工具和展示方式
3. 开放生态系统 (Open Ecosystem)
Dify Marketplace:官方插件市场
已有 120+ 插件,包括:模型:OpenAI 、Gemini 2.0 、DeepSeek-R1 等
工具:Perplexity 、Discord 、Slack 等
应用场景:企业可以在市场中找到所需的专业工具
开发者可以发布自己的插件获得收益
4. 多模态交互 (Multimodal I/O)
支持多种数据类型:文本、图像、视频、语音
应用场景:智能客服可以处理图片问题
教育应用可以结合视频和语音进行互动
5. 核心能力增强
推理能力 (Reasoning):提升问题解决能力
执行能力 (Action):可以操作软件和物联网设备
动态记忆 (Dynamic Memory):优化上下文理解
进入dify源代码的docker目录,按顺序执行以下命令:
cd dify/docker
关闭服务
docker-compose down
git pull origin main
remote: Enumerating objects: 535, done.
remote: Counting objects: 100% (290/290), done.
remote: Total 535 (delta 290), reused 290 (delta 290), pack-reused 245 (from 1)
Receiving objects: 100% (535/535), 472.65 KiB | 1.10 MiB/s, done.
Resolving deltas: 100% (387/387), completed with 209 local objects.
From https://github.com/langgenius/dify
* branch main -> FETCH_HEAD
bafa46393..330dc2fd4 main -> origin/main
docker-compose pull
docker-compose up -d
执行上述命令更新完成后,需按以下操作同步环境变量配置 (重要!)。
如果.env.example文件有更新,请务必同步修改您本地的.env文件。
检查.env文件中的所有配置项,确保它们与您的实际运行环境相匹配。
您可能需要将.env.example中的新变量添加到.env文件中,
并更新已更改的任何值。
查看当前ollama的模型
ollama list
NAME ID SIZE MODIFIED
qwen2:1.5b f6daf2b25194 934 MB 2 months ago
ollama run qwen2:1.5b
ollama ps
NAME ID SIZE PROCESSOR UNTIL
qwen2:1.5b f6daf2b25194 1.5 GB 100% CPU 4 minutes from now
拉取deepseek-r1:1.5b模型
ollama pull deepseek-r1:1.5b
pulling manifest
pulling aabd4debf0c8... 100% ▕██████████████████████████▏ 1.1 GB
pulling 369ca498f347... 100% ▕██████████████████████████▏ 387 B
pulling 6e4c38e1172f... 100% ▕██████████████████████████▏ 1.1 KB
pulling f4d24e9138dd... 100% ▕██████████████████████████▏ 148 B
pulling a85fe2a2e58e... 100% ▕██████████████████████████▏ 487 B
verifying sha256 digest
writing manifest
success
ollama run deepseek-r1:1.5b
ollama ps
NAME ID SIZE PROCESSOR UNTIL
deepseek-r1:1.5b a42b25d8c10a 1.6 GB 100% CPU 4 minutes from now
qwen2:1.5b f6daf2b25194 1.5 GB 100% CPU 5 seconds from now
创建宿主机到虚拟机的nat
#我使用980,正常使用80端口
#http://localhost:980/install
在virtualbox创建nat转发127.0.0.1:80端口到192.168.244.9:80
使用Dify
按照以上步骤部署好Dify后,首先前往管理员初始化页面设置设置管理员账户:
# 本地环境
http://localhost/install
# 服务器环境
http://your_server_ip/install
通过私有化本地部署Dify,结合Ollama等大模型运行环境,可以打造自己的私有大模型工具链,实现大模型的本地可视化运行。在涉密或敏感数据场合具有极大的应用价值。
创建管理员
第一次访问需要先设置最高管理权限账号、密码
添加本地Ollama
登录进去后,右上角用户里设置
在 Dify 中接入 Ollama 在 设置 > 模型供应商 > Ollama 中填入
模型名称:qwen2:1.5b
基础 URL:http://127.0.0.1:11434,此处需填写可访问到的 Ollama 服务地址。
若 Dify 为 docker 部署,建议填写局域网 IP 地址,如:http://192.168.244.9:11434 或 docker 宿主机 IP 地址,如: http://host.docker.internal:11434 或 http://10.89.1.1:11434
Docker版本是18.03或更高可以使用 host.docker.internal。
若为本地源码部署,可填写 http://localhost:11434。
模型类型:对话
模型上下文长度:4096
模型的最大上下文长度,若不清楚可填写默认值 4096。
最大 token 上限:4096:模型返回内容的最大 token 数量,若模型无特别说明,则可与模型上下文长度保持一致。
是否支持 Vision:是(当模型支持图片理解(多模态)勾选此项,如 llava。)
点击 “保存” 校验无误后即可在应用中使用该模型。
如出现错误可以检查一下ip和端口是否正确,网络是否通畅。
An error occurred during credentials validation: HTTPConnectionPool(host='10.89.1.1', port=80): Max retries exceeded with url: /api/chat (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7f6ea7769040>, 'Connection to 10.89.1.1 timed out. (connect timeout=10)'))
如果不想使用本地Ollama,我们也可以使用deepseek 官方API,或硅基流动的。
DeepSeek是目前最好的开源大模型
Dify v1.0.0是目前最好的开源大模型应用平台
DeepSeek + Dify v1.0.0可谓强强联手!
创建聊天助手
创建空白应用->聊天助手
发布后你就有了一个自已的聊天助手。
创建工作流
回到主页,点击创建空白应用,这里的聊天助手和文本生成应用,是功能最为单一的 LLM 应用,都不支持工具和知识库的接入。
Agent 和 工作流的区别:
Agent:智能体,基于大语言模型的推理能力,可以自主选择工具来完成任务,相对简单。
工作流:以工作流的形式编排 LLM 应用,提供更多的定制化能力,适合有经验的用户。
近期评论