【半小时学习】探索 Dify:构建 AI 应用的新利器
在需要拼尽全力的时候,看到别人努力又很没有安全感,最后带着这种焦虑继续假模假样地放松自己,不要成为这样的人,真的很丢脸。
做困难的事情才有意义。
在人工智能浪潮下,大模型技术成为众多领域探索创新的焦点,其领域内的信息同样纷繁复杂,让人有 “乱花渐欲迷人眼” 之感。近期,我深入研究了大量大模型相关内容,同时也将开展一项关于 Dify 实际应用的工作,接下来就带大家一起探索 Dify 这款构建 AI 应用的新利器。
一、Dify 究竟是什么
Dify 是一款产品,其官方文档来源为 docs.dify.ai 。它提供了诸多关键能力,如支持数百个模型、具备直观的 Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排,并且同时配备一套易用的界面和 API 。
简单类比,Langchain 侧重于代码开发,如同需要专业编程人员精心编写代码搭建一座复杂的大厦;而 Dify 则像是搭积木,即便没有深厚编程功底的人,也能通过拼接积木(各项功能模块)的方式构建 AI 应用。
二、Dify 的用途与准备工作
用途:Dify 主要用于搭建 AI 应用,提供 API 层能力,如同为构建 AI 应用大厦提供关键的建筑材料和框架接口,助力搭建部分功能,但并非构建完整应用。
准备工作:需要进行本地部署以及配置大模型 API 。这部分网上教程丰富,大家找相关视频学习即可。值得注意的是,很多环境变量是有默认值的,若出现奇怪错误,往往要从环境变量中排查原因。另外,我已配置好模型,但后续还会再次按照教程操作一遍,确保无误。
三、模型相关要点
模型分类:主要有系统推理模型、Embedding 模型、Rerank 模型、语音转文字模型。
系统推理模型主要负责对输入信息进行逻辑推导和判断,为应用提供智能决策支持;
Embedding 模型能将文本等数据转换为向量表示,便于计算机理解和处理语义信息;
Rerank 模型通常用于对初步生成的结果进行重新排序,优化输出质量。
而语音转文字模型则是将语音信息转化为文本形式,多数应用场景下并非必需。
对于多数应用而言,除语音转文字模型外,其他模型通常都会用到。虽然不必深入了解每个模型具体功能,但要知道它们在应用中的大致角色。
供应商配置方式:
- 预定义模型(predefined - model) :用户只需配置统一的供应商凭据,就能使用该供应商下的预定义模型,如同在航空货运中,统一使用某个供应商提供的特定型号的货物包装材料。
- 自定义模型(customizable - model) :针对每个模型都要新增凭据配置。以 Xinference 为例,它同时支持 LLM 和 Text Embedding,但每个模型都有唯一的 model_uid ,若想同时接入两者,就得为每个模型配置一个 model_uid ,这类似于每种特殊货物都需要特定的运输标签和手续。
- 从远程获取(fetch - from - remote) :与 predefined - model 配置方式一样,仅需配置统一的供应商凭据,模型通过凭据信息从供应商获取。
四、Dify 中的应用类型与创建方式
应用类型
- 聊天助手:基于 LLM 构建的对话式交互助手,宛如智能客服精灵,能随时响应并解答各种疑问,无论是用户咨询产品信息,还是寻求解决方案,都能对答如流。
- 文本生成应用:面向文本生成类任务,如撰写故事、文本分类、翻译等,好比一位多才多艺的文字创作助手,能根据不同需求生成各类文本内容,类似货运中根据不同需求生成运输报告等文档。
- Agent:能够分解任务、推理思考、调用工具的对话式智能助手,仿佛是货运调度员,合理安排各项运输任务,智能高效地处理复杂事务。
- 对话流:适用于定义复杂流程的多轮对话场景,具有记忆功能的应用编排方式,比如处理复杂客户需求时的多轮沟通流程,像一位经验丰富的沟通专家,能有条不紊地应对各种复杂交流情境。
- 工作流:适用于自动化、批处理等单轮生成类任务场景的应用编排方式,类似于自动化的货物装卸流程,高效完成重复性、规律性的任务。
虽然我们期望聊天助手能具备所有功能,但从分类角度看,文本生成应用类似嵌入在聊天助手中。
文本生成应用和聊天助手的区别
创建应用方式
- 基于应用模板创建:新手推荐此方式,就像按照标准图纸搭建简单的货运仓库,快速上手,能让初学者轻松迈出第一步。
- 创建一个空白应用:适合有特定需求,想完全自主搭建应用的用户,如同从零开始设计建造一个独特的货运设施,满足个性化需求。
- 通过 DSL 文件(本地 / 在线)创建应用:Dify DSL 是由 Dify.AI 定义的 AI 应用工程文件标准,文件格式为 YML 。它涵盖应用在 Dify 内的基本描述、模型参数、编排配置等信息。这也表明这类低代码平台通常采用自定义的文件标准,而非生成通用配置文件。
五、深入体验聊天助手应用
创建空白应用
按照特定流程即可完成空白应用创建,就像划定一块空地准备搭建建筑,为后续打造个性化聊天助手奠定基础。
提示词
创建应用后,会配备提示词生成器,它能依据输入指令,通过智能算法辅助生成高质量提示词。比如输入简单指令,经其优化后,能得到包含明确输入输出要求以及具体 example 案例的提示词,大大节省用户构思提示词的时间和精力。不过目前发现该页面不能直接修改,需输出到编排页才能更改,推测可能是右侧三个功能间对应关系复杂,避免用户修改一个导致其他无法对应。同时,经测试效果有待提升,后续会进一步测试。
感受效果
image-20250617092838516
以翻译为例,其翻译较为直接,较少涉及语义等深层次处理。在此提及豆包桌面助手,它也是一种应用,部分服务厂商做得相当出色,值得学习借鉴,期望未来能拓展自身桌面助手的功能边界。这里提醒尽量别用豆包插件,因其无历史记录,而桌面版生成的文字可记录。
附加功能
尝试使用附加功能时发现了 BUG,如输入中文指令,生成的提示词却是英文。不过从整体生成结果来看,建议不要依赖单一大模型,多个模型结合使用可实现优势互补。
多模型调试
聊天助手应用类型支持 “多个模型进行调试” 功能,能同时批量检视不同模型对相同问题的回答效果。若发现效果较好的模型,点击 “单一模型进行调试” 可进入单独调试页面,就像在众多货运方案中筛选出最佳方案并进一步优化。
六、写在最后
如今有了 AI,观看外语视频变得轻松愉悦,AI 翻译较以往对照翻译有显著提升。在信息爆炸的时代,虽然我们无法关注所有事物,但不能以此为借口。我们应放大自身视角,全面考虑问题,在自己的领域中充分发挥才能,就如同在航空货运领域,精心规划每一次运输任务,不断探索创新,为行业发展贡献力量。
拓展知识
Dify 一词源于 Define + Modify,正确念法是 “De Fy” 而非 “De Fine” 。这里涉及两个概念,MVP 即最小可用产品,就像飞机的原型机,具备最基本功能能初步验证可行性;POC 概念验证则类似对新飞行技术在小范围内进行测试验证。
不足与反思
- Dify 功能阐述:对专业名词 RAG 、Agent 等没做解释,之后补。
- 模型相关内容:虽已在模型分类后补充大致作用说明,但不够深入,后续进一步拓展。
- 应用效果展示:在聊天助手应用效果展示部分,仅以翻译为例且评价较主观,缺乏更客观的数据或多场景对比。后续增加多场景测试与数据对比分析。