【AI工具箱】Dify:可视化 AI 应用开发平台

【AI工具箱】Dify:可视化 AI 应用开发平台

Dify 是什么?

想象一下,你想做一个 AI 客服、AI 助手或者 AI 文档分析工具,但是不会编程怎么办?

Dify 就像是一个"AI 乐高积木盒"

  • 零代码开发:像搭积木一样拖拽组件,画出流程图
  • 知识库功能:把你的文档、资料"喂"给 AI,它就能基于这些内容回答问题
  • 多种 AI 模型:支持 GPT、Claude、国产大模型等各种 AI
  • 可视化界面:所见即所得,不需要写代码

简单来说:你完全不用懂编程,只要拖拽连线画出流程,再把文档资料上传,就能组装出一个既懂你业务、又能办事的专属 AI 助手!

官方文档

完整的使用教程请参考:docs.dify.ai/zh-hans


本地部署教程

为什么要本地部署?

  • 💰 省钱:不需要按使用量付费
  • 🔒 隐私:数据在自己电脑上,更安全
  • 自由:想怎么用就怎么用,没有限制

前提条件 :确保你已经安装了 Docker(查看 Docker 安装教程

第一步:修改端口(可选)

作用: 如果默认端口(80)被占用,需要修改成其他端口。

操作步骤:

  1. 进入 Dify 项目的 docker 文件夹
  2. 找到 .env 文件,用文本编辑器打开
  3. 找到 EXPOSE_NGINX_PORT=80 这一行
  4. 80 改成其他端口号(比如 8011

文件路径: ./docker/.env

第二步:启动 Dify

启动命令:

bash 复制代码
# 进入 docker 目录后执行
docker compose -p dify up -d

说明:

  • -p dify:项目名称设为 dify
  • up:启动服务
  • -d:后台运行

访问地址: 启动成功后,在浏览器打开 http://localhosthttp://localhost:你的端口号

停止 Dify

停止命令:

bash 复制代码
docker compose -p dify down

说明: 这个命令会停止并删除所有容器,但数据会保留。

配置反向代理(进阶,使用域名访问)

什么是反向代理? 简单来说,就是让你的 Dify 可以通过域名(比如 ai.yourdomain.com)访问,而不是 IP 地址。

适用场景: 如果你有自己的域名,想让 Dify 更专业、更好记。

Nginx 配置示例:

nginx 复制代码
location ^~ / {
    proxy_pass http://127.0.0.1:8011;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Real-Port $remote_port;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Port $server_port;
    proxy_set_header REMOTE-HOST $remote_addr;

    proxy_connect_timeout 60s;
    proxy_send_timeout 600s;
    proxy_read_timeout 600s;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
}

注意:8011 改成你实际使用的端口。

数据备份与迁移

重要提示: Dify 的所有数据(知识库、对话记录、配置等)都保存在 /docker/volumes 目录。

备份方法:

bash 复制代码
# 方法一:直接复制整个 volumes 文件夹
# Windows: 用资源管理器复制
# Linux/Mac: 
cp -r ./docker/volumes ./docker/volumes-backup

# 方法二:打包压缩(推荐,节省空间)
tar -cvf volumes-backup.tar.gz ./docker/volumes

迁移到新电脑:

  1. 把备份的 volumes 文件夹复制到新电脑的 Dify 项目的 docker 目录下
  2. 运行 docker compose -p dify up -d 即可

升级 Dify 到最新版本

为什么要升级? 获取新功能、性能优化和 bug 修复。

升级步骤:

bash 复制代码
# 1. 备份配置文件(可选但推荐)
cd docker
cp docker-compose.yaml docker-compose.yaml.backup

# 2. 获取最新代码
git checkout main
git pull origin main

# 3. 停止当前服务
docker compose down

# 4. 备份数据(重要!)
tar -cvf volumes-backup-$(date +%s).tgz volumes

# 5. 启动新版本
docker compose up -d

小提示:

  • 升级前一定要备份数据!
  • 如果不是通过 git 安装的,可以直接下载最新的 docker-compose.yaml 文件替换

常见问题解决

问题 1:端口被占用

现象: 启动时报错 Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use

原因: 80 端口已经被其他程序占用了。

解决方法:

  1. 打开文件:./docker/.env
  2. 找到 EXPOSE_NGINX_PORT=80
  3. 改成其他端口,比如:EXPOSE_NGINX_PORT=8011
  4. 重启 Dify

问题 2:忘记登录密码

解决方法:

bash 复制代码
# 1. 进入 API 容器
docker compose exec api bash

# 2. 执行密码重置命令
flask reset-password

# 3. 按照提示输入新密码即可

问题 3:代码执行节点无法引入第三方 Python 库

现象: 在代码执行节点中使用 import requests 等第三方库时报错。

解决方法:

  1. 打开文件:docker/volumes/sandbox/dependencies/python-requirements.txt
  2. 在文件末尾添加需要的库,比如: requests pandas numpy
  3. 保存文件
  4. 重启 Dify:docker compose -p dify restart

问题 4:使用清华镜像源加速 Python 库下载

作用: 让 Python 库下载更快。

操作方法:

  1. 打开文件:docker/volumes/sandbox/conf/config.yaml

  2. 添加一行配置:

    yaml 复制代码
    python_pip_mirror_url: https://pypi.tuna.tsinghua.edu.cn/simple
  3. 保存并重启

提示: 可以参考示例文件 sandbox/conf/config/config.yaml.example

问题 5:替换官方 sandbox(解决某些兼容性问题)

参考教程: dify-sandbox-py

修改方法:

docker-compose.yaml 文件中找到 sandbox 部分,修改镜像:

yaml 复制代码
sandbox:
  # image: langgenius/dify-sandbox:0.2.10  # 注释掉官方镜像
  image: svcvit/dify-sandbox-py:0.1.4      # 使用替代镜像

问题 6:代码节点无法获取上传的文件

现象: 在工作流中上传了文件,但代码节点无法访问。

解决方法:

.env 文件中添加或修改配置:

bash 复制代码
FILES_URL=http://你的服务器地址

说明: 配置后,上传的文件会以 URL 形式传递给后续节点,代码节点就可以通过 URL 下载和处理文件了。

问题 7:无法连接本地 Ollama 模型

现象: 添加本地 Ollama 模型时连接失败。

解决方法:

.env 文件中添加以下配置:

bash 复制代码
PROVIDER_OLLAMA_API_BASE_URL=http://host.docker.internal:11434
PLUGIN_WORKING_PATH=/app/cwd

说明:

  • host.docker.internal 是 Docker 内部访问宿主机的特殊地址
  • 11434 是 Ollama 的默认端口

性能优化与限制调整

调整并行分支数量

作用: 提高工作流的并行处理能力。

配置方法:

.env 文件中修改:

bash 复制代码
MAX_PARALLEL_LIMIT=10  # 默认值,可根据电脑配置调整

建议:

  • 配置较低的电脑:保持默认值 10
  • 配置较高的电脑:可以提高到 20-30
  • 设置过大可能导致内存不足

调整数组和字符串长度限制

问题场景: 代码执行节点返回大量数据时报错。

配置方法(在 .env 文件中):

bash 复制代码
# 数组长度限制(默认 30)
CODE_MAX_STRING_ARRAY_LENGTH=100

# 字符串长度限制(默认 80000)
CODE_MAX_STRING_LENGTH=200000

调整工作流执行限制

配置方法(在 .env 文件中):

bash 复制代码
# 工作流最大并发线程数(默认 100)
MAX_SUBMIT_COUNT=200

# 工作流执行总次数限制(默认 500)
WORKFLOW_MAX_EXECUTION_STEPS=1000

# 工作流调用深度限制(默认 5)
WORKFLOW_CALL_MAX_DEPTH=10

# 工作进程数(默认值 = CPU核心数×2+1)
SERVER_WORKER_AMOUNT=5

说明:

  • 这些限制是为了防止系统资源被耗尽
  • 根据实际需求和服务器配置调整
  • 修改后需要重启 Dify

调整文件上传大小限制

作用: 允许上传更大的文件到知识库或多模态节点。

配置方法(在 .env 文件中):

bash 复制代码
# 知识库文件上传大小限制(单位:MB)
UPLOAD_FILE_SIZE_LIMIT=1024

# 批量上传文件数量
UPLOAD_FILE_BATCH_LIMIT=50

# 多模态文件大小限制
UPLOAD_IMAGE_FILE_SIZE_LIMIT=1000    # 图片(MB)
UPLOAD_VIDEO_FILE_SIZE_LIMIT=10000   # 视频(MB)
UPLOAD_AUDIO_FILE_SIZE_LIMIT=50      # 音频(MB)

# Nginx 总容量大小限制
NGINX_CLIENT_MAX_BODY_SIZE=150000M

注意:

  • 增大限制前确保服务器有足够的存储空间
  • 修改后需重启 Dify

其他配置技巧

安装本地插件

默认情况下,Dify 会验证插件签名,本地开发的插件可能无法安装。

解决方法(在 .env 文件中):

bash 复制代码
FORCE_VERIFYING_SIGNATURE=false

变量聚合节点的使用技巧

重要提示: 如果要等待多个变量都到达后再继续执行,需要为每个变量创建独立的分组。

正确做法:

  • 创建多个变量分组
  • 每个分组添加对应的变量
  • 分支场景同样适用此规则

解决 URL 上传文件的验证错误

现象: 通过 URL 方式上传文件时出现 pydantic 验证错误。

解决方法:

docker/.env 文件中添加或修改相关配置:


总结

通过这篇教程,你应该已经掌握了:

  1. Dify 的基本概念:零代码 AI 应用开发平台
  2. 本地部署方法:使用 Docker 快速部署
  3. 常见问题解决:端口占用、密码重置、第三方库安装等
  4. 性能优化:根据需求调整各种限制参数
  5. 数据管理:备份、迁移和升级操作

下一步建议:

  • 访问 官方文档 学习如何创建工作流
  • 尝试构建你的第一个 AI 应用
  • 加入 Dify 社区,获取更多帮助

祝你玩得开心!🎉

相关推荐
该用户已不存在2 小时前
6款Vibe Coding工具,让开发从从容容游刃有余
后端·aigc·ai编程
唐诗2 小时前
Git提交信息太乱?AI一键美化!一行命令拯救你的项目历史🚀
前端·ai编程
HashTang3 小时前
【AI 编程实战】第 2 篇:让 AI 成为你的前端架构师 - UniApp + Vue3 项目初始化
前端·vue.js·ai编程
后端小肥肠4 小时前
小红书儿童绘本这样做!Coze+Nano Banana Pro批量生产挂橱窗
人工智能·aigc·coze
人工智能训练5 小时前
openEuler系统中如何将docker安装在指定目录
运维·服务器·ubuntu·docker·容器·ai编程·openeuler
一只爱吃糖的小羊7 小时前
Antigravity:下一代 AI 编程助手完全指南
ai编程
阿杰学AI7 小时前
AI核心知识41——大语言模型之 MCP(简洁且通俗易懂版)
人工智能·ai·语言模型·aigc·agi·mcp·模型上下文协议
haicoder_ibai7 小时前
使用 Trae Solo 快速搭建个人工具网站
ai编程·trae
聊天QQ:688238867 小时前
60.基于matlab的时滞系统广义预测控制(GPC)算法仿真,不同控制加权矩阵控制效果对比
ai编程