znlgis 博客

GIS开发与技术分享

第三章:应用构建基础

3.1 应用概述

3.1.1 什么是 Dify 应用

在 Dify 中,一个”应用”是指基于大语言模型(如 GPT、Claude 等)构建的实际场景应用。它不仅包含了开发 AI 应用的工程范式,也包含了具体的交付物。

简而言之,一个 Dify 应用为开发者提供了:

封装友好的 API

开箱即用的 WebApp

易用的管理界面

你可以任选其中之一或全部,来支撑你的 AI 应用开发。这种灵活性使得 Dify 能够适应各种不同的开发场景和需求。

3.1.2 应用类型

Dify 提供了五种主要的应用类型,每种类型针对不同的使用场景:

应用类型 主要特点 适用场景
聊天助手 基于 LLM 的对话式交互 客服、咨询、日常助手
文本生成 面向单次文本生成任务 写作、翻译、摘要
Agent 智能任务分解和工具调用 复杂任务、自动化处理
对话流(Chatflow) 可视化多轮对话编排 复杂对话流程、业务流程
工作流(Workflow) 自动化批处理任务 数据处理、批量生成

3.1.3 应用类型对比

文本生成应用 vs 聊天助手

特性 文本生成应用 聊天助手
WebApp 界面 表单+结果式 聊天式
WebAPI 端点 completion-messages chat-messages
交互方式 一问一答 多轮对话
流式返回 支持 支持
上下文保存 当次 持续
用户输入表单 支持 支持
知识库与插件 支持 支持
AI 开场白 不支持 支持
典型场景 翻译、判断、索引 聊天、咨询

3.2 创建第一个应用

3.2.1 进入创建界面

登录 Dify 后,你会看到工作室(Studio)界面。这里展示了你创建的所有应用,也是创建新应用的入口。

创建应用的方式

  1. 创建空白应用
    • 点击”创建空白应用”按钮
    • 选择应用类型
    • 填写应用名称和描述
    • 从零开始配置
  2. 从模板创建
    • 进入”探索”页面
    • 浏览应用模板库
    • 选择感兴趣的模板
    • 添加到工作区并定制
  3. 导入 DSL 文件
    • 从其他来源获取 DSL 配置文件
    • 点击”导入 DSL 文件”
    • 上传文件完成导入

3.2.2 创建步骤详解

以创建聊天助手为例:

步骤一:选择应用类型 点击”创建空白应用”后,选择”聊天助手”类型。

步骤二:填写基本信息

步骤三:进入编排界面 创建完成后,自动进入应用编排界面。这里是配置应用的核心区域。

3.2.3 应用编排界面介绍

编排界面分为几个主要区域:

左侧配置区

右侧预览区

顶部操作栏

3.3 聊天助手应用

3.3.1 聊天助手的特点

聊天助手是最常用的应用类型,具有以下特点:

3.3.2 提示词配置

提示词(Prompt/Instructions)是定义 AI 行为的核心。一个好的提示词应该包含:

角色定义

你是一个专业的客户服务助手,代表[公司名称]为用户提供帮助。
你的职责是:
- 回答关于产品和服务的问题
- 帮助用户解决常见问题
- 引导用户到合适的服务渠道

行为约束

请遵循以下规则:
1. 始终保持友好和专业的态度
2. 如果不确定答案,诚实地告知用户
3. 不要透露内部信息或公司机密
4. 对于超出能力范围的问题,建议用户联系人工客服

输出格式

回答时请注意:
- 使用简洁清晰的语言
- 如有多个步骤,使用编号列表
- 重要信息用粗体标注
- 每次回答控制在 200 字以内

3.3.3 变量配置

变量允许用户在对话开始前提供额外信息:

变量类型

变量配置示例

- 变量名: user_name
  显示名: 您的姓名
  类型: 文本输入
  必填: 
  默认值: ""
  
- 变量名: query_type
  显示名: 咨询类型
  类型: 选择器
  选项:
    - 产品咨询
    - 技术支持
    - 投诉建议
    - 其他

在提示词中使用变量

用户姓名是 ,咨询类型是 。
请根据用户的咨询类型提供针对性的帮助。

3.3.4 上下文配置

通过关联知识库,让 AI 能够基于你的专有数据回答问题:

配置步骤

  1. 点击”上下文”区域
  2. 选择已创建的知识库
  3. 配置检索参数:
    • Top K:返回的相关片段数量
    • Score 阈值:相关性得分门槛

提示词中引用上下文

以下是与用户问题相关的参考资料:


请基于以上资料回答用户的问题。如果资料中没有相关信息,请诚实告知。

3.3.5 开场白配置

开场白让用户了解 AI 助手的能力:

配置项

示例配置

开场白:
"您好!我是[产品名称]的智能助手小D。我可以帮您:
- 了解产品功能和使用方法
- 解答常见问题
- 指导操作步骤

请问有什么可以帮助您的?"

建议问题:
- "如何创建我的第一个应用?"
- "知识库有什么用?"
- "如何发布应用?"

3.3.6 模型配置

选择合适的模型并配置参数:

模型选择

关键参数

temperature: 0.7  # 创造性程度(0-2)
max_tokens: 2048  # 最大输出长度
top_p: 0.9       # 核采样参数
presence_penalty: 0  # 话题新鲜度惩罚
frequency_penalty: 0  # 重复惩罚

参数调优建议

3.4 文本生成应用

3.4.1 文本生成应用的特点

文本生成应用适合单次任务处理:

3.4.2 创建文本生成应用

以翻译助手为例:

步骤一:配置变量

- 变量名: source_text
  显示名: 原文
  类型: 段落
  必填: 
  
