Dify:从入门到精通

低代码平台 ------ Dify

Dify 是一个开源的 LLM 应用开发平台。提供从 Agent 构建到 AI workflow 编排RAG 检索模型管理 等能力,轻松构建和运营生成式 AI 原生应用。

Dify 提供五种应用类型:

  • 聊天助手: 基于 LLM 构建对话式交互的助手。
  • 文本生成应用: 面向文本生成类任务的助手,例如撰写故事、文本分类、翻译等。
  • Agent: 能够分解任务、推理思考、调用工具的对话式智能助手。
  • 对话流(Chatflow): 适用于设计复杂流程的多轮对话场景,支持记忆功能并能进行动态应用编排。
  • 工作流(Workflow): 适用于自动化、批处理等单轮生成类任务的场景的应用编排方式,单向生成结果。

Dify平台跟Coze平台都属于低代码平台!

本地部署的 Dify 与 Coze 区别:

  • 插件数量: 本地部署Coze是没有插件的,本地部署Dify是自带一批好用的插件。
  • 费用: Coze在企业内使用是要收费的,差不多200万人民币;Dify是开源的,大部分企业都在使用Dify。
  • 背景: Coze是字节跳动研发,有大厂背书,所以有企业花钱部署使用;Dify是小型AI公司,主要依赖开源为主题来抢占市场。

打开 云端Dify 或者打开本地部署的Dify,如下图所示:

应用创建

最开始进来都是空白页,没有任何应用,需要你进行创建应用:

step1:首页 - 创建空白应用

step2:选择创建应用的类型,以及填写应用基础信息

Dify 平台中,有 ChatflowWorkflow 两种核心的应用编排工具,它们分别服务于不同类型的 AI 应用场景:

  • Chatflow (对话流): 专为构建交互式、多轮对话的 AI 应用而设计。它更侧重于模拟人类对话的模式,能够记忆上下文,并根据用户的输入进行多步骤的逻辑处理和回复。
  • Workflow (工作流): 主要面向自动化、批处理或单次任务执行的场景。它适合处理那些不需要实时对话交互,但可能涉及复杂数据处理、分析、内容生成或与其他系统集成的任务。

DifyWorkflow(工作流)CozeWorkflow(工作流) 理论与使用是差不多的,我就不在这多做讲解,大家感兴趣可以去看 # Coze:从入门到精通

这里简单讲下 Dify 内的 Chatflow (对话流)

  • 对话式交互: 支持多轮对话,能够理解上下文,并根据之前的交流内容进行回应。
  • 记忆能力 (Memory): 内置对话历史记录功能,使得 AI 应用能够"记住"用户之前的发言。
  • 动态响应: 强调在对话过程中逐步构建和输出响应,可以使用户获得更自然的交流体验。
  • 专属节点: 拥有如 "Answer" (回复) 节点,用于在流程的中间步骤流式输出文本内容。
  • 用户交互功能: 通常包含开场白、下一步问题建议、文件上传(用于对话中)、引用归属等增强用户对话体验的功能。
  • 适用场景: 智能客服、语义搜索、AI 助教、需要引导用户完成特定任务的对话机器人等。

大家看本章节,最好先看下 # Coze:从入门到精通 ,可以更方便大家理解低代码平台,了解为什么我们要写低代码平台,并且低代码平台又为我们做了什么贡献?

我这里讲解 Dify 平台,直接通过案例来讲解,更能让大家知道 Dify 的原理以及实用技巧。

案例:LLM联网搜索

我个人觉得,想学习Agent应用 ,最核心的是思维 ,比如这个案例 ------ LLM联网搜索 ,我们要先梳理清楚,input是什么?output是什么?中间过程有什么?为了确保高质量输出output,我们的示例又是什么?

首先我们要知道input、output才能知道中间的工作流要做什么?

简单来说,就像我们研发团队一样,项目过来了:

  • 开发需要知道产品经理的需求文档/PRD/UX/UI什么时候提供,这就是input
  • 开发还需要知道项目最终要做成什么样的,这就是output
  • 最后,开发通过测试样例进行功能/性能测试,才能高质量输出output,测试样例就是示例

