无代码AI应用开发:Dify可视化工作流
本教程内容已封装为 Dify-v1.1.3 镜像。若您使用该镜像创建云主机,请在云主机启动完成后,登录实例并执行以下命令启动 Dify 服务:
cd /root/dify-1.1.3/docker/ && docker-compose up -d
Dify 服务默认运行在内部端口
8890
。在云主机的【更多连接方式】→【预留端口】,您可通过IP及内部端口映射的公网端口实现对外访问。详情请查看文章,案例仅供参考。
本教程包含四个部分:
- 简介
- 安装Docker
- 安装Ollama
- 安装Dify
- 基础配置
- 案例
简介
Dify 是⼀款开源的⼤语⾔模型(LLM) 应⽤开发平台。它融合了后端即服务(Backend as Service)和 LLMOps (涵 盖了⼤语⾔模型开发、部署、维护和优化的⼀整套实践和流程)的理念,使开发者可以快速搭建⽣产级的⽣成式 AI 应⽤。即使你是⾮技术⼈员,也能参与到 AI 应⽤的定义和数据运营过程中。
由于 Dify 内置了构建 LLM 应⽤所需的关键技术栈,包括对数百个模型的⽀持、直观的 Prompt 编排界⾯、⾼质量 的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排,并同时提供了⼀套易⽤的界⾯和 API。这为开发者节省了许 多重复造轮⼦的时间,使其可以专注在创新和业务需求上。
功能 | Ragflow | Dify |
---|---|---|
易⽤性 | 学习曲线较陡,适合专家 | 界⾯直观,初学者友好 |
集成能⼒ | ⽀持⾼级集成(LLM、API 等) | ⽆缝集成,但仅限于预定义选项 |
⾃定义和灵活性 | ⾼度可定制 | 复杂⽤例灵活性有限 |
性能 | 可扩展性强,适合⾼负载应⽤ | 部署快,但处理⼤数据时速度较慢 |
成本 | 对⼩团队来说较昂贵 | 对初创公司和⼩型项⽬更实惠 |
社区和⽀持 | 活跃的社区,详细的⽂档 | ⽀持良好,但⾼级资源较少 |
使⽤场景 | Ragflow | Dify |
---|---|---|
⽂档问答机器⼈ | ⾼度可定制,处理⼤数据集表现优异 | 快速部署,适合⼩型数据集 |
知识检索 | ⽀持复杂管道和多模型集成 | 预定义模板,适合快速原型开发 |
⾏业特定需求 | 满⾜⾼安全性⼯作流 | 适合通⽤应⽤ |
Dify功能场景:
- chat:聊天+知识库
- agent:聊天+tool+知识库
- ⽂本⽣成:⽣成故事
- flow:流程图节点(流程控制节点、脚本、http、LLM、输出)+tool
安装Docker
在Ubuntu 20.04上安装Docker可以通过以下步骤完成:
export http_proxy=http://10.132.19.35:7890
export https_proxy=http://10.132.19.35:7890
export http_proxy=http://10.132.19.35:7890
export https_proxy=http://10.132.19.35:7890
更新软件包索引
打开终端并执行命令以确保你的软件包索引是最新的。
bash
sudo apt-get update
sudo apt-get update
安装一些必要的软件包,以便apt能够通过HTTPS使用仓库:
bash
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
添加Docker的官方GPG密钥:
这一步是为了确保你从Docker下载的软件是安全可靠的。
bash
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
设置稳定的仓库:
添加Docker的APT仓库到你的系统中。
bash
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
再次更新软件包索引:
因为你刚添加了一个新的仓库,所以需要再次更新软件包索引。
bash
sudo apt-get update
sudo apt-get update
从新添加的仓库中安装Docker CE:
现在你可以安装最新的Docker版本了。
bash
sudo apt-get -y install docker-ce
sudo apt-get -y install docker-ce
验证Docker是否安装成功:
安装完成后,运行下面的命令来确认Docker已经正确安装并且可以正常工作。
bash
sudo docker --version
sudo docker --version
(可选)修改docker的数据目录
默认docker的镜像和容器存储都在/var/lib/docker目录下,如果系统盘空间较小,建议将docker数据目录调整到其他可用空间更大的目,避免系统盘空间不足。详细操作步骤请查看Docker数据目录。
查看docker运行状态
sudo systemctl status docker
sudo systemctl status docker
配置代理和修改数据目录,vim /etc/docker/daemon.json
"proxies": {
"http-proxy": "http://10.132.19.35:7890/proxy",
"https-proxy": "http://10.132.19.35:7890/proxy",
"no-proxy": "localhost"
}
"proxies": {
"http-proxy": "http://10.132.19.35:7890/proxy",
"https-proxy": "http://10.132.19.35:7890/proxy",
"no-proxy": "localhost"
}
重启docker
systemctl daemon-reload
systemctl restart docker
systemctl daemon-reload
systemctl restart docker
查看docker 版本
docker info
docker info
查看docker compose 版本
docker compose version
docker compose version
安装Ollama
在Ubuntu 20.04上安装Ollama可以通过以下步骤完成:
开启学术加速
export http_proxy=http://10.132.19.35:7890
export https_proxy=http://10.132.19.35:789
export http_proxy=http://10.132.19.35:7890
export https_proxy=http://10.132.19.35:789
执行如下命令进行Ollama安装,打开终端并执行命令。
curl -fsSL https://ollama.com/install.sh | sh
curl -fsSL https://ollama.com/install.sh | sh
返回如下提示,显示安装完毕。
bash
>>> Installing ollama to /usr/local
>>> Downloading Linux amd64 bundle
######################################################################## 100.0%
>>> Creating ollama user...
>>> Adding ollama user to render group...
>>> Adding ollama user to video group...
>>> Adding current user to ollama group...
>>> Creating ollama systemd service...
WARNING: systemd is not running
>>> NVIDIA GPU installed.
>>> The Ollama API is now available at 127.0.0.1:11434.
>>> Install complete. Run "ollama" from the command line.
>>> Installing ollama to /usr/local
>>> Downloading Linux amd64 bundle
######################################################################## 100.0%
>>> Creating ollama user...
>>> Adding ollama user to render group...
>>> Adding ollama user to video group...
>>> Adding current user to ollama group...
>>> Creating ollama systemd service...
WARNING: systemd is not running
>>> NVIDIA GPU installed.
>>> The Ollama API is now available at 127.0.0.1:11434.
>>> Install complete. Run "ollama" from the command line.
修改配置文件/etc/systemd/system/ollama.service,在[service]部分Environment后增加一行新的环境变量,以便其他服务可以直接访问ollama的api:
bash
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_HOST=0.0.0.0:11434"
启动ollama服务,并设置开机启动:
bash
systemctl status ollama
systemctl start ollama
systemctl enable ollama
systemctl status ollama
systemctl start ollama
systemctl enable ollama
修改配置文件,可以通过重启ollama生效
bash
systemctl daemon-reload
systemctl restart ollama
systemctl daemon-reload
systemctl restart ollama
拉取模型,验证ollama服务。
bash
# LLM模型
ollama pull deepseek-r1:14b
# Embedding模型
ollama pull bge-m3:567m
# 视觉模型
ollama pull gemma3:27b
# LLM模型
ollama pull deepseek-r1:14b
# Embedding模型
ollama pull bge-m3:567m
# 视觉模型
ollama pull gemma3:27b
ollama 默认模型存储位置在/usr/share/ollama/.ollama/models
目录,如果系统盘空间较小,建议将 ollama 数据目录调整到其他可用空间更大的目录,避免系统盘空间不足。详细操作步骤请查看Ollama数据目录
查看ollama下载了哪些模型
ollama list
ollama list
安装Dify
环境准备
- Dify本身不需要GPU卡
- AI模型可以选择公⽹的模型供应商(OpenAI和Deepssek等,需要提前到开放平台获取API key按)
- Ollama(可选,本地模型供应商,需要GPU卡)
安装Dify
shell
# 下载源码(部署脚本)
curl -SL -o dify-1.1.3.tar.gz https://github.com/langgenius/dify/archive/refs/tags/1.1.3.tar.gz
tar zxf dify-1.1.3.tar.gz
cd dify-1.1.3/docker
# 修改配置(可以在此修改,也可以在启动时临时指定,例如“EXPOSE_NGINX_PORT=8890 docker-compose up -d”)
# nginx监听http端⼝ NGINX_PORT=8890
# nginx监听https端⼝ NGINX_SSL_PORT=8894
# docker映射http端⼝ EXPOSE_NGINX_PORT=8890
# docker映射https端⼝ EXPOSE_NGINX_SSL_PORT=8894
# 建议修改,默认1024使⽤提示词⽣成器显示不全 CODE_GENERATION_MAX_TOKENS=4096
cp .env.example .env
vi .env
# 添加主机访问(Linux平台需要访问本机需要,Win和Mac可跳过)
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
sed -i '/x-shared-env: &shared-api-worker-env/i\x-extra-hosts: &default-extra-hosts\n extra_hosts:\n - "host.docker.internal:host-gateway"\n' docker-compose.yaml
sed -i '/image: langgenius\/dify/a \ <<: *default-extra-hosts' docker-compose.yaml
# 启动
docker compose up -d
# 查看容器启动情况
docker ps
# 下载源码(部署脚本)
curl -SL -o dify-1.1.3.tar.gz https://github.com/langgenius/dify/archive/refs/tags/1.1.3.tar.gz
tar zxf dify-1.1.3.tar.gz
cd dify-1.1.3/docker
# 修改配置(可以在此修改,也可以在启动时临时指定,例如“EXPOSE_NGINX_PORT=8890 docker-compose up -d”)
# nginx监听http端⼝ NGINX_PORT=8890
# nginx监听https端⼝ NGINX_SSL_PORT=8894
# docker映射http端⼝ EXPOSE_NGINX_PORT=8890
# docker映射https端⼝ EXPOSE_NGINX_SSL_PORT=8894
# 建议修改,默认1024使⽤提示词⽣成器显示不全 CODE_GENERATION_MAX_TOKENS=4096
cp .env.example .env
vi .env
# 添加主机访问(Linux平台需要访问本机需要,Win和Mac可跳过)
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
sed -i '/x-shared-env: &shared-api-worker-env/i\x-extra-hosts: &default-extra-hosts\n extra_hosts:\n - "host.docker.internal:host-gateway"\n' docker-compose.yaml
sed -i '/image: langgenius\/dify/a \ <<: *default-extra-hosts' docker-compose.yaml
# 启动
docker compose up -d
# 查看容器启动情况
docker ps
访问
因为前面将 .env 文件中EXPOSE_NGINX_PORT参数设置为8890 ,所以页面访问时用8890映射的外部端口。
其他
备份数据
cd /data/dify-1.1.3/docker
tar -cvf volumes-$(date +%s).tgz volumes
cd /data/dify-1.1.3/docker
tar -cvf volumes-$(date +%s).tgz volumes
基本配置
注册管理员⽤户
邮 箱:admin@example.com
用户名:admin
密 码:admin123456
管理配置
- 修改账户密码
- 配置地区和语⾔
配置“模型”
该教程仅以本地模型以Ollama为例(本地已部署Ollama并提前下载好模型),其他公有云模型用户可按照实际需求自行安装配置:
类型 | 模型 | URL |
---|---|---|
LLM | deepseek-r1:14b | http://host.docker.internal:11434 |
LLM | gemma3:27b | http://host.docker.internal:11434 |
Text Embedding | bge-m3:567m | http://host.docker.internal:11434 |
Ollama只⽀持LLM(⼤语⾔模型)和Text Embedding(⽂本向量模型),其他Rerank(重排序模型)、Speech to text(语⾳识别)、TTS(⽂本转语⾳)尚未⽀持。
模型供应商的功能⽀持情况: https://docs.dify.ai/zh-hans/getting-started/readme/model-providers
⽤户管理
包含三种⻆⾊权限,按需配
数据来源
配置知识库,默认集成Notio
简单案例
简单案例:
知识库问答
创建知识库并上传文件
创建聊天助手(例:Nvidia H100问讯)
创建好聊天助手后就可以聊天了,也可以编排并发布AI问答助手(可查看Dify+Ollama构建私有知识库相关文档)
写短⼩说
工作室-文本生成-创建空白应用
自动生成编排,然后进行测试
简单的agent⼩助⼿
创建agent
在编排框中描述你的agent助手有什么能力,自动生成编排,然后点击应用
自动生成的编排
根据需要添加知识库和工具
进行一段爬虫测试
图⽚分析
上传图片测试
测试结果
最后点击发布即可。
⼯作流发票识
创建一个工作流应用
开始节点新建一个字段
上传发票图片测试
运行结果