小李和小王都在用ChatGPT。
小李问:“帮我写个文案”,得到一堆泛泛而谈的内容。
小王问:“你是小红书爆款文案专家。请为一款’零糖气泡水’写3条种草文案,每条不超过50字,突出’好喝不发胖’,带emoji,语气活泼。”
得到三条可以直接用的爆款文案。
同样的AI,差距怎么这么大?
差在提示词。提示词是你和AI沟通的语言。写得好,AI是你的得力助手;写得不好,AI就是聊天机器。
这篇文章教你写出好提示词。
本文要点
- 为什么提示词能影响AI输出
- 三个核心设计原则
- 从Zero-shot到Few-shot的技巧
- CoT、ToT等高级技巧
- 常见问题与解决方案
- 实用提示词模板
一、为什么提示词这么重要?
1.1 提示词就是”面试题目”
回顾大模型的工作原理:模型根据输入预测下一个Token。
提示词就是你给模型的”上下文”,它会影响模型对”什么内容应该出现”的判断。
模糊的题目:"说说你的想法"→ 候选人可能回答任何方向
清晰的题目:"请用3个要点说明你如何解决团队冲突"→ 候选人回答方向明确1.2 提示词的四个作用
- 设定上下文:告诉模型”我们在讨论什么”
- 定义角色:让模型采用特定视角和知识
- 提供示例:展示期望的输出格式
- 引导推理:让模型一步步思考
二、三个核心设计原则
2.1 原则一:清晰具体
差的提示词:"帮我写一段代码"
好的提示词:"请用Python写一个函数:- 输入:整数列表- 输出:所有偶数的平方和- 示例:输入[1,2,3,4],返回20- 要求:包含类型注解和docstring"差别在哪?
好的提示词明确了:输入、输出、示例、要求。模型知道你要什么。
2.2 原则二:结构化
用分隔符、编号让模型更容易理解:
你是一个代码审查员。请审查以下代码:
## 待审查代码def calc(a,b): return a+b
## 审查维度1. 代码风格2. 潜在bug3. 性能问题
## 输出格式用Markdown表格输出,包含"问题"、"建议"两列。2.3 原则三:角色设定
你是一位有10年经验的后端架构师。请从架构角度分析...
你是一位刚入职的实习生。请用简单易懂的语言解释...角色设定会影响:
- 术语深度
- 解释详细程度
- 考虑问题的视角
三、基础技巧:从简单到复杂
3.1 Zero-shot:不提供示例
直接告诉模型要做什么:
用户:把"今天天气真好"翻译成英文模型:The weather is really nice today.适用于:简单、明确的任务。
3.2 Few-shot:提供几个示例
让模型学习模式:
适用于:需要特定格式、风格的任务。
Few-shot需要几个示例?
1-3个:适合简单模式5个:大多数场景够用10+个:复杂任务,提升明显3.3 结构化输出
让模型输出JSON:
从以下文本提取信息,以JSON格式输出:
"张三,男,35岁,北京人,软件工程师"
输出格式:{ "name": "", "gender": "", "age": 0, "hometown": "", "occupation": ""}现代模型支持强制JSON输出:
# OpenAIresponse = client.chat.completions.create( model="gpt-4o", messages=[...], response_format={"type": "json_object"})四、高级技巧:让模型更聪明
4.1 Chain-of-Thought(CoT):思维链
让模型”展示思考过程”:
直接问:"商店有23个苹果,卖了15个,又进货8个,还剩多少?"模型可能算错。
加上CoT:"请一步步思考:商店有23个苹果,卖了15个,又进货8个,还剩多少?"
模型:1. 初始23个2. 卖了15个,剩23-15=8个3. 进货8个,现在8+8=16个答案:16个最简单的CoT:
在问题末尾加一句:“让我们一步步思考”
这一句话就能显著提升推理能力。
4.2 Tree of Thoughts(ToT):思维树
探索多条路径:
"设计一个提高团队效率的方案。请:1. 提出3个不同思路2. 分析每个思路的优缺点3. 选择最佳方案"4.3 ReAct:推理+行动
将思考和工具调用结合:
用户:"2024年世界杯冠军是谁?"
模型:Thought: 我需要查询2024年世界杯信息Action: search("2024世界杯冠军")Observation: [搜索结果]Thought: 找到了,是阿根廷Answer: 2024年世界杯冠军是阿根廷五、常见问题与解决
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 输出格式乱 | 提示词不具体 | 提供示例、用结构化输出 |
| 答案跑题 | 上下文干扰 | 用分隔符、明确边界 |
| 太简单/太长 | 没指定 | 说清楚长度要求 |
| 编造信息 | 没约束 | 加”不确定时请说明” |
| 不听指令 | 指令被忽略 | 放在开头或结尾 |
六、实用提示词模板
6.1 模板1:通用任务
# 角色你是一个[角色描述],擅长[技能]。
# 任务请[具体任务]。
# 要求- [要求1]- [要求2]
# 输出格式[格式说明]6.2 模板2:代码生成
请用[语言]实现以下功能:
## 功能描述[描述]
## 输入[输入说明]
## 输出[输出说明]
## 示例输入:xxx输出:xxx
## 要求- 包含注释- 处理边界情况6.3 模板3:文档分析
请分析以下文档:
## 文档内容"""[文档内容]"""
## 分析维度1. 主要观点2. 关键数据3. 潜在问题
## 输出格式用Markdown列表输出。可视化图解
6.1 提示词效果对比
┌─────────────────────────────────────────────────────────────┐│ 提示词质量 vs 输出质量 │├─────────────────────────────────────────────────────────────┤│ ││ 模糊提示词 清晰提示词 ││ "写个文案" "写3条小红书种草文案..." ││ ↓ ↓ ││ ┌─────────┐ ┌─────────────┐ ││ │ 泛泛而谈 │ │ 结构清晰 │ ││ │ 难以使用 │ │ 可直接使用 │ ││ │ 需要多轮 │ │ 一次到位 │ ││ └─────────┘ └─────────────┘ ││ ││ 输出质量:差 ←────────────────────────────→ 输出质量:好 ││ │└─────────────────────────────────────────────────────────────┘6.2 CoT思维链示意
常见问题 FAQ
Q1: 提示词写多长合适?
A: 够用就行,不是越长越好。关键是清晰具体。通常100-500字够用。复杂任务可能需要更长。
Q2: 为什么AI不听我的指令?
A: 可能原因:
- 指令被长上下文淹没 → 把关键指令放开头或结尾
- 指令有歧义 → 更具体地描述
- 任务超出能力 → 简化任务或换更强的模型
Q3: Few-shot需要几个示例?
A:
- 简单任务:1-3个
- 一般任务:3-5个
- 复杂任务:5-10个
- 示例越多效果越好,但边际效益递减
Q4: 如何让AI输出特定格式?
A:
- 提供格式示例
- 使用结构化输出(JSON mode)
- 明确说明”请严格按以下格式输出”
Q5: 角色设定真的有用吗?
A: 有用。角色设定会激活模型在特定领域的知识,影响术语深度和回答风格。比如”你是架构师”vs”你是实习生”,输出会明显不同。
小结
写好提示词的核心:
- 清晰具体:告诉模型你要什么
- 结构化:用分隔符、编号组织内容
- 提供示例:让模型学习模式
- 引导思考:用CoT让模型一步步推理
提示词是人和AI之间的桥梁。写得好,AI就是你的得力助手。
下篇预告
提示词解决了”怎么问”,但AI的知识有限,很多企业内部信息它不知道。怎么办?
参考资料
支持与分享
如果这篇文章对你有帮助,欢迎支持作者或分享给更多人
部分信息可能已经过时






