Contents

AI大模型Prompt调优实战指南

前言

随着大语言模型(LLM)的普及,如何编写高质量的 Prompt 成为提升模型输出质量的关键。好的 Prompt 就像好的需求文档,能让 AI 准确理解你的意图并产出符合预期的结果。本文结合实际项目经验,系统总结 Prompt 调优的策略、技巧和框架,帮助你快速掌握与大模型高效沟通的方法。

核心调优策略

Prompt 调优可以从简单到复杂分为五个层次,建议按需递进使用:

层次 策略 适用场景 难度
基础 编写清晰的指令 所有场景
进阶 任务分解 复杂多步骤任务 ⭐⭐
进阶 给予思考时间 逻辑推理、分析决策 ⭐⭐
高级 外部工具增强 需要实时数据、专业领域知识 ⭐⭐⭐
高级 额外推理输出 需要高准确度的结构化输出 ⭐⭐⭐

策略一:编写清晰、具体的指令

适用场景:所有 Prompt 编写场景,是最基础也最重要的策略。

清晰的指令是高质量输出的基础。以下是几种常用方法:

1. 定义 System Prompt

System Prompt 用于设定 AI 助手的行为模式,包括角色设定、语言风格、任务模式和行为约束。

1
2
3
你是一位资深Python工程师,擅长代码审查和优化。
请用专业的技术语言,指出代码中的潜在问题并给出优化建议。
对于每个问题,需要说明:问题描述、影响范围、优化方案。

2. 提供具体的细节要求

在 Prompt 中添加背景信息和细节要求,让模型更准确地理解上下文:

1
2
3
4
5
6
背景:我正在开发一个高并发的电商订单系统
需求:设计一个分布式锁方案
要求:
1. 支持高并发场景(QPS > 10000)
2. 具备自动续期机制
3. 支持主从切换时的一致性保证

3. 角色扮演

赋予 AI 特定角色身份,可以更准确地模仿该角色的行为和对话方式:

1
2
你是一位拥有10年经验的产品经理,正在评审一个新功能的需求文档。
请从用户体验、技术可行性、商业价值三个维度进行评估。

4. 使用分隔符

使用分隔符可以清晰地区分指令、上下文和输入数据,避免模型混淆:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
--- 指令 ---
请对以下代码进行Code Review

--- 代码 ---
def add(a, b):
    return a + b

--- 要求 ---
1. 检查代码规范性
2. 指出潜在问题
3. 给出改进建议

5. 少样本学习(Few-shot Learning)

提供示例引导模型模仿特定的输出格式和风格:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
示例1:
输入:用户说"我想订一张明天去北京的机票"
输出:{"intent": "book_flight", "destination": "北京", "date": "tomorrow"}

示例2:
输入:用户说"帮我查一下上海今天的天气"
输出:{"intent": "query_weather", "city": "上海", "date": "today"}

现在请处理:
输入:用户说"预订后天去杭州的高铁"
输出:

6. 指定输出约束

虽然让模型精确生成特定字数较难,但可以通过约束进行控制:

1
2
请用100字以内总结这篇文章的核心观点
请生成3-5个要点,每个要点不超过30字

策略二:将复杂任务分解为简单子任务

适用场景:当任务涉及多个步骤、多种能力,或输出需要对接下游系统时。

大模型在处理复杂任务时容易出现"幻觉"或遗漏,将任务拆解可以显著提升准确性。

意图理解与实体提取

当模型输出需要直接对接后端接口时,必须确保格式可解析:

1
2
3
4
5
6
7
8
9
请从用户输入中提取意图和实体,严格按照以下JSON格式输出:
{
  "intent": "意图标识",
  "entities": [
    {"type": "实体类型", "value": "实体值"}
  ]
}

用户输入:帮我预订明天晚上7点的海底捞火锅,4个人

多步骤任务拆解

将一个复杂任务拆分为多个独立的子任务,逐步完成:

1
2
3
4
5
6
7
8
9
请按以下步骤完成竞品分析报告:

步骤1:列出3个主要竞品及其核心功能
步骤2:对比各竞品的定价策略
步骤3:分析各竞品的目标用户群体
步骤4:总结各竞品的优劣势
步骤5:给出我方产品的差异化建议

每步完成后输出"✓ 步骤X完成",全部完成后输出完整报告。

上下文总结

在长对话中,定期总结可以保持对话焦点、减少冗余:

1
2
3
4
请总结之前对话中的关键信息,包括:
1. 用户的核心需求
2. 已确认的信息
3. 待澄清的问题

