1. Dify 角色有哪些?
Dify平台中定义了几种核心角色,用于构建AI应用的对话流程:
-
SYSTEM(系统):用于设置AI模型的整体行为指令、任务描述和限制条件。这些指令对用户不可见,但会指导AI如何处理和响应用户的输入。
-
USER(用户):代表最终用户的输入部分,在设计阶段可以预设示例用户消息,在应用运行时会被实际用户的输入所替代。
-
ASSISTANT(助手):代表AI助手的回复部分,可以预设AI的回复模板或示例回答,确保AI输出符合预期的格式和内容要求。
-
HUMAN(人类):在某些复杂应用场景中,用于表示可能参与对话的其他人类角色,允许模拟多人参与的对话场景。
-
FUNCTION(函数):在Agent类型应用中,表示可调用的工具或函数,AI可以决定何时调用这些函数来完成特定任务。
这些角色在Dify的对话设计界面中以不同的区块展示,开发者可以按照应用需求组织这些角色之间的交互顺序,构建出结构化的对话流程。通过这种角色划分,Dify实现了对复杂对话应用的直观设计和管理。
2. 在Dify中构建LLM组件的角色提示设计指南
角色提示模板设计核心原则
SYSTEM提示模板
- 设计目标:建立AI行为框架和响应规则
- 最佳实践:
- 简明定义AI的角色和任务范围
- 设定回复的结构和格式要求
- 添加必要的领域知识或背景信息
- 设置明确的约束条件和边界
- 关键特性:作为隐藏指令影响整个交互流程
USER提示模板
- 设计目标:创建用户输入接口和引导
- 最佳实践:
- 使用"在这里写你的提示词"作为默认占位符
- 可以添加简短的引导性说明
- 保持简洁开放以适应各类用户输入
- 在多轮对话中设置有引导性的问题框架
- 关键特性:运行时将被实际用户输入替代
ASSISTANT提示模板
- 设计目标:确保AI回复的一致性和专业性
- 最佳实践:
- 设计清晰的回复结构模板
- 包含必要的格式化元素
- 预设响应逻辑和关键短语
- 确保专业术语使用的一致性
- 关键特性:引导AI生成结构化输出
实用提示模板组合
- 基础型:简洁SYSTEM指令 + 默认USER输入框 + 基础ASSISTANT回复框架
- 对话型:情境SYSTEM背景 + 多个USER输入点 + 相应的ASSISTANT回复模板
- 专业服务型:详细SYSTEM专业指南 + 简洁USER需求输入框 + 结构化ASSISTANT分析模板
有效的提示模板设计让开发者能在不限定具体内容的情况下,控制AI的回复方式和输出质量,确保应用在面对不同用户需求时能保持稳定的表现和专业水准。
3. LLM组件中, SYSTEM 、USER、ASSISTANT 专业例子
医疗症状分析助手(现实版)
SYSTEM:
你是一位医学辅助诊断系统,根据用户描述的症状提供初步分析。遵循以下规则:
1. 分析用户描述的症状并列出可能的疾病方向(最多3个)
2. 建议可能需要的检查项目
3. 强调需要专业医生进一步评估
4. 格式:症状摘要、可能方向、建议检查、注意事项
5. 不提供具体治疗建议
USER:
[用户将在此输入症状描述]
ASSISTANT: //消息模版 + 变量
## 症状摘要
{根据用户输入总结主要症状}
## 可能方向分析
{列出最多3个可能的疾病方向及其特征}
## 建议检查
{列出相关检查项目}
## 注意事项
此分析仅供参考,不构成诊断。建议咨询专业医生进行全面评估。
- SYSTEM提供了整体指导原则
- USER部分只是一个占位符
- ASSISTANT部分是一个结构化模板,实际内容将基于用户的实际输入生成
LLM组件这样设计的意义在于:
- 为AI提供明确的角色和行为准则
- 预设响应的结构和格式,确保输出一致性
- 在不预知具体用户输入的情况下,仍能引导AI给出专业、规范的回应