只有知道inputoutput ,开发人员才知道他们要怎么做,才能把input 通过一些系列的研发工作,结合测试样例进行,高质量高效率的输出output

在Agent应用内:

  • input: 用户输入的问题;
  • output: 大模型通过搜索给用户答案;
  • 中间过程: 工作流/插件;
  • 示例: 测试样本。

LLM联网搜索 的中间过程:通过LLM模型 ,提取用户输入问题的关键字(input) ,并且把关键字 总结成可以搜索的关键词搜索的关键词 输入到搜索节点(TavilySearch)搜索节点(TavilySearch) 把搜索到的信息 ,输出给LLM模型 进行内容总结LLM模型 内容总结完毕后,就会output展示给用户。

第三方插件配置

我们先进行Tavily插件准备:

Tavily:一个强大的原生AI搜索引擎和网页内容提取工具,提供高度相关的搜索结果和网页原始内容提取。

step1:在 Tavily网站 内获取API_KEYS。

step2:在Dify平台内安装插件。

step3:搜索Tavily插件。

step4:安装插件

step5:使用插件,进行API_KEY设置。

设置好插件后,如图所示:

模型配置

step1:在设置内配置模型插件

step2:按照Qwen模型,这里你可以根据自己需求进行选择模型

step3:配置模型的API_KEY

step4:配置完成后,是有绿点

应用实战

step1:创建应用

step2:用户输入设置input属性

step3:添加LLM模型,进行提取用户输入的问题关键字,并且进行总结为可以搜索的关键词。

step4:进行LLM插件设置

step5:添加 Tavily Search 插件,把LLM1的搜索关键词进行联网查询

step6:配置 Tavily Search 参数

step7:添加LLM模型插件,把搜索到的信息进行内容总结

step8:LLM模型进行参数配置

step9:添加输出插件

step10:输出插件进行配置output参数

step11:最后把output信息展示给用户

案例:智能客服ChatFlow

设置3个分类:营销专员 + 投诉专员 + 其他

  • 营销专员: 配置证券知识库,实现对证券产品介绍、交易规则等高频问题的自动化解答;
  • 投诉专员: 配置了用户行为数据,用户标签,方便进一步查找关于用户行为、资产等情况,给用户提供产品使用中的问题解答
  • 其他问题: 抱歉,这些问题我无法回答

知识库配置

step1:创建知识库

step2:创建文件

step3:文件切片/分段,使用默认配置

step4:上传文件信息到Dify云服务器内

step5:文件上传完后,会在知识库内展示

应用实战

step1:创建应用

应用创建成功:

step2:删除无用节点,对 用户输入 节点进行配置

step3:添加 问题分类器 节点

step4:配置 问题分类器 参数,根据用户提的问题,进行分类判断,接下来要走哪些业务流程

step5:添加 知识检索 节点,如果是营销咨询,先直接走证券知识库,在知识库内查找相关信息

step6: 知识检索 节点 配置 知识库

step7:知识检索 节点 下游 添加 LLM 节点,知识库找的到信息给到LLM模型,进行内容总结,然后回复给用户

step8:LLM节点 参数配置

step9:LLM节点 下游 添加 直接回复 节点

step10:直接回复 节点 参数配置

step11:分类2 下游 添加 LLM2节点,如果是投诉任务,先使用LLM模型把用户问题的关键字进行提取

step12:LLM2节点 参数配置

step13:LLM2节点 下游 添加 知识检索2 节点,并且进行 知识检索2节点参数配置,把关键字给到知识库,查找相关信息

step14:知识检索2节点 下游 添加 LLM3 节点,在知识库内找到相关信息后,先把内容总结,再拟人化回复用户

step15:LLM3 节点配置

step16:LLM3 节点 下游 添加 直接回复 节点,并进行参数配置

step17:分类3 下游 添加 直接回复 节点,并进行参数配置

step18:用户进行一次请求

低代码平台(Coze、Dify)API 调用

Coze API 实战

step1:登录 个人访问令牌 - 扣子 创建 个人访问令牌

step2:个人访问令牌 参数配置

step3:Agent应用发布要勾选中 API 选项,进行发布,Agent网页上会有botId,botId要给后续程序调用

