02 — LLM 与提示词工程

掌握与AI高效交互的核心技能:提示词设计方法论与模型选择策略 目标:能够写出高质量提示词,根据场景选择合适的模型


一、提示词工程基础

1.1 什么是提示词工程?

graph TD
    A["用户意图"] --> B["提示词工程"]
    B --> C["高质量输出"]
    
    subgraph 提示词组成["提示词 = 角色 + 任务 + 约束 + 输出格式"]
        B1["🎭 角色设定"]
        B2["📋 任务描述"]
        B3["📏 约束条件"]
        B4["📤 输出格式"]
    end
    
    B1 & B2 & B3 & B4 --> B
    
    style B1 fill:#e3f2fd
    style B2 fill:#fff3e0
    style B3 fill:#e8f5e9
    style B4 fill:#f3e5f5

1.2 提示词设计框架(CREATE框架)

flowchart TD
    C["C - Context<br/>提供背景上下文"] --> R
    R["R - Role<br/>设定AI角色"]
    R --> A["A - Action<br/>明确具体任务"]
    A --> T
    T["T - Tone<br/>指定语气风格"]
    T --> E
    E["E - Example<br/>提供示例参考"]
    E --> FORMAT["F - Format<br/>规定输出格式"]
    
    style C fill:#e3f2fd
    style R fill:#fff3e0
    style A fill:#e8f5e9
    style T fill:#f3e5f5
    style E fill:#fce4ec
    style FORMAT fill:#e0f2f1

1.3 提示词模板

【角色】你是一位资深的[领域]专家
【背景】[上下文信息]
【任务】请帮我[具体任务]
【约束】[具体要求,如字数、格式、风格]
【示例】[参考示例,可选]
【输出】返回[具体的输出格式]

二、高级提示词技术

2.1 常见技术对比

flowchart LR
    subgraph 基础技术["基础技术"]
        BT1["零样本<br/>Zero-shot"]
        BT2["少样本<br/>Few-shot"]
    end
    
    subgraph 进阶技术["进阶技术"]
        AT1["链式思考<br/>CoT"]
        AT2["自我一致性<br/>Self-Consistency"]
    end
    
    subgraph 高级技术["高级技术"]
        HT1["ReAct<br/>推理+行动"]
        HT2["Tree of Thoughts<br/>思维树"]
    end
    
    BT1 & BT2 --> AT1 & AT2
    AT1 & AT2 --> HT1 & HT2
    
    style BT1 fill:#e3f2fd
    style BT2 fill:#e3f2fd
    style AT1 fill:#fff3e0
    style AT2 fill:#fff3e0
    style HT1 fill:#e8f5e9
    style HT2 fill:#e8f5e9

2.2 各技术详解

零样本(Zero-shot)

直接给出任务,不提供示例

示例:
"请将以下中文翻译成英文:今天天气很好"

输出:
"The weather is nice today."

少样本(Few-shot)

提供少量示例,让AI学习模式

示例:
"将以下动词变为过去式:
跑 → 跑了
走 → 走了
看 → 看了
写 → ?"

输出:
"写 → 写了"

链式思考(Chain-of-Thought, CoT)

引导AI逐步推理,提高复杂任务准确率

示例:
"小明有5个苹果,小红给了他3个,
他又吃了2个,请问他现在有几个苹果?
请一步一步思考。"

输出:
"第一步:小明最初有5个苹果
第二步:小红给了3个,现在有5+3=8个
第三步:吃了2个,现在有8-2=6个
答案:6个"

ReAct(推理+行动)

结合推理和行动,适合Agent系统

示例:
"查询北京今天的天气,如果超过30度,
提醒用户注意防暑。"

AI输出:
"我需要先查询北京天气...
[调用天气API]
[获取结果:35°C]
根据结果,温度超过30度,
建议提醒用户防暑..."

三、提示词实战案例

3.1 软件开发场景

【角色】你是一位资深的全栈工程师
【背景】我们正在开发一个电商系统,使用 Laravel + Vue 技术栈
【任务】请帮我生成一个商品管理的 CRUD API
【约束】
- 遵循 PSR-12 编码规范
- 包含完整的错误处理
- 使用 FormRequest 进行验证
- 返回统一的 JSON 格式
【输出】提供完整的控制器、模型、迁移文件代码

3.2 数据分析场景

【角色】你是一位数据分析师
【背景】我们有以下销售数据:[粘贴数据]
【任务】分析销售趋势,找出增长最快的产品类别
【约束】
- 使用 Python pandas 处理
- 输出可视化图表代码
- 给出业务建议
【输出】分析报告 + 可视化代码