策略三:给予模型思考时间

适用场景:逻辑推理、数学计算、方案评估等需要深度思考的场景。

在模型给出最终结论前,引导其进行自我探索和推理,即思维链(Chain of Thought)

1
2
3
4
5
6
7
8
9
请分析并评估以下Python代码的质量和功能。
在生成最终回答之前,请:
1. 先编写一份推荐的示例代码
2. 然后从代码结构、可读性、功能完整性三个维度进行评分(1-10分)
3. 最后给出详细的改进建议

待评估代码:
def calc(lst):
    return sum(lst)/len(lst)

关键技巧:在 Prompt 中加入"请先思考"、“请展示推理过程"等语句,可以显著提升推理类任务的准确率。

策略四:使用外部工具增强模型能力

适用场景:需要实时数据、专业领域知识、或执行特定操作的场景。

Function Call

通过定义工具函数,让模型在需要时调用外部能力:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
{
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "search_product",
        "description": "根据关键词搜索商品",
        "parameters": {
          "type": "object",
          "properties": {
            "keyword": {"type": "string"},
            "category": {"type": "string"}
          }
        }
      }
    }
  ]
}

知识库检索(RAG)

将领域知识注入 Prompt,提升回答的准确性和专业性:

1
2
3
4
5
6
7
8
基于以下知识库内容回答用户问题:

--- 知识库 ---
产品A:支持7天无理由退货,质保期1年
产品B:支持15天无理由退货,质保期2年

--- 用户问题 ---
产品A的退货政策是什么?

策略五:通过推理输出提升准确度

适用场景:需要高准确度的结构化输出,如分类、判断、提取等任务。

核心思路是:让模型先解释原因,再给出结论。这样可以减少错误判断。

示例:偏好分类场景

在处理用户偏好时,要求模型先输出判断理由,再输出分类结果:

Prompt 设计

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
请分析用户的输入,判断是否包含可提取的偏好信息。
要求:
1. 先输出判断理由(reason字段)
2. 再输出分类结果
3. 仅提取正面或中性偏好,不支持"不喜欢"类否定表达

输出格式:
{
  "reason": "判断理由",
  "category": "分类标识",
  "category_name": "分类名称",
  "category_content": [...]
}

测试用例

用户输入 期望输出要点
“我喜欢吃辣和甜的东西” reason: 用户明确提到喜欢 → category: food_preference
“我不喜欢吃牛排” reason: 属于负面偏好,不提取 → category: 空
“记住我喜欢去姥姥家” reason: 用户明确提到喜欢 → category: map_preference

调优要点:通过 reason 字段强制模型"先想后答”,可以显著降低误判率。

常用 Prompt 框架

掌握了基础策略后,可以使用框架来组织更复杂的 Prompt。以下是三个主流框架的对比:

框架 组件数 特点 适用场景
RACE 4 简洁高效 快速任务、简单问答
CO-STAR 6 结构完整 复杂任务、多平台输出
CRISPE 6 增加人格和示例 需要特定风格的输出

RACE 框架(OpenAI 推荐)

RACE 是最简洁的框架,适合快速构建 Prompt:

组件 含义 填写要点
Role 角色 赋予 AI 专业身份
Action 行动 明确要执行的任务
Context 上下文 任务背景、相关信息
Expectation 期望 输出质量与格式要求

实战示例

1
2
3
4
Role: 资深Python工程师
Action: 优化以下代码,提升执行效率并修复潜在bug
Context: 代码用于处理百万级用户数据
Expectation: 输出优化后代码+详细优化说明,标注关键改进点

CO-STAR 框架(新加坡 GovTech 获奖)

CO-STAR 结构完整、适用性广,特别适合需要精细化控制的场景:

组件 含义 填写要点
Context 上下文 任务背景、相关信息、AI 身份设定
Objective 目标 明确最终要达成的结果,用"完成/生成/分析"等动词
Style 风格 内容呈现形式(如学术论文、营销文案、技术文档)
Tone 语气 表达情感色彩(正式/亲切/专业/幽默)
Audience 受众 内容面向的人群(专家/新手/客户/学生)
Response Format 响应格式 输出结构(表格/列表/段落/JSON)

实战示例

1
2
3
4
5
6
# Context: 我是一家初创电商公司的运营,正在策划双11促销活动
# Objective: 生成3套不同主题的促销方案,包含活动流程、预算分配和预期效果
# Style: 专业商业计划书风格,数据支撑充分
# Tone: 积极进取,兼具可行性与创新性
# Audience: 公司管理层和投资伙伴
# Response Format: 每套方案分3部分(主题/执行/效果),附预算表和KPI指标