step4:Vibe Coding编程,使用Trae Idea, 基于 cozepy 的 Coze API 客户端用于与Coze智能体进行交互,编写代码,然后把Coze API参数配置好

Dify API 实战

Agent API 要被外部调用的化,该Agent必须是发布状态!

step1:在Agent应用内,访问API页面找到 Base URL 与 创建 API密钥

step2:创建 API 密钥

step3:把Agent的访问API页面数据给Trae做参考,让它帮你编写Dify 请求代码

step4:配置Agent API 参数,并且进行运行,效果如下图所示

本地部署

Dify 的本地化部署主要有两种方式:Docker Compose部署(推荐) 和 源代码部署!

建议部署设备的配置:内存16G,CPU4核!

虽然官网说,设备的内存 >= 4G, CPU >= 2核,但是会你使用4G内存、2核CPU真的会卡死。

如何使用 Docker Compose 进行部署?

Docker Compose 部署是通过 Docker 容器来运行 Dify 的各个组件,隔离了环境依赖,部署和管理都相对简单。

前提条件:

  • 安装 Docker 和 Docker Compose: https://www.docker.com 选择适合操作系统的 Docker Desktop
  • 安装 Git: 用于克隆 Dify 的代码仓库。

安装流程

step1:克隆 Dify 代码仓库

打开你的终端 (Terminal) 或命令行工具,执行以下命令:

复制代码
git clone https://github.com/langgenius/dify.git

# 如果网络不稳定,建议执行浅克隆
git clone --depth 1 https://gitee.com/dify_ai/dify.git

step2:进入 Docker 目录并配置

复制代码
cd dify/docker

copy .env.example .env

这一步会复制一个环境变量配置文件的模板。你需要根据自己的需求修改 .env 文件。

关键配置项包括:

  • APP_URL:你的 Dify 访问地址,本地部署通常是 http://localhosthttp://你的IP地址
  • 数据库相关配置 (如果使用外部数据库)。默认情况下,它会使用 Docker 内置的数据库。
  • 模型供应商的 API Keys (例如 OpenAI, Anthropic, Qwen 等),这里需要配置你的 API 密钥。

step3:启动 Dify 服务

在 dify/docker 目录下,执行以下命令来启动 Dify

复制代码
# 参数 -d 表示在后台运行
docker compose up -d

step4:访问 Dify

启动成功后,等待几分钟让所有服务完全启动。然后你就可以在浏览器中访问 Dify 了。

管理员初始化页面: 首次访问 http://你的IP地址/install 来设置管理员账户。

Dify 主页面: 初始化完成后,访问 http://你的IP地址 即可开始使用 Dify。

如何更新 Dify?

在 dify/docker 目录下,拉取最新的代码和 Docker 镜像

复制代码
git pull

docker compose pull

如何重新启动服务?

复制代码
docker compose up -d
相关推荐
zhanghongbin012 小时前
Remote Write:高效数据推送
java·人工智能
IT枫斗者2 小时前
AI Agent 设计模式全景解析:从单体智能到分布式协作的架构演进
人工智能·redis·分布式·算法·spring·缓存·设计模式
老鱼说AI2 小时前
长文预警!大模型面试:关于大模型微调的进阶与工程部署讲解
人工智能·深度学习·神经网络·学习·自然语言处理·面试·职场和发展
Walk in loosing2 小时前
信创不再遥远
安全·低代码·健康医疗·政务
Nova_AI2 小时前
018、AI伦理与可持续发展:长期主义的商业基础
人工智能·深度学习·机器学习
云和数据.ChenGuang2 小时前
鸿蒙 HarmonyOS 6 技术全景解析:AI 原生重构全场景智能体验
人工智能·重构·harmonyos
Thomas.Sir2 小时前
AI 赋能放疗&手术规划:靶区智能勾画与剂量路径双重优化【从理论到实战】
人工智能·ai·动态规划·健康医疗·ai医疗·放疗
zhangzeyuaaa2 小时前
Python 闭包详解
开发语言·python
05大叔2 小时前
神经网络NLP分词任务,jieba,TF-IDF
人工智能·自然语言处理