Skip to content

提示工程入门:让 AI 听懂你的心声 🪄

本指南旨在帮助开发者理解并掌握大语言模型(LLM)的配置参数、逻辑推理技巧及结构化框架,以提升 AI 输出的精准度与工程化稳定性。

1. 模型配置参考 (Parameter Reference)

通过调整模型参数,你可以控制输出的随机性、长度及词汇分布。

参数名称技术定义推荐取值范围适用场景
Temperature概率分布的平滑程度。降低该值会使概率分布更陡峭,增强确定性。$0.1 - 0.5$ (严谨)
$0.7 - 1.2$ (创意)
逻辑推理、代码生成建议使用低值;文学创作建议使用高值。
Top_p核采样(Nucleus Sampling)。仅从累积概率达到 $P$ 的候选词中采样。$0.7 - 0.95$保持输出多样性的同时避免出现完全无意义的低频词。
Frequency Penalty对已出现词汇进行惩罚,基于词频降低其再次生成的概率。$0.1 - 1.0$解决模型“车轱辘话”反复循环的问题。
Presence Penalty基于主题存在性进行惩罚,强制模型谈论新话题。$0.2 - 0.8$引导模型进行发散性思考,避免围绕单一语义点绕圈。

2. 提示技巧

2.1 零样本提示(Zero-Shot Prompting)

原理:模型仅依靠预训练知识直接生成答案,无需示例。
方法:直接提问,不提供任何上下文或示例。
效果:快速响应,适用于简单任务;复杂任务可能不准确。
示例

提示:"法国的首都是哪里?"
输出:"巴黎"

2.2 少样本提示(Few-Shot Prompting)

原理:提供少量示例引导模型理解任务模式。
方法:在问题前添加2-5个输入-输出示例。
效果:提升复杂任务准确性,降低模型幻觉风险。
示例

提示:
"苹果 -> 水果 | 汽车 -> 交通工具 | 钢琴 -> ?"
输出:"乐器"

2.3 零样本思维链(Zero-Shot CoT)

原理:强制模型分步推理,通过指令(如"逐步思考")激活逻辑能力。
方法:在问题末尾添加"请逐步推理:""Let's think step by step."
效果:显著提升数学/逻辑问题准确率。
示例

提示:"若一个篮子里有5个苹果,吃掉2个,又加入3个梨,现在有多少水果?请逐步思考。"
输出:"1. 初始苹果:5个 → 2. 吃掉2个:5-2=3苹果 → 3. 加入3个梨 → 4. 总计水果:3苹果+3梨=6个"

2.4 手动思维链(Manual CoT)

原理:人工设计推理步骤示例,教会模型解决同类问题。
方法:提供完整的逐步推理示例,再提问新问题。
效果:精准控制推理路径,适合专业领域(如法律/医学)。
示例

提示:
"示例:问题:10kg物体以2m/s²加速,需多少力?解答:F=ma → m=10kg, a=2m/s² → F=10×2=20N"
"新问题:5kg物体以4m/s²加速,需多少力?"
输出:"F=ma=5×4=20N"

2.5 自动思维链(Auto-CoT)

原理:用大模型自动生成推理示例,替代人工编写。
方法:输入问题后,追加指令如"生成解决此问题的推理步骤示例"
效果:节省时间,适用于动态问题;需模型强推理能力。
示例

提示:"如何计算圆的面积?首先生成一个推理示例:"
输出:"示例:问题:半径3cm的圆面积?解答:1. 公式S=πr² → 2. r=3 → 3. S=3.14×9≈28.26cm²"

2.6 自我一致性(Self-Consistency)

原理:多次生成不同答案路径,投票选择最高频结果。
方法:设置temperature>0生成多个回复,或直接要求"生成3种解法并选最优"
效果:减少随机错误,提升可靠性(尤其数学问题)。
示例

提示:"18÷3×(2+1)=?生成三种计算方案并投票:"
输出:
"方案1:18÷3=6, 6×3=18 → 方案2:2+1=3, 3×3=9, 18÷9=2 → 方案3:括号优先,(2+1)=3, 18÷3=6, 6×3=18"
"投票结果:方案1和3正确(18),占比66%"

2.7 生成知识提示(Generated Knowledge Prompting)

原理:让模型先生成相关知识,再基于知识回答问题。
方法:拆分指令为两步:"首先生成关于X的知识""基于以上知识回答Y问题"
效果:深度整合信息,适合开放域问答。
示例

提示:
"步骤1:生成量子纠缠的三条关键知识"
"步骤2:解释量子纠缠如何实现超距通信"
输出:
"知识:1. 粒子状态瞬时关联 2. 测量一方决定另一方 3. 不传递信息"
"解释:因无法控制粒子状态,不能传递信息,故不违反相对论"

2.8 链式提示(Prompt Chaining)

原理:将复杂任务分解为子任务链,分步解决。
方法:用"首先...其次...最后..."明确步骤,或多次交互。
效果:降低任务复杂度,避免模型迷失方向。
示例

提示:
"任务:写一篇气候变化短文。步骤:1. 列出3个主要原因 → 2. 给出2个解决方案 → 3. 合成200字短文"
输出:
"原因:化石燃料、 deforestation、工业排放"
"方案:可再生能源、碳捕获"
"短文:气候变化主要由...解决需全球合作..."

2.9 思维树(Tree of Thoughts, ToT)

原理:模拟多路径决策树,评估不同推理分支。
方法:要求模型"列出所有可能解法→评估优劣→选择最优"
效果:解决高不确定性问题(如策略制定),需强模型支持。
示例

