引言:为什么需要结构化 Prompt?
对于刚接触 Prompt 工程的新手来说,最常遇到的问题就是:写了一大段描述,AI 却给出了答非所问的结果。这是因为非结构化的指令缺乏明确的逻辑和重点。为了解决这个问题,各种 Prompt 框架应运而生,其中 RISEN 框架以其简洁、全面的特点,非常适合入门者理解和实战。
RISEN 框架将 Prompt 拆解为 6 个核心模块:Role(角色)、Input(输入)、Steps(步骤)、Expectation(期望)、Narrowing(限定)。通过填充这些模块,你可以像搭积木一样构建出清晰、可控的指令。
RISEN 框架详解
1. 模块拆解
| 模块 | 英文 | 作用 | 示例 |
|---|---|---|---|
| R | Role | 定义 AI 扮演的角色 | 你是一位资深 Python 开发者 |
| I | Input | 提供背景信息或原始数据 | 用户输入一段代码:def foo(): pass |
| S | Steps | 明确执行步骤顺序 | 1. 分析代码 2. 指出问题 3. 给出优化建议 |
| E | Expectation | 描述预期输出格式 | 用 Markdown 表格输出,包含“问题”和“建议”两列 |
| N | Narrowing | 增加约束条件 | 只关注性能问题,忽略代码风格 |
2. 实战案例:生成产品描述
假设你需要为一家咖啡店生成产品描述。使用 RISEN 框架的完整 Prompt 如下:
# Role
你是一位专业的咖啡产品文案撰写师,擅长用温暖、诱人的语言描述咖啡风味。
Input
咖啡豆产地:埃塞俄比亚耶加雪菲
烘焙程度:浅度烘焙
风味特征:茉莉花香、柠檬酸、蜂蜜甜感
Steps
- 首先介绍产地背景和烘焙程度。
- 然后详细描述风味特征。
- 最后写一段 50 字以内的购买号召。
Expectation
输出格式为三段式结构,每段用空行隔开,语言风格为中文自然叙述,避免使用术语解释。
Narrowing
- 禁止出现“研磨”、“冲泡参数”等专业词汇。
- 全文总字数控制在 150 字以内。
3. 进阶技巧:参数化输入
对于需要批量生成内容的场景,可以将 Input 模块参数化。例如,使用 JSON 格式传递变量:
{
"coffee": {
"origin": "埃塞俄比亚耶加雪菲",
"roast": "浅度烘焙",
"flavor": ["茉莉花香", "柠檬酸", "蜂蜜甜感"]
}
}
然后在 Prompt 中引用这些字段。这能极大提升复杂场景下的可控性。
RISEN 与其他框架的对比
| 框架 | 核心模块数 | 适用场景 | 学习曲线 |
|---|---|---|---|
| RISEN | 5 | 生成类、分析类任务 | 低 |
| CO-STAR | 6 | 多轮对话、复杂推理 | 中 |
| CRISPE | 5 | 创意写作 | 低 |
RISEN 的优势在于其 Steps(步骤) 模块,它强制要求用户思考任务执行的顺序,从而减少 AI 的逻辑跳跃。
常见问题与解决
- 问题:AI 忽略了我指定的 Steps。
- 问题:输出格式不符合 Expectation。
小结
RISEN 框架通过 Role、Input、Steps、Expectation、Narrowing 五个模块,帮助你将模糊的想法转化为精确的指令。对于入门读者,建议先从简单的生成任务(如写邮件、写摘要)开始练习,逐步熟悉每个模块的作用。当你能够熟练地将日常需求拆解为 RISEN 模板时,AI 的输出质量将会有质的飞跃。记住:好的 Prompt 不是写出来的,而是设计出来的。