Prompt Template
使用 Prompt Template 流程组件来构造 Prompt,把指令和上下文独立于聊天消息、文件上传等其他输入之外单独组织起来。
Prompt 本质上是一种结构化输入,可以结合:
- 自然语言说明
- 固定值
- 动态变量
它常用于:
- 为用户问题定义一致的提示结构
- 要求 LLM 按指定格式输出,例如 JSON 或结构化文本
- 指定角色设定,例如
You are a helpful assistant - 让 LLM 能够引用聊天记忆
Prompt Template 组件还可以把变量化后的提示传递给流程中的其他组件。
Prompt Template 参数
| 名称 | 显示名 | 说明 |
|---|---|---|
| template | Template | 输入参数。通过大括号声明动态变量,例如 {VARIABLE_NAME}。如果你的模板同时包含字面文本和变量,你可以使用双层花括号来转义字面花括号,从而避免该文本被解释为变量。
例如: |
| prompt | Prompt Message | 输出参数。由 build_prompt 方法生成的提示消息。 |
在 Prompt 中定义变量
在 Prompt Template 中使用变量时,组件会根据模板中的变量动态增加输入字段,使流程可以从其他组件、SkillFlaw 全局变量或固定值中获取这些变量的定义。
例如,配合 Message History 组件,你可以使用 {memory} 变量把聊天历史注入提示词。
不过 Agent 组件本身默认就带有聊天记忆功能。
更多说明请参阅 Memory management options。
以下步骤演示如何给 Prompt Template 添加变量:
- 基于 Basic prompting 模板创建一个流程
- 点击 Prompt Template 组件,在 Template 字段中加入变量
- 变量通过大括号声明,例如
{context}、{user_question}
示例:
_10Given the context:_10_10{context}_10_10Answer the question:_10_10{user_question}
如果你的模板同时包含字面文本和变量,你可以使用双层花括号来转义字面花括号,从而避免该文本被解释为变量。
例如:This is a template with {{literal text in curly braces}} and a {variable}。
- 点击 Check & Save 保存模板
- 保存后,组件会为每个变量自动生成一个新字段
- 你可以通过以下方式为这些变量提供值:
- 连接其他组件输出
- 使用 SkillFlaw 全局变量
- 直接手动填写固定值
你可以定义任意数量的变量,例如:
{references}{instructions}
并通过 Text Input、URL、Read File 等组件把内容传给它们。