提示:
"问题:减少城市交通拥堵的方案"
"步骤:1. 列出5种方案 2. 分析各方案成本/效果 3. 推荐最佳方案"
输出:
"方案:限行(成本低但效果有限)、地铁扩建(效果久但成本高)..."
"推荐:智能交通系统+公交优先(平衡成本与效果)"

2.10 检索增强生成(Retrieval-Augmented Generation, RAG)

原理:从外部知识库检索信息,结合生成回答。
方法:系统自动检索知识库,或手动提供引用"基于以下资料回答:[文档]"
效果:解决知识截止问题,提升事实准确性。
示例

提示:
"资料:2023年诺贝尔医学奖授予mRNA疫苗研究者"
"问题:2023年诺贝尔医学奖得主的贡献是什么?"
输出:"开发mRNA疫苗技术,革新传染病防控"

2.11 ReAct框架

原理:交替执行推理(Reason)和行动(Act,如搜索/计算)。
方法:结构化指令如"思考:... 行动:搜索[X]... 最终答案:"
效果:动态整合工具(如计算器/搜索引擎),适合实时数据任务。
示例

提示:
"思考:需比较iPhone15和三星S23价格 → 行动:搜索最新报价 → 发现iPhone15 $799, S23 $699 → 答案:三星便宜$100"

2.12 Reflexion

原理:生成结果后自我批判并修正错误。
方法:追加指令"检查上述答案的潜在错误并改进"
效果:迭代提升质量,减少事实/逻辑错误。

提示工程框架指南:KITE, RICE 与 CRISPE

在与大语言模型(LLM)协作时,提示词(Prompt)的结构直接决定了输出的质量。以下三种提示框架可以帮助开发者更好的理解提示词的结构。

1. KITE 框架:精准控制型

核心逻辑:像放风筝一样,既给予创作空间,又通过“控制线”确保不偏离轨道。 适用场景:文案撰写、数据格式化、有严格规范限制的任务。

要素说明示例
K (Knowledge)注入知识:提供背景、角色或参考资料。“你是一位精通粤菜的资深美食家。”
I (Instruction)明确指令:清晰描述具体要完成的任务。“请为该餐厅撰写一篇 300 字的评论。”
T (Target)设定目标:定义预期效果或交付标准。“突出招牌菜特色,并包含明确的推荐等级。”
E (Edge)界定边界:规定禁止项或必须遵守的规则。“严禁编造虚假信息,使用 Markdown 格式。”

2. RICE 框架:情境驱动型

核心逻辑:通过构建完整的任务画像,增强输出的“代入感”与“相关性”。 适用场景:角色扮演、模拟对话、创意写作、客服回复。

  • R - Role (角色):定义身份(如:面试官、科普作家)。
  • I - Input (输入):提供素材(如:待分析的数据、原始文本)。
  • C - Context (上下文):补充背景(如:受众群体、使用场合)。
  • E - Expectation (期望):明确结果(如:输出 JSON 格式、总结为三点)。

3. CRISPE 框架:工业级质量型

核心逻辑:引入项目管理思维,通过全维度拆解,保障复杂任务的严谨性。 适用场景:方案设计、技术文档、代码开发、深度研究。

  1. Clarify (澄清):阐明核心目标,避免方向偏离。
  2. Role (角色):指定专业领域身份。
  3. Input (输入):提供任务所需的原始信息。
  4. Structure (结构):预设输出内容的“骨架”(如:原理 > 步骤 > 示例)。
  5. Prompt (指令):使用具体动作词(如:“诊断”、“优化”、“重构”)。
  6. Evaluate (评估):设定验收标准(如:“代码需通过单元测试”)。

4. 框架选型对比

下表从控制力、复杂度及应用场景三个维度对框架进行对比,协助你选择最优方案:

维度KITERICECRISPE
设计核心边界约束角色模拟流程闭环
优势结构清晰,能有效抑制模型幻觉。轻量直观,输出更具专业口吻。维度全面,保障高难度任务质量。
劣势限制过多可能削弱创造力。对格式和评估的控制较弱。编写耗时,对于简单任务过于繁琐。
上手难度⭐⭐⭐⭐⭐
推荐用途规范化内容生成日常交互与创意表达专业技术与逻辑分析

💡 专家提示: 无论使用哪种框架,请遵循 “一条指令,一个目标” 的原则。如果任务过于复杂,建议将大 Prompt 拆解为多个子步骤进行链式调用。

4. 最佳实践 (Best Practices)

  1. 先理解,后写作:在编写 Prompt 之前,先手动跑通一遍任务逻辑。
  2. 拒绝含糊:使用“不要超过 200 字”而非“简短一些”;使用“以 Markdown 表格输出”而非“整理一下”。
  3. 版本化管理:像管理代码版本一样管理 Prompt 迭代,记录不同版本对应的模型表现变化。
  4. 失败案例驱动:收集模型输出错误的案例,针对性地在 Edge (边界) 部分增加限制规则。

5. 快速开始模板 (README Style)

markdown
# [任务名称] Prompt 模板

## 角色设定
你是一名 [专业角色],拥有 [X 年] 的 [领域] 经验。

## 背景上下文
当前正在处理 [项目名称],目标是解决 [具体痛点]。

## 任务指令
1. 分析 [输入数据]
2. 提取 [关键特征]
3. 生成 [交付物]

## 输出规范
- 格式:Markdown
- 语言:简体中文
- 严禁:出现 [敏感词/编造事实]