2、Prompt Engineering 基础:什么是Prompt?写好Prompt的黄金法则
好,咱们进入正题。这一章聊的是Prompt Engineering,说白了就是「怎么跟大模型说话」。
你可能觉得这有什么好学的?打字谁不会啊。但我见过太多人,上来就问「帮我写个方案」,然后抱怨AI输出太水。其实问题不在AI,在你问的方式。
2.1 什么是Prompt?
Prompt,翻译过来就是「提示词」。你给模型一段文本,它接着往下生成。这段文本就是Prompt。
举个例子:
用户输入:今天天气真好
模型输出:适合出去走走,晒晒太阳。
你看,模型只是顺着你的话往下接。但如果你换个方式:
用户输入:今天天气真好,请以一首七言绝句来描述
模型输出:碧空如洗白云飘,暖阳高照柳丝摇。
花香鸟语春意闹,正是人间好时节。
同样是「今天天气真好」,输出天差地别。为什么?因为Prompt变了。
核心认知:Prompt就是你给模型的「指令」+「上下文」。你给什么,它回什么。你给得越清楚,它回得越准。
我个人习惯把Prompt比作「给实习生布置任务」。你如果说「把这个处理一下」,他肯定一脸懵。但如果你说「把这份Excel里销售额大于100万的记录筛选出来,按日期排序,输出到新表」,他就能干得漂漂亮亮。模型也一样。
2.2 写好Prompt的黄金法则
我总结了一套法则,四个词:角色、任务、格式、示例。记住这四个,你的Prompt质量能提升80%。
2.2.1 角色(Role)—— 告诉它「你是谁」
模型没有身份感。你不说,它就默认是个通用助手。但你给了角色,它的输出风格、知识侧重会立刻变化。
我在项目中遇到过这种情况:让模型写一段产品介绍,它写成了技术文档。后来我加了句「你是一名资深产品经理」,输出立马变成了用户视角、痛点分析、卖点提炼。
❌ 差:请描述这款智能手表的功能。
✅ 好:你是一名资深产品经理,请向35岁的商务人士介绍这款智能手表的核心卖点。
小技巧:角色越具体越好。不要说「你是医生」,要说「你是三甲医院心内科主任医师」。越具体,模型调用的知识越精准。
2.2.2 任务(Task)—— 说清楚「要干什么」
这是最容易被忽略的一点。很多人以为「任务」就是一句话,其实不然。任务需要包含:动作、对象、约束条件。
举个例子:
❌ 模糊:分析这段用户反馈。
✅ 清晰:请从这段用户反馈中,提取出3个最突出的负面情绪点,并用一句话概括用户的核心诉求。
为什么会这样?因为模型需要明确的「完成标准」。你只说「分析」,它不知道分析到什么程度算完。但你说了「提取3个点」「一句话概括」,它就知道边界在哪。
嗯,这里要注意:任务不要超过3个。一次给太多任务,模型容易「顾头不顾尾」。我一般一个Prompt只聚焦一个核心任务,最多加一个辅助任务。
2.2.3 格式(Format)—— 规定「怎么输出」
模型默认输出是自然段落。但很多时候我们需要结构化输出。这时候就要指定格式。
我个人最常用的格式有这几种:
| 格式类型 | 适用场景 | 示例指令 |
|---|---|---|
| Markdown | 文档、笔记 | 请用Markdown格式输出,包含标题、列表、代码块 |
| JSON | 数据提取、API对接 | 请输出JSON格式,字段包括:name, price, rating |
| 表格 | 对比、汇总 | 请用表格展示,列名为:产品名、价格、评分 |
| 列表 | 步骤、要点 | 请用有序列表,每一点不超过20字 |
示例:
请分析以下三款手机的配置差异,用表格输出。
列名:型号、处理器、内存、电池容量、起售价
避坑指南:我曾经让模型输出JSON,但没指定字段名,结果它自己发挥了。后来我学乖了,每次都给一个「模板」——比如「请按这个格式输出:{"name": "", "price": 0}」。这样基本不会出错。
2.2.4 示例(Example)—— 给它「打个样」
这是最强大的技巧,没有之一。模型是「少样本学习」的高手。你给一个例子,它就能举一反三。
你想想看,如果你教实习生做报表,光说「做成这样」然后给个模板,他是不是立马就懂了?模型也一样。
示例:
请将以下用户评论进行情感分类(正面/负面/中性)。
示例1:
评论:这手机拍照效果太棒了!
分类:正面
示例2:
评论:电池续航一般,勉强用一天。
分类:中性
现在请分类:
评论:系统卡顿严重,经常闪退。
分类:
你看,给了两个例子后,模型几乎不会出错。而且你不需要解释「什么是正面、什么是中性」,例子本身就说明了规则。
黄金组合:角色 + 任务 + 格式 + 示例 = 一个高质量的Prompt。四个要素不一定每次全用,但至少用2-3个。
2.3 实战:一个完整的Prompt示例
咱们把四个法则串起来,看一个完整的例子:
你是一名资深HR招聘经理。(角色)
请从以下候选人简历中,提取关键信息并评估匹配度。(任务)
输出格式为表格,列名:姓名、工作年限、核心技能、匹配度评分(1-10分)。(格式)
示例:
简历:张三,5年Java开发经验,精通Spring Boot和微服务架构,有电商项目背景。
输出:
| 姓名 | 工作年限 | 核心技能 | 匹配度评分 |
|------|---------|---------|-----------|
| 张三 | 5年 | Java, Spring Boot, 微服务 | 8 |
现在请分析以下简历:(示例)
简历:李四,3年前端开发经验,熟悉React和Vue,有移动端H5项目经验。
这个Prompt,模型几乎不会跑偏。因为它知道:你是谁、要干嘛、怎么输出、长什么样。
我的习惯:写Prompt时,我会先写「角色」,再写「任务」,然后「格式」,最后「示例」。这个顺序最符合人的思维习惯——先定位身份,再明确目标,然后规定形式,最后给个样板。
2.4 常见误区与避坑
最后聊几个我踩过的坑:
- 误区一:Prompt越长越好。不是的。关键信息要前置,废话越少越好。模型有上下文窗口,别浪费在无关描述上。
- 误区二:一次问多个问题。我曾经一个Prompt里问了5个问题,结果模型只回答了前2个,后面的直接忽略了。后来我改成逐个问,效果好了很多。
- 误区三:不检查输出。模型再强也会犯错。尤其是数字、日期、专有名词。我每次都会快速扫一眼输出,特别是表格和代码块。
- 误区四:忽略负面示例。有时候光给正面例子不够。比如你想让模型「不要输出空字段」,最好加一句「如果字段为空,请输出'无',不要留空」。
好了,这一章就到这里。记住四个词:角色、任务、格式、示例。下次写Prompt时,拿这四个要素对照一下,你会发现输出质量明显提升。
下一章咱们聊「Prompt的进阶技巧」,包括思维链、温度参数、系统提示词这些。到时候见。