CRISPE 框架

CRISPE 在 CO-STAR 基础上增加了 Persona(人格特质)和 Example(参考示例),进一步提升输出精准度:

组件 含义 填写要点
Context 上下文 任务背景、相关信息、AI 身份设定
Role 角色 赋予 AI 专业身份
Intention 意图 动词短语明确任务及达到的效果
Style 风格 内容呈现形式
Persona 人格 定义角色的性格特点(严谨务实/活泼易懂/专业权威)
Example 示例 提供 1-2 个简短示例(Few-shot)

实战示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
【C - Context】
某咖啡店推出新品「冰萃椰香拿铁」,主打0糖0脂,面向18-30岁年轻消费者,用于小红书发布。
【R - Role】
资深小红书美食文案博主,擅长短句种草。
【I - Intention】
生成3条15字以内的宣传短文案,突出"0糖0脂+椰香"卖点。
【S - Style】
短句口号式,带1个表情符号。
【P - Persona】
活泼清新,贴近年轻人用语习惯。
【E - Example】
示例:冰萃椰香✨0糖0脂超清爽

如何选择框架?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
简单任务(翻译、摘要、问答)
    → 使用 RACE

需要精细控制输出风格和内容
    → 使用 CO-STAR

需要 AI 模仿特定人格/风格
    → 使用 CRISPE

逻辑推理、数学计算
    → 单独使用思维链(CoT)

获奖级 Prompt 示例

以下是一个结构完整、可复用的 System Prompt + CO-STAR 组合示例,展示了如何构建一个生产级的 Prompt:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
--- SYSTEM PROMPT START ---
你是资深政治竞选传播专家,拥有15年国际竞选经验,专注年轻选民(21-35岁)沟通策略。

必须遵守以下护栏规则:
1. 严格遵循CO-STAR框架生成内容,禁止遗漏任何组件
2. 语言必须符合新加坡政治规范,不使用负面攻击、极端表述
3. 每个平台文案风格必须差异化,适配平台用户行为习惯
4. 所有文案必须包含3个核心议题:住房、就业、数字服务
5. 完成后进行自我评估,确保符合所有要求
--- SYSTEM PROMPT END ---

--- CO-STAR PROMPT START ---
【C】Context: 新加坡某政党候选人参加2024年社区议会选举,目标选民为21-35岁年轻群体
【O】Objective: 为TikTok、LinkedIn、Instagram 3个平台生成竞选活动文案,每个平台3条,每条不超过150字
【S】Style: 
- TikTok: 活泼、短视频脚本风格,含表情符号和话题标签
- LinkedIn: 专业、政策解读风格,数据支撑充分
- Instagram: 视觉化、图文结合风格,强调情感共鸣
【T】Tone: TikTok(活力四射)、LinkedIn(专业务实)、Instagram(温暖亲切)
【A】Audience: 21-35岁新加坡年轻选民,包括大学生、职场新人、自由职业者
【R】Response Format: 分3个平台,每个平台下分3条文案,每条配2个话题标签+1个发布建议
--- CO-STAR PROMPT END ---

--- 自我评估标准 ---
1. 是否覆盖3个核心议题(住房/就业/数字服务)
2. 是否符合各平台风格与语气要求
3. 是否控制在150字以内
4. 是否符合新加坡政治规范
5. 是否有吸引力和传播性

要点解析

  • 使用 --- XXX START/END --- 分隔符清晰划分不同部分
  • System Prompt 中定义了明确的"护栏规则",防止模型越界
  • 自我评估标准让模型在输出后进行自检,提升质量

总结

Prompt 调优是一个不断迭代的过程,核心要点如下:

要点 说明
明确目标 清楚知道你想要什么样的输出
结构化表达 使用框架组织 Prompt,确保信息完整
提供上下文 给予足够的背景信息和约束条件
善用示例 Few-shot 学习能显著提升输出质量
引导思考 让模型展示推理过程,获得更可靠的结论
持续优化 根据输出结果不断调整和改进 Prompt

快速上手建议

  1. RACE 框架开始,快速构建基础 Prompt
  2. 效果不理想时,升级到 CO-STARCRISPE 框架
  3. 涉及逻辑推理时,加入思维链引导模型逐步思考
  4. 对接下游系统时,使用分隔符 + JSON 格式确保输出可解析
  5. 持续收集 bad case,针对性优化 Prompt

参考链接:

  1. OpenAI Prompt Engineering Guide
  2. Prompt Engineering 最佳实践