Dify 系列教程 | 第 4 篇:5 分钟创建你的第一个 AI 聊天助手

Dify 系列教程 | 第 4 篇:5 分钟创建你的第一个 AI 聊天助手svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



 
  
    
     
      
     
  
    
    

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 智能体 

前端通过 AppModeEnumweb/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 控制台后,点击首页的 “创建空白应用” 按钮,会弹出应用创建对话框。

在创建对话框中,你需要填写以下信息:

字段 说明 示例 应用类型 选择五种类型之一 聊天助手 应用名称 1 个字符以上 AI 写作助手 应用描述 可选,最多 400 字 一个专业的中文写作辅助工具 图标 选择 Emoji 或上传图片 📝

在后端,创建应用的请求会发送到 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 模型

在配置区顶部,点击模型选择器,选择你在上一篇中配置好的模型。推荐选择:

模型 优势 适用场景 GPT-4o 综合能力强,支持多模态 通用对话、复杂推理 GPT-4o-mini 速度快、成本低 日常对话、简单任务 Claude 3.5 Sonnet 长文本处理优秀 长文写作、文档分析 DeepSeek-V3 中文能力强、性价比高 中文写作、编程辅助 Qwen-Max 中文理解优秀 中文场景首选

选择模型后,Dify 会将模型信息保存到 AppModelConfigmodel 字段中,结构如下:

{ “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)

系统提示词存储在 AppModelConfigpre_prompt 字段中,支持使用 {{变量名}} 语法插入动态变量。