- 变量名: target_language
  显示名: 目标语言
  类型: 选择器
  选项:
    - 中文
    - 英文
    - 日文
    - 韩文

步骤二:编写提示词

你是一个专业的翻译助手。请将以下文本翻译成:

原文:


翻译要求:
1. 保持原文的语气和风格
2. 使用自然流畅的目标语言表达
3. 专业术语需要准确翻译
4. 如有歧义,选择最常用的译法

步骤三:配置输出

输出变量: translation
输出类型: 文本

3.4.3 高级配置

前置处理: 在发送给模型之前,可以对输入进行处理:

后置处理: 对模型输出进行处理:

3.5 Agent 智能助手

3.5.1 Agent 的概念

Agent(智能代理)是一种能够自主完成复杂任务的 AI 应用。它具有以下能力:

3.5.2 创建 Agent 应用

步骤一:选择 Agent 类型 在创建应用时选择”Agent”类型。

步骤二:选择推理模型 Agent 的任务完成能力取决于模型的推理能力。推荐选择:

步骤三:编写 Agent 指令

你是一个数据分析助手,帮助用户分析数据并生成报告。

你的工作流程:
1. 理解用户的分析需求
2. 使用搜索工具查找相关数据
3. 使用代码执行工具进行计算
4. 使用图表工具生成可视化
5. 整理分析结果并给出建议

可用工具:
- 网络搜索:获取最新数据和信息
- 代码执行:运行 Python 代码进行计算
- 图表生成:创建数据可视化图表

3.5.3 配置 Agent 工具

添加工具

  1. 进入”工具”配置区
  2. 选择需要的工具
  3. 配置工具参数

常用工具类型

工具 用途
网络搜索 获取实时信息
代码执行 运行代码进行计算
知识库检索 查询内部知识
HTTP 请求 调用外部 API
图像生成 创建图片

3.5.4 Agent 推理模式

Dify 支持两种推理模式:

Function Calling 模式

ReAct 模式

模式选择建议

3.5.5 Agent 调试

调试面板

常见问题

  1. 工具调用失败:检查工具配置和权限
  2. 无限循环:增加终止条件或限制迭代次数
  3. 结果不准确:优化指令提示词

3.6 应用配置与调试

3.6.1 调试技巧

预览测试

日志分析

A/B 测试

3.6.2 常见调试问题

问题一:回答不准确

原因:
- 提示词不够明确
- 缺少必要的上下文
- 模型能力限制

解决方案:
- 在提示词中提供更多示例
- 增加知识库支持
- 更换更强的模型

问题二:回答过长/过短

原因:
- max_tokens 设置不当
- 提示词中没有长度要求

解决方案:
- 调整 max_tokens 参数
- 在提示词中明确输出长度要求

问题三:响应缓慢

原因:
- 模型处理时间长
- 网络延迟
- 工具调用耗时

解决方案:
- 使用更快的模型
- 优化提示词减少 Token
- 启用流式输出

3.6.3 发布应用

发布步骤

  1. 确认所有配置正确
  2. 点击”发布”按钮
  3. 填写版本说明
  4. 确认发布

发布后可获得

3.6.4 版本管理

版本功能

最佳实践

3.7 实战案例:客服助手

3.7.1 需求分析

创建一个产品客服助手,要求:

3.7.2 实现步骤

步骤一:创建知识库 上传产品文档、FAQ、使用手册等。

步骤二:创建聊天助手 选择聊天助手类型,命名为”产品客服小助手”。

步骤三:配置提示词

## 角色
你是[产品名称]的官方客服助手,名叫小D。

## 职责
1. 回答用户关于产品功能和使用的问题
2. 帮助用户解决常见问题
3. 收集用户的意见和建议
4. 引导用户到合适的服务渠道

## 知识来源
请基于提供的知识库内容回答问题。知识库包含:
- 产品功能说明
- 使用教程
- 常见问题解答

## 行为准则
1. 保持友好、专业的态度
2. 回答要准确、简洁
3. 不确定时诚实告知,不要编造信息
4. 对于无法解决的问题,建议联系人工客服(电话:400-xxx-xxxx)

## 输出格式
- 使用简洁的语言
- 重要步骤使用编号
- 关键信息适当强调

步骤四:配置变量

- 用户类型(可选):新用户 / 老用户
- 咨询产品(可选):产品A / 产品B / 产品C

步骤五:关联知识库 选择产品知识库,设置 Top K 为 5。

步骤六:配置开场白

您好!我是产品客服小助手小D 🙋

我可以帮您:
📖 了解产品功能
🔧 解决使用问题
💡 提供操作指导

请问有什么可以帮您的呢?

步骤七:测试和发布 进行充分测试后发布应用。

3.8 本章小结

通过本章的学习,你应该掌握:

  1. 应用类型:理解五种应用类型的特点和适用场景
  2. 创建流程:掌握创建应用的完整流程
  3. 核心配置:熟练配置提示词、变量、上下文
  4. Agent 开发:了解智能代理的工作原理
  5. 调试技巧:掌握应用调试和优化方法

3.9 思考与练习

  1. 实践练习
    • 创建一个翻译助手应用
    • 创建一个代码解释器应用
    • 尝试创建一个简单的 Agent
  2. 思考题
    • 如何设计一个高质量的提示词?
    • 什么时候应该使用 Agent 而不是普通聊天助手?
    • 如何评估应用的效果质量?
  3. 扩展学习
    • 研究提示词工程的最佳实践
    • 了解 ReAct 框架的工作原理
    • 探索更多应用模板

下一章预告:第四章将深入介绍知识库管理,包括文档上传、分段策略、检索配置等核心功能。