Skip to content

无代码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。这为开发者节省了许 多重复造轮⼦的时间,使其可以专注在创新和业务需求上。

功能RagflowDify
易⽤性学习曲线较陡,适合专家界⾯直观,初学者友好
集成能⼒⽀持⾼级集成(LLM、API 等)⽆缝集成,但仅限于预定义选项
⾃定义和灵活性⾼度可定制复杂⽤例灵活性有限
性能可扩展性强,适合⾼负载应⽤部署快,但处理⼤数据时速度较慢
成本对⼩团队来说较昂贵对初创公司和⼩型项⽬更实惠
社区和⽀持活跃的社区,详细的⽂档⽀持良好,但⾼级资源较少
使⽤场景RagflowDify
⽂档问答机器⼈⾼度可定制,处理⼤数据集表现优异快速部署,适合⼩型数据集
知识检索⽀持复杂管道和多模型集成预定义模板,适合快速原型开发
⾏业特定需求满⾜⾼安全性⼯作流适合通⽤应⽤

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

image-20250429165643773

访问

因为前面将 .env 文件中EXPOSE_NGINX_PORT参数设置为8890 ,所以页面访问时用8890映射的外部端口。

例:http://140.210.92.250:13560

image-20250512143541166

image-20250512143728051

其他

备份数据

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

image-20250429144005615

管理配置

image-20250429144325254

  • 修改账户密码

image-20250429144704709

  • 配置地区和语⾔

image-20250429144600372

  • 配置“模型”

    image-20250429163143341

该教程仅以本地模型以Ollama为例(本地已部署Ollama并提前下载好模型),其他公有云模型用户可按照实际需求自行安装配置:

类型模型URL
LLMdeepseek-r1:14bhttp://host.docker.internal:11434
LLMgemma3:27bhttp://host.docker.internal:11434
Text Embeddingbge-m3:567mhttp://host.docker.internal:11434

Ollama只⽀持LLM(⼤语⾔模型)和Text Embedding(⽂本向量模型),其他Rerank(重排序模型)、Speech to text(语⾳识别)、TTS(⽂本转语⾳)尚未⽀持。

模型供应商的功能⽀持情况: https://docs.dify.ai/zh-hans/getting-started/readme/model-providers

image-20250429163918908

image-20250429164031269

⽤户管理

包含三种⻆⾊权限,按需配

image-20250429164117209

数据来源

配置知识库,默认集成Notio

image-20250429164147825

简单案例

简单案例:

  • 知识库问答

    创建知识库并上传文件

    image-20250429170831673

    创建聊天助手(例:Nvidia H100问讯)

    image-20250429170940808

    创建好聊天助手后就可以聊天了,也可以编排并发布AI问答助手(可查看Dify+Ollama构建私有知识库相关文档

    image-20250429171808511

  • 写短⼩说

    工作室-文本生成-创建空白应用

    image-20250430093149060

    image-20250430093312890

    自动生成编排,然后进行测试

    image-20250430095322734

  • 简单的agent⼩助⼿

    创建agent

    image-20250429171923109

    在编排框中描述你的agent助手有什么能力,自动生成编排,然后点击应用

    image-20250429173356983

    自动生成的编排

    image-20250429173551746

    根据需要添加知识库和工具

    image-20250429173745185

    进行一段爬虫测试

    image-20250429180143638

  • 图⽚分析

image-20250430103411875

image-20250430103454339

image-20250430103631552

image-20250430103718571

上传图片测试

image-20250430103939635

测试结果

image-20250430104148504

最后点击发布即可。

  • ⼯作流发票识

    创建一个工作流应用

    image-20250430104452023

    开始节点新建一个字段

    image-20250430104803357

    image-20250430105946886

    上传发票图片测试

    image-20250430110200870

    运行结果

    image-20250430110600165