3.3 内容创作场景

【角色】你是一位专业的内容运营
【背景】我们需要为新产品写一篇推广文案
【任务】撰写一篇吸引年轻用户的社交媒体文案
【约束】
- 风格活泼有趣
- 包含3个emoji
- 不超过200字
- 结尾有互动引导
【输出】完整的文案内容

四、模型选择策略

4.1 选型决策树

flowchart TD
    A["选择AI模型"] --> B{是否需要代码能力?}
    B -->|是| C{"预算限制?"}
    B -->|否| D{"需要多模态?"}
    
    C -->|充足| E["GPT-4 / Claude 3 Opus"]
    C -->|有限| F["DeepSeek / Qwen"]
    
    D -->|是| G["GPT-4o / Gemini 1.5"]
    D -->|否| H{"任务复杂度?"}
    
    H -->|简单| I["轻量模型<br/>Claude 3 Haiku / DeepSeek"]
    H -->|复杂| J["强力模型<br/>GPT-4 / Claude 3"]

4.2 模型能力对比

quadrantChart
    title AI模型能力矩阵
    x-axis 成本较低 --> 成本较高
    y-axis 通用能力弱 --> 通用能力强
    quadrant-1 高端旗舰
    quadrant-2 性价比之选
    quadrant-3 轻量快速
    quadrant-4 专业专用
    
    "GPT-4": [0.8, 0.9]
    "Claude 3 Opus": [0.75, 0.88]
    "Gemini 1.5 Pro": [0.7, 0.85]
    "DeepSeek V3": [0.4, 0.75]
    "Qwen2.5-72B": [0.35, 0.72]
    "Claude 3 Haiku": [0.2, 0.6]
    "GLM-4": [0.25, 0.65]
    "Llama 3 70B": [0.15, 0.6]

4.3 选型建议

场景推荐模型理由
代码生成DeepSeek V3 / GPT-4代码能力强,成本低
长文档分析Claude 3 / Gemini 1.5支持128K+上下文
中文内容创作通义千问 / DeepSeek中文理解优秀
数学推理DeepSeek R1 / GPT-4推理能力强
多模态任务GPT-4o / Gemini 1.5原生支持图像
私有化部署Llama 3 / Qwen2.5开源可本地运行

五、提示词优化技巧

5.1 常见问题与解决方案

问题原因解决方案
输出太长未限制长度添加”控制在X字以内”
内容跑题任务描述不清明确指定范围和格式
格式不对未规定输出格式用示例明确格式要求
重复内容提示词模糊明确唯一性要求
忽略约束约束不够突出用【必须】等强调词

5.2 优化前后对比

❌ 差的提示词:
"写一段关于AI的文字"

✅ 好的提示词:
【角色】你是一位科技博主
【任务】写一篇介绍AI应用的短文
【约束】200字以内,通俗易懂,面向普通读者
【格式】标题+正文,使用3个bullet point
【示例风格】"AI就像你家里的智能音箱,
虽然看不见,但它在帮你做很多事..."

六、常用 Prompt 模板库

6.1 代码相关

# 代码解释
请解释以下代码的功能,用简洁的语言说明:
```[language]
[代码]

代码重构

请重构以下代码,使其更符合[规范名称]:

[代码]

要求:可读性更强、性能更好、遵循[规范]

Bug排查

我遇到以下错误,请帮我分析原因并提供解决方案: 错误信息:[粘贴错误] 相关代码:[粘贴代码]


### 6.2 内容创作

```markdown
# 文章改写
将以下内容改写为[风格]风格,目标读者是[人群]:
[原文]

# 摘要生成
请总结以下文章的要点,不超过100字:
[文章]

# 内容扩展
请基于以下要点,扩展成一篇完整的文章:
[要点列表]
要求:500字以上,逻辑清晰,案例生动

6.3 数据分析

# 数据解读
请分析以下数据,指出关键趋势和洞察:
[数据]
重点关注:[关注点]
 
# SQL生成
请根据以下需求生成SQL查询:
需求:[描述]
表结构:[结构]

七、本章总结

flowchart LR
    A["提示词 = 角色 + 任务 + 约束 + 输出"] --> B["高级技术:CoT / ReAct"]
    B --> C["模型选择:根据场景选最优"]
    C --> D["持续优化:对比测试找最佳"]
    
    style A fill:#e3f2fd
    style B fill:#fff3e0
    style C fill:#e8f5e9
    style D fill:#f3e5f5

核心结论: 提示词工程是与AI沟通的艺术。好的提示词 = 清晰的意图 + 充分的上下文 + 明确的约束 + 合适的示例。


延伸阅读