在前端,Prompt 编辑器组件(web/app/components/base/prompt-editor/index.tsx)提供了富文本编辑体验,支持以下内容块:

  • 变量块:插入用户输入变量,如 {{query}}
  • 上下文块:插入知识库检索结果 {{#context#}}
  • 历史块:插入对话历史 {{#histories#}}
  • 工具块:插入外部工具返回值

一个优秀的系统提示词应包含以下要素

1. 角色定义 – 告诉 AI 它是谁

  1. 能力边界 – 明确 AI 能做什么、不能做什么
  2. 输出格式 – 规定回答的结构和风格
  3. 约束条件 – 设定行为准则和限制 下面是一个实用的“AI 写作助手”系统提示词:

    3.3 实例:AI 写作助手的 Prompt

    你是一位专业的中文写作助手,擅长帮助用户创作各类文本内容。

你的能力

  • 公众号文章、博客、产品文案的撰写和润色
  • 根据用户提供的主题和要求生成结构化的文章大纲
  • 改写、续写、缩写文本
  • 调整文风:正式/轻松/学术/营销等

工作方式

  1. 先确认用户的写作需求(主题、目标读者、文风、字数要求)
  2. 如果用户没有明确要求,主动询问关键信息
  3. 先提供大纲或思路,得到确认后再输出完整内容
  4. 每次输出后主动提供修改建议

输出要求

  • 使用地道的中文表达,避免翻译腔
  • 段落清晰,逻辑通顺
  • 适当使用小标题、列表等排版元素
  • 根据写作类型({{writing_type}})调整风格

限制

  • 不编造事实数据,不确定的内容会标注
  • 不输出违规内容

    注意上面使用了 {{writing_type}} 变量 – 接下来我们看如何定义变量。

    3.4 使用变量让 Prompt 更灵活

    变量让同一个应用可以处理不同的场景。在 Dify 中,变量定义存储在 AppModelConfiguser_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.modelcompletion_params 字段中,前端通过 ModelParameterModal 组件(web/app/components/header/account-setting/model-provider-page/model-parameter-modal/)渲染为滑块和输入框。

Temperature(温度)
属性 值 类型 float 范围 0.0 ~ 2.0 默认值 0.7(OpenAI)

Temperature 控制输出的随机性

  • 低温度(0.0 ~ 0.3):输出更确定、更一致。适合事实问答、代码生成、数据提取
  • 中温度(0.4 ~ 0.7):平衡创造性和准确性。适合日常对话、文章写作
  • 高温度(0.8 ~ 2.0):输出更随机、更有创意。适合头脑风暴、创意写作
Temperature = 0.1 → "北京是中国的首都。" Temperature = 0.7 → "北京是中国的首都,也是一座融合古今的魅力之都。" Temperature = 1.5 → "北京,这座承载千年文明的古都,在现代化的浪潮中绽放出别样的光彩..." 
Top P(核采样)
属性 值 类型 float 范围 0.0 ~ 1.0 默认值 0.9

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(最大生成长度)
属性 值 类型 int 范围 1 ~ 模型上限 默认值 因模型而异

Max Tokens 限制单次回复的最大 token 数。1 个中文字大约对应 1.5 ~ 2 个 token。

  • 简短回答:512 ~ 1024
  • 普通对话:2048 ~ 4096
  • 长文写作:4096 ~ 8192

注意:设置过大不会浪费费用(按实际生成量计费),但设置过小会导致回答被截断。

Presence Penalty(存在惩罚)
属性 值 类型 float 范围 -2.0 ~ 2.0 默认值 0.0

对已出现过的 token 施加惩罚,鼓励模型谈论新话题:

  • 正值:减少重复,倾向引入新内容
  • 负值:允许更多重复
  • 推荐值:0.0 ~ 0.6
Frequency Penalty(频率惩罚)
属性 值 类型 float 范围 -2.0 ~ 2.0 默认值 0.0

根据 token 出现的频率施加惩罚,频率越高惩罚越大:

  • 正值:抑制高频词重复
  • 推荐值:0.0 ~ 0.5

4.2 参数调优速查表

不同场景下的推荐参数组合:

场景 Temperature Top P Max Tokens Presence Penalty 客服问答 0.1 ~ 0.3 0.9 1024 0.0 日常对话 0.5 ~ 0.7 0.9 2048 0.1 文章写作 0.7 ~ 0.9 0.9 4096 0.3 创意头脑风暴 1.0 ~ 1.3 0.95 2048 0.5 代码生成 0.0 ~ 0.2 0.95 4096 0.0 数据提取 0.0 1.0 2048 0.0

核心原则:需要准确性的任务降低 Temperature,需要创造性的任务提高 Temperature。


配置完成后,不要急着发布 – 先用右侧的调试面板验证效果。

5.1 调试面板的工作原理

调试面板是 Dify 应用开发的核心工具。当你在调试面板发送消息时,请求会通过 POST /console/api/apps/ /chat-messages 接口发送(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 的外观和行为:

配置项 说明 标题 WebApp 页面显示的标题 描述 对应用的简短介绍 语言 WebApp 界面语言 主题色 聊天界面的品牌色 版权信息 页面底部显示的版权声明 隐私政策 隐私政策链接 自定义免责声明 最多 512 字的自定义声明 是否公开 Prompt 是否让用户看到系统提示词

现在让我们动手,把前面学到的知识串联起来,完整创建一个 AI 写作助手。

Step 1:创建应用

  1. 进入 Dify 控制台首页
  2. 点击 “创建空白应用”
  3. 选择应用类型:聊天助手
  4. 填写名称:AI 写作助手
  5. 填写描述:专业的中文写作辅助工具,支持公众号文章、博客、产品文案等多种文体
  6. 选择图标:📝
  7. 点击 “创建”

Step 2:配置模型

  1. 在编排页面顶部,点击模型选择器
  2. 选择一个适合写作的模型(推荐 GPT-4o 或 DeepSeek-V3)
  3. 点击模型旁的参数设置图标
  4. 设置参数:
    • Temperature: 0.7(平衡创造性和准确性)
    • Top P: 0.9
    • Max Tokens: 4096(支持长文输出)
    • Presence Penalty: 0.3(减少重复)

Step 3:编写系统提示词

在 “系统提示词” 输入框中,输入以下内容:

你是一位专业的中文写作助手,擅长帮助用户创作各类文本内容。

你的能力

  • 公众号文章、博客、产品文案的撰写和润色
  • 根据用户提供的主题和要求生成结构化的文章大纲
  • 改写、续写、缩写文本
  • 调整文风:正式/轻松/学术/营销等

工作方式

  1. 先确认用户的写作需求(主题、目标读者、文风、字数要求)
  2. 如果用户没有明确要求,主动询问关键信息
  3. 先提供大纲或思路,得到确认后再输出完整内容
  4. 每次输出后主动提供修改建议

输出要求

  • 使用地道的中文表达,避免翻译腔
  • 段落清晰,逻辑通顺
  • 适当使用小标题、列表等排版元素
  • 根据写作类型({{writing_type}})调整风格

限制

  • 不编造事实数据,不确定的内容会标注
  • 不输出违规内容

    Step 4:添加变量

    在 “开场白” 输入框中输入:
    1. 在编排页面找到 “变量” 区域
    2. 添加一个 select 类型变量:
      • 变量名:writing_type
      • 显示名:写作类型
      • 选项:公众号文章技术博客产品文案商务邮件学术报告
      • 必填:是

    Step 5:设置对话开场白

    你好!我是你的 AI 写作助手

我可以帮你:

  • 撰写公众号文章、博客、产品文案
  • 润色和改写已有内容
  • 生成文章大纲和思路

请先在上方选择写作类型,然后告诉我你想写什么吧!

添加建议问题:

  • “帮我写一篇关于人工智能的公众号文章”
  • “润色一下这段产品介绍”
  • “帮我生成一个技术博客的大纲”

Step 6:调试测试

  1. 在右侧调试面板,先选择写作类型变量值(如“公众号文章”)
  2. 发送测试消息:帮我写一篇关于 Dify 平台的入门介绍文章,1500 字左右
  3. 观察 AI 的响应:
    • 是否先询问了关键信息或直接提供了大纲?
    • 输出格式是否清晰?
    • 文风是否符合公众号风格?
  4. 如果不满意,调整 Prompt 或参数后重新测试
  5. 尝试切换不同的写作类型,验证变量是否正确生效

Step 7:发布上线

  1. 测试满意后,点击右上角 “发布” 按钮
  2. 在弹出面板中确认发布
  3. 点击 “运行应用” 获取 WebApp 链接
  4. 打开链接,以最终用户的视角体验你的 AI 写作助手

创建完第一个应用后,尝试以下实验来提升你的 Prompt 工程技能:

实验一:角色定义的影响

修改系统提示词的角色定义部分,对比不同角色设定下的输出差异:

  • 通用写手你是一位写作助手
  • 资深编辑你是一位有 10 年经验的公众号资深编辑,运营过多个百万粉丝账号
  • 文案大师你是一位顶级广告文案创意总监,擅长用精炼的语言打动人心

同一个问题,三种角色的输出风格会截然不同。

实验二:输出格式的约束

在 Prompt 中添加明确的输出格式要求:

 输出格式 每篇文章必须包含:

  1. 吸引眼球的标题(不超过 20 字)
  2. 导语(50-100 字,引起读者兴趣)
  3. 正文(分 3-5 个小节,每节有小标题)
  4. 结尾(总结 + 行动号召) 使用同一个 Prompt 和问题,分别设置 Temperature 为 0.1、0.7、1.3,对比:

    实验三:Temperature 对比

    • 0.1:输出稳定,多次测试结果几乎相同
    • 0.7:每次略有不同,但保持合理
    • 1.3:每次差异较大,偶尔会出现意想不到的创意表达

本篇我们完成了 Dify 入门模块的核心实操 – 创建第一个 AI 聊天助手。你学会了:

  1. 五种应用类型的区别和选择方法
  2. Prompt 编排的结构化技巧(角色定义、能力边界、输出格式、约束条件)
  3. 变量系统让同一个应用适配多种场景
  4. 模型参数调优的核心原理(Temperature、Top P、Max Tokens)
  5. 调试面板的使用技巧,包括多模型对比
  6. 发布和分享应用的三种方式

到这里,你已经可以独立创建并发布一个实用的 AI 应用了。但目前我们的应用只能通过 Dify 的 WebApp 访问 – 如果你想把 AI 能力集成到自己的产品中怎么办?

下一篇:《通过 API 集成 Dify 到你的产品中》 将带你掌握 Dify 的 API 体系,学会用代码调用你创建的 AI 应用,真正实现 AI 能力的产品化落地。


今日互动:你创建的第一个 AI 聊天助手是做什么用的?在评论区分享你的 Prompt 设计,一起交流优化技巧!对 Prompt 工程有疑问的同学也欢迎留言,我会在后续文章中展开讲解。

小讯
上一篇 2026-04-08 22:51
下一篇 2026-04-08 22:49

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/250861.html