Dify 系列教程 | 模块一:认识 Dify – 从零开始 | 第 4 篇 / 共 30 篇
适合读者:所有技术水平
学习目标:掌握 Dify 应用创建的基本流程;理解 Prompt 工程在 Dify 中的实践;学会调试和优化 AI 应用的响应质量
在前面三篇教程中,我们完成了 Dify 的本地部署和模型供应商配置。现在 Dify 已经拥有了"大脑"(AI 模型),但它还只是一个空壳平台 – 没有任何实际的 AI 应用。
今天,我们要迈出最关键的一步:创建你的第一个 AI 聊天助手。整个过程只需要 5 分钟,你将亲手把一个通用的大语言模型,调教成一个专注特定任务的智能助手。
这篇文章会带你理解 Dify 的五种应用类型、掌握 Prompt 编排技巧、学会调优模型参数,最终发布一个可以分享给他人使用的 AI 应用。
在创建应用之前,你需要了解 Dify 提供的五种应用类型。每种类型对应不同的使用场景,选对类型是构建优秀 AI 应用的第一步。
1.1 应用类型总览
在 Dify 后端源码中,应用类型通过 AppMode 枚举定义(api/models/model.py):
class AppMode(StrEnum): COMPLETION = "completion" # 文本生成 WORKFLOW = "workflow" # 工作流 CHAT = "chat" # 聊天助手 ADVANCED_CHAT = "advanced-chat" # 高级聊天 AGENT_CHAT = "agent-chat" # Agent 智能体
前端通过 AppModeEnum(web/types/app.ts)对应这五种类型:
chat ChatBot 多轮对话,如客服、问答、闲聊
文本生成
completion - 单次生成,如翻译、摘要、写作
高级聊天
advanced-chat BubbleTextMod 基于工作流的对话应用
Agent 智能体
agent-chat ListSparkle 具备工具调用能力的智能代理
工作流
workflow Logic 可视化多步骤自动化流程
1.2 如何选择应用类型?
新手推荐路线:
刚入门,想快速体验?→ 聊天助手(Chat) 需要单次文本处理?→ 文本生成(Completion) 想让 AI 自主使用工具?→ Agent 智能体(Agent Chat) 需要复杂多步骤逻辑?→ 工作流(Workflow) 需要工作流 + 对话结合?→ 高级聊天(Advanced Chat)
一句话总结:
- 聊天助手是最简单的起点,适合 80% 的入门场景
- 文本生成适合不需要多轮对话的一次性任务
- Agent 让 AI 拥有“手脚”,可以调用搜索、代码执行等工具
- 工作流和高级聊天面向需要精细控制的复杂场景
本篇我们从最简单的聊天助手(Chat)开始。
2.1 进入应用创建页面
登录 Dify 控制台后,点击首页的 “创建空白应用” 按钮,会弹出应用创建对话框。
在创建对话框中,你需要填写以下信息:
在后端,创建应用的请求会发送到 POST /console/api/apps 接口(api/controllers/console/app/app.py),核心参数结构如下:
class CreateAppPayload(BaseModel):
name: str # 应用名称 description: str | None # 应用描述(最多 400 字) mode: Literal[ # 应用类型 "chat", "agent-chat", "advanced-chat", "workflow", "completion" ] icon_type: IconType | None # 图标类型:IMAGE / EMOJI / LINK icon: str | None # 图标值 icon_background: str | None # 图标背景色
创建完成后,Dify 会自动跳转到应用编排页面 – 这是你调教 AI 助手的主战场。
2.2 应用编排页面布局
应用编排页面分为三个核心区域:
┌────────────────────────────────────────────────┐ │ 顶部导航栏 │ ├──────────────────┬─────────────────────────────┤ │ │ │ │ 左侧配置区 │ 右侧调试面板 │ │ │ │ │ · 模型选择 │ · 对话测试窗口 │ │ · 系统提示词 │ · 输入变量填写 │ │ · 变量设置 │ · 实时响应预览 │ │ · 上下文设置 │ │ │ · 对话开场白 │ │ │ │ │ ├──────────────────┴─────────────────────────────┤ │ 底部:发布 / 保存 / 恢复 │ └────────────────────────────────────────────────┘
- 左侧配置区:设置模型、编写 Prompt、定义变量、关联知识库
- 右侧调试面板:实时测试对话效果,无需发布即可验证
- 底部操作栏:发布应用、恢复到已发布版本
2.3 选择 AI 模型
在配置区顶部,点击模型选择器,选择你在上一篇中配置好的模型。推荐选择:
选择模型后,Dify 会将模型信息保存到 AppModelConfig 的 model 字段中,结构如下:
{ “provider”: “openai”, “name”: “gpt-4o”, “mode”: “chat”, “completion_params”: {} }
Prompt(提示词)是 AI 应用的灵魂。同样的模型,不同的 Prompt 可以产出天壤之别的效果。Dify 提供了两种 Prompt 编排模式。
3.1 简单模式 vs 高级模式
Dify 的 Prompt 配置在后端通过 prompt_type 字段区分(api/models/model.py 中的 AppModelConfig):
prompt_type 值 说明
简单模式
“simple” 只需写一段系统提示词,Dify 自动处理上下文拼接
高级模式
“advanced” 可以自定义多条消息模板(system/user/assistant 角色)
新手建议使用简单模式,它足以应对大多数场景。
3.2 编写系统提示词(Pre-Prompt)
系统提示词存储在 AppModelConfig 的 pre_prompt 字段中,支持使用 {{变量名}} 语法插入动态变量。
在前端,Prompt 编辑器组件(web/app/components/base/prompt-editor/index.tsx)提供了富文本编辑体验,支持以下内容块:
- 变量块:插入用户输入变量,如
{{query}} - 上下文块:插入知识库检索结果
{{#context#}} - 历史块:插入对话历史
{{#histories#}} - 工具块:插入外部工具返回值
一个优秀的系统提示词应包含以下要素:
1. 角色定义 – 告诉 AI 它是谁
- 能力边界 – 明确 AI 能做什么、不能做什么
- 输出格式 – 规定回答的结构和风格
- 约束条件 – 设定行为准则和限制 下面是一个实用的“AI 写作助手”系统提示词:
3.3 实例:AI 写作助手的 Prompt
你是一位专业的中文写作助手,擅长帮助用户创作各类文本内容。
你的能力
- 公众号文章、博客、产品文案的撰写和润色
- 根据用户提供的主题和要求生成结构化的文章大纲
- 改写、续写、缩写文本
- 调整文风:正式/轻松/学术/营销等
工作方式
- 先确认用户的写作需求(主题、目标读者、文风、字数要求)
- 如果用户没有明确要求,主动询问关键信息
- 先提供大纲或思路,得到确认后再输出完整内容
- 每次输出后主动提供修改建议
输出要求
- 使用地道的中文表达,避免翻译腔
- 段落清晰,逻辑通顺
- 适当使用小标题、列表等排版元素
- 根据写作类型({{writing_type}})调整风格
限制
- 不编造事实数据,不确定的内容会标注
- 不输出违规内容
注意上面使用了
{{writing_type}}变量 – 接下来我们看如何定义变量。3.4 使用变量让 Prompt 更灵活
变量让同一个应用可以处理不同的场景。在 Dify 中,变量定义存储在
AppModelConfig的user_input_form字段中。变量命名规则(来自
api/core/prompt/utils/prompt_template_parser.py):- 最长 16 个字符
- 仅支持字母、数字、下划线
- 必须以字母或下划线开头
变量类型:
string 短文本输入框 适合简短内容,如标题、关键词
paragraph 多行文本框 适合长文本,如原文、需求描述
select 下拉选择器 提供预设选项供用户选择
number 数字输入框 适合数量、长度等数字参数
为“AI 写作助手”添加变量:
writing_type 写作类型 select 是 选项:公众号文章 / 博客 / 产品文案 / 邮件
target_audience 目标读者 string 否 如:技术开发者、产品经理
word_count 目标字数 number 否 期望的文章字数
配置变量后,用户在使用应用时,会先看到变量输入表单。填写后,变量值会被自动注入到系统提示词的 {{变量名}} 位置。
3.5 设置对话开场白
对话开场白是用户进入聊天界面后 AI 发送的第一条消息。好的开场白能引导用户快速开始使用。
你好!我是你的 AI 写作助手 📝
我可以帮你:
- 撰写公众号文章、博客、产品文案
- 润色和改写已有内容
- 生成文章大纲和思路
请告诉我你想写什么?或者先选择上方的写作类型开始吧!
你还可以配置建议问题(Suggested Questions),它们会以可点击的按钮形式展示在开场白下方:
- “帮我写一篇关于 AI 的公众号文章”
- “润色一下这段产品介绍”
- “帮我生成一个技术博客的大纲”
选好模型、写好 Prompt 后,还有一组关键参数直接影响 AI 的输出质量。在模型选择器旁边点击参数设置图标,可以调整以下参数。
4.1 核心参数详解
这些参数在后端存储于 AppModelConfig.model 的 completion_params 字段中,前端通过 ModelParameterModal 组件(web/app/components/header/account-setting/model-provider-page/model-parameter-modal/)渲染为滑块和输入框。
Temperature(温度)
Temperature 控制输出的随机性:
- 低温度(0.0 ~ 0.3):输出更确定、更一致。适合事实问答、代码生成、数据提取
- 中温度(0.4 ~ 0.7):平衡创造性和准确性。适合日常对话、文章写作
- 高温度(0.8 ~ 2.0):输出更随机、更有创意。适合头脑风暴、创意写作
Temperature = 0.1 → "北京是中国的首都。" Temperature = 0.7 → "北京是中国的首都,也是一座融合古今的魅力之都。" Temperature = 1.5 → "北京,这座承载千年文明的古都,在现代化的浪潮中绽放出别样的光彩..."
Top P(核采样)
Top P 限制模型从概率最高的前 P% 的 token 中采样:
- Top P = 0.1:只从概率最高的 10% token 中选择,输出非常集中
- Top P = 0.9:从概率最高的 90% token 中选择,保持一定多样性
建议:Temperature 和 Top P 通常调一个就行。如果调了 Temperature,Top P 保持默认 0.9;反之亦然。
Max Tokens(最大生成长度)
Max Tokens 限制单次回复的最大 token 数。1 个中文字大约对应 1.5 ~ 2 个 token。
- 简短回答:512 ~ 1024
- 普通对话:2048 ~ 4096
- 长文写作:4096 ~ 8192
注意:设置过大不会浪费费用(按实际生成量计费),但设置过小会导致回答被截断。
Presence Penalty(存在惩罚)
对已出现过的 token 施加惩罚,鼓励模型谈论新话题:
- 正值:减少重复,倾向引入新内容
- 负值:允许更多重复
- 推荐值:0.0 ~ 0.6
Frequency Penalty(频率惩罚)
根据 token 出现的频率施加惩罚,频率越高惩罚越大:
- 正值:抑制高频词重复
- 推荐值:0.0 ~ 0.5
4.2 参数调优速查表
不同场景下的推荐参数组合:
核心原则:需要准确性的任务降低 Temperature,需要创造性的任务提高 Temperature。
配置完成后,不要急着发布 – 先用右侧的调试面板验证效果。
5.1 调试面板的工作原理
调试面板是 Dify 应用开发的核心工具。当你在调试面板发送消息时,请求会通过 POST /console/api/apps/
接口发送(api/controllers/console/app/completion.py),请求标记为 InvokeFrom.DEBUGGER,与正式发布的应用使用相同的模型调用链路,但允许实时覆盖配置。
这意味着你在调试面板中看到的效果,和用户最终使用时的效果一致。
5.2 调试技巧
技巧一:对比不同 Prompt
在左侧修改系统提示词后,调试面板会自动使用新配置。通过对比不同 Prompt 下的响应,快速找到最优方案。
技巧二:多模型对比
Dify 支持同时使用多个模型进行调试。在调试面板顶部开启"多模型调试",最多可同时对比 4 个模型的输出效果:
┌─────────────────┬─────────────────┐ │ GPT-4o │ Claude 3.5 │ │ 响应内容... │ 响应内容... │ ├─────────────────┼─────────────────┤ │ DeepSeek-V3 │ Qwen-Max │ │ 响应内容... │ 响应内容... │ └─────────────────┴─────────────────┘
这个功能对于选择最终模型非常有用。
技巧三:检查变量替换
如果配置了变量,在调试面板顶部会出现变量输入区域。填入测试值后发送消息,可以验证变量是否正确注入到 Prompt 中。
技巧四:清除对话历史
点击调试面板的刷新按钮可以清除当前对话历史,从零开始测试。多轮对话中,历史消息会影响 AI 的回答,清除历史可以排除干扰。
5.3 响应模式选择
Dify 支持两种响应模式:
response_mode: “streaming” 逐字显示,类似打字机效果 对话场景,用户体验好
阻塞输出
response_mode: “blocking” 等待完整生成后一次性返回 程序集成,处理完整响应
调试面板默认使用流式输出,让你可以实时观察模型的生成过程。
测试满意后,就可以发布应用让其他人使用了。
6.1 发布应用
点击页面右上角的 “发布” 按钮(快捷键 Ctrl + Shift + P),应用就会生效。
发布后,Dify 会显示以下状态信息(前端由 AppPublisher 组件渲染,web/app/components/app/app-publisher/index.tsx):
- 已发布:显示最近发布时间
- 草稿未发布:修改后尚未发布的状态
- 恢复:可以恢复到上次发布的版本
重要:每次修改 Prompt 或参数后,都需要点击"发布"才能让变更生效。调试面板的修改不会自动发布。
6.2 获取访问链接
发布后,你可以通过多种方式让用户访问你的应用:
方式一:WebApp 链接
Dify 为每个应用自动生成一个独立的 Web 应用页面。在后端,每个应用对应一个 Site 记录(api/models/model.py),通过 access_token 生成唯一 URL:
https://your-dify-domain/chat/{access_token}
用户打开链接即可直接使用,无需登录 Dify 控制台。
方式二:嵌入到你的网站
点击"嵌入到网站",Dify 提供 iframe 嵌入代码,你可以把聊天窗口集成到自己的网站中。
方式三:API 调用
点击"访问 API 参考",可以查看完整的 API 文档。这将是下一篇教程的重点内容。
6.3 WebApp 配置选项
在应用概览页面,你可以进一步自定义 WebApp 的外观和行为:
现在让我们动手,把前面学到的知识串联起来,完整创建一个 AI 写作助手。
Step 1:创建应用
- 进入 Dify 控制台首页
- 点击 “创建空白应用”
- 选择应用类型:聊天助手
- 填写名称:
AI 写作助手 - 填写描述:
专业的中文写作辅助工具,支持公众号文章、博客、产品文案等多种文体 - 选择图标:📝
- 点击 “创建”
Step 2:配置模型
- 在编排页面顶部,点击模型选择器
- 选择一个适合写作的模型(推荐 GPT-4o 或 DeepSeek-V3)
- 点击模型旁的参数设置图标
- 设置参数:
- Temperature: 0.7(平衡创造性和准确性)
- Top P: 0.9
- Max Tokens: 4096(支持长文输出)
- Presence Penalty: 0.3(减少重复)
Step 3:编写系统提示词
在 “系统提示词” 输入框中,输入以下内容:
你是一位专业的中文写作助手,擅长帮助用户创作各类文本内容。
你的能力
- 公众号文章、博客、产品文案的撰写和润色
- 根据用户提供的主题和要求生成结构化的文章大纲
- 改写、续写、缩写文本
- 调整文风:正式/轻松/学术/营销等
工作方式
- 先确认用户的写作需求(主题、目标读者、文风、字数要求)
- 如果用户没有明确要求,主动询问关键信息
- 先提供大纲或思路,得到确认后再输出完整内容
- 每次输出后主动提供修改建议
输出要求
- 使用地道的中文表达,避免翻译腔
- 段落清晰,逻辑通顺
- 适当使用小标题、列表等排版元素
- 根据写作类型({{writing_type}})调整风格
限制
- 不编造事实数据,不确定的内容会标注
- 不输出违规内容
Step 4:添加变量
在 “开场白” 输入框中输入:- 在编排页面找到 “变量” 区域
- 添加一个 select 类型变量:
- 变量名:
writing_type - 显示名:写作类型
- 选项:
公众号文章、技术博客、产品文案、商务邮件、学术报告 - 必填:是
- 变量名:
Step 5:设置对话开场白
你好!我是你的 AI 写作助手
我可以帮你:
- 撰写公众号文章、博客、产品文案
- 润色和改写已有内容
- 生成文章大纲和思路
请先在上方选择写作类型,然后告诉我你想写什么吧!
添加建议问题:
- “帮我写一篇关于人工智能的公众号文章”
- “润色一下这段产品介绍”
- “帮我生成一个技术博客的大纲”
Step 6:调试测试
- 在右侧调试面板,先选择写作类型变量值(如“公众号文章”)
- 发送测试消息:
帮我写一篇关于 Dify 平台的入门介绍文章,1500 字左右 - 观察 AI 的响应:
- 是否先询问了关键信息或直接提供了大纲?
- 输出格式是否清晰?
- 文风是否符合公众号风格?
- 如果不满意,调整 Prompt 或参数后重新测试
- 尝试切换不同的写作类型,验证变量是否正确生效
Step 7:发布上线
- 测试满意后,点击右上角 “发布” 按钮
- 在弹出面板中确认发布
- 点击 “运行应用” 获取 WebApp 链接
- 打开链接,以最终用户的视角体验你的 AI 写作助手
创建完第一个应用后,尝试以下实验来提升你的 Prompt 工程技能:
实验一:角色定义的影响
修改系统提示词的角色定义部分,对比不同角色设定下的输出差异:
- 通用写手:
你是一位写作助手 - 资深编辑:
你是一位有 10 年经验的公众号资深编辑,运营过多个百万粉丝账号 - 文案大师:
你是一位顶级广告文案创意总监,擅长用精炼的语言打动人心
同一个问题,三种角色的输出风格会截然不同。
实验二:输出格式的约束
在 Prompt 中添加明确的输出格式要求:
输出格式 每篇文章必须包含:
- 吸引眼球的标题(不超过 20 字)
- 导语(50-100 字,引起读者兴趣)
- 正文(分 3-5 个小节,每节有小标题)
- 结尾(总结 + 行动号召) 使用同一个 Prompt 和问题,分别设置 Temperature 为 0.1、0.7、1.3,对比:
实验三:Temperature 对比
- 0.1:输出稳定,多次测试结果几乎相同
- 0.7:每次略有不同,但保持合理
- 1.3:每次差异较大,偶尔会出现意想不到的创意表达
本篇我们完成了 Dify 入门模块的核心实操 – 创建第一个 AI 聊天助手。你学会了:
- 五种应用类型的区别和选择方法
- Prompt 编排的结构化技巧(角色定义、能力边界、输出格式、约束条件)
- 变量系统让同一个应用适配多种场景
- 模型参数调优的核心原理(Temperature、Top P、Max Tokens)
- 调试面板的使用技巧,包括多模型对比
- 发布和分享应用的三种方式
到这里,你已经可以独立创建并发布一个实用的 AI 应用了。但目前我们的应用只能通过 Dify 的 WebApp 访问 – 如果你想把 AI 能力集成到自己的产品中怎么办?
下一篇:《通过 API 集成 Dify 到你的产品中》 将带你掌握 Dify 的 API 体系,学会用代码调用你创建的 AI 应用,真正实现 AI 能力的产品化落地。
今日互动:你创建的第一个 AI 聊天助手是做什么用的?在评论区分享你的 Prompt 设计,一起交流优化技巧!对 Prompt 工程有疑问的同学也欢迎留言,我会在后续文章中展开讲解。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/250861.html