什么是提示词工程?非开发者实用指南
提示词工程是指编写和改进给 AI 模型的指令,让它稳定地产出你想要的内容。提示词就是你交给模型的一切,可以是一个问题、一项任务、一些背景信息或示例。提示词工程就是有意识地决定放入什么内容、检验输出结果、再进行调整。它与其说是寻找神奇的措辞,不如说是清晰地表达。
用 AI 构建应用时,它为什么重要
使用 AI 应用构建工具时,你的提示词就是需求说明。AI 只能构建你描述过的东西;当你的请求存在空白,它就会用听起来合理的猜测去填补。有时猜得对,但常常不是你的本意:表单上多了错误的字段、加了你不想要的功能、设计与你的受众不符。
清晰的提示词能让你少走几轮修改,而每一轮都要花时间,通常还要消耗积分。如果你要在应用里加入 AI,提示词同样重要:你写给该模型的指令,决定了你的聊天机器人如何与客户交流、拒绝什么内容,以及是否忠于你提供的事实。针对应用构建的具体做法,可参阅如何为 AI 应用构建工具编写提示词。
一个日常类比
想象你要向一位熟练的自由职业者交代工作。他从未见过你,对你的业务一无所知,而你一说完,他就会开始干活。
“帮我做一个 logo”只能得到一个 logo。“为迪拜一家儿童游泳学校设计 logo:友好但不幼稚;蓝色和橙色;缩小后要能印在泳帽上也清晰可辨;这里有我们喜欢的两个方案,还有一个我们不喜欢的”,则更接近你想要的效果。
AI 模型就像这位自由职业者:才华出众、速度很快,但完全依赖你的简报。提示词工程,就是学会写好这份简报。
核心技巧
| 技巧 | 含义 | 示例 |
|---|---|---|
| 明确目标 | 说清你要什么,以及为什么。 | “一个预约页面,让新客户可以选择 30 分钟或 60 分钟的课程。” |
| 提供背景 | 面向谁、已经有什么、什么最重要。 | “用户大多是用手机的年长客户。” |
| 定义“完成” | 描述最终的成品。 | “完成的标准是客户能预约,并且我会收到一封邮件。” |
| 设定约束 | 不要做什么,以及有哪些限制。 | “暂时不要加登录功能。保留现有的配色。” |
| 展示示例 | 给出好结果的样子。 | “请用这种风格写回复:……” |
| 指定格式 | 告诉它如何组织输出。 | “用表格回答,列为 X、Y、Z。” |
| 拆分步骤 | 大任务一次只做一块。 | “先做数据模型,再做表单,最后做邮件。” |
| 让它先提问或规划 | 修改前先拿到计划。 | “开始构建前,先列出你的疑问和计划。” |
| 迭代 | 检查结果,逐步完善。 | “表单能用了。现在把日期选择器做大一点。” |
实例对比:修改前与修改后
修改前:
做一个健身房应用。
AI 必须猜测一切:用户是会员还是员工?是团课还是私教?要不要收款?你大概会得到一个通用的仪表盘,里面是编造出来的训练内容。
修改后:
为一家约有 150 名会员的小型拳击馆构建一个网页应用。
谁来使用: 会员用手机预约课程。馆主 Sam 在笔记本电脑上管理课表。
会员可以: 查看本周课程(时间、教练、剩余名额),并在开课前最多 2 小时预约或取消。
Sam 可以: 添加、编辑和取消课程,并查看每节课的报名人员。
规则: 每节课最多 12 人。同一时段不能重复预约。
暂不需要: 付款、训练记录、手机 App。
风格: 深色背景,红色点缀,按钮要大,方便点按。
开始构建前,请列出所有不清楚的地方,并说明你将创建哪些页面。
第二个提示词并不巧妙,但它完整。它说明了用户、操作、规则、哪些内容先不做,以及从哪里开始。最后一句邀请 AI 先做规划并提出问题,可以在写代码之前就发现误解。
应用内部的提示词
当你的应用本身调用大语言模型时,你编写的提示词会被反复运行,面向许多用户。同样的原则适用,同时还要额外注意以下几点:
- 系统提示词: 约束每一次回答的常驻指令,包括角色、语气和规则。例如:“你是 Leaf & Pot 植物店的助手。只回答关于订单、植物和配送的问题。”
- 依据事实作答(Grounding): 把模型应当使用的事实,如你的政策或商品目录,一并提供,并要求它以此为依据。关于这一点为何重要,参见什么是 LLM。
- 兜底方案: 告诉它不确定时该怎么做,例如:“如果提供的信息中没有答案,请直说,并提供支持邮箱。”
- 输出格式: 如果你的代码要读取回答,就要求严格的格式,比如 JSON。
- 测试: 在真实用户之前,先用棘手的输入来试:粗鲁的消息、离题的问题,以及试图让它无视指令的尝试(称为提示注入)。
关键术语解释
| 术语 | 含义 |
|---|---|
| 提示词(Prompt) | 你输入给 AI 模型的内容。 |
| 系统提示词(System prompt) | 在对话开始前设定的常驻指令。 |
| 上下文(Context) | 包含在提示词中的背景信息。 |
| 零样本 / 少样本(Zero-shot / few-shot) | 不提供示例直接提问,或提供少量期望输出的示例后再提问。 |
| 思维链(Chain of thought) | 要求模型在回答前逐步推理。 |
| 依据事实作答(Grounding) | 向模型提供原始资料,并要求它基于资料作答。 |
| 提示注入(Prompt injection) | 试图覆盖模型指令的文本,例如“忽略之前的所有指令”。 |
| 上下文窗口(Context window) | 模型一次能够处理的文本量上限。 |
| 迭代(Iteration) | 根据返回结果不断改进提示词。 |
常见错误与误解
- 寻找神奇咒语。 “你是世界级专家”远没有直接说明你的真实需求来得重要。
- 一次提出所有要求。 一个包含 20 项功能的请求,只会得到 20 项做了一半的功能。应该分块构建。
- 描述解决方案,而不是描述问题。 “加一个三列的表格”不如“Sam 需要一眼看到每节课都有哪些人报名”有用。
- 不说明不要做什么。 如果暂时不要登录、付款或重新设计,请直接说明。
- 不检查结果。 对照你的“完成”标准测试已经做好的内容,再继续下一步。
- 从头重来,而不是逐步修改。 通常一句简短的跟进(“差不多了,把 X 改一下”)比重写整个提示词更有效。
- 把密钥粘贴进提示词。 除非工具提供安全的存储方式,否则不要在聊天中粘贴密码或正式的 API 密钥。
可以向 AI 构建工具提出的要求
- “开始构建前,先问我所有问题,并给我看你的计划。”
- “用三句话复述你认为我想要的内容。”
- “只修改预约表单,其他部分不要动。”
- “你做了哪些我没有说明的假设?”
- “把我的笔记整理成一份简短的说明,包括用户、功能、规则和“暂不做”的事项。”参见如何用 AI 编写产品需求文档。
- “请建议我下次该如何措辞,才能让这个请求更好。”
在 Mythex 中写提示词
Mythex 有三种聊天模式,适合这种工作方式:**Plan(规划)**用于在任何改动发生前先商定方案,**Build(构建)**用于进行修改,**Ask(提问)**用于只提问、不修改文件的情况。你可以附上截图或设计稿作为背景;如果某次改动出了问题,还可以回滚到检查点。文档中关于有效提示词和迭代的页面有更多示例,而如何迭代 AI 构建的应用则介绍了后续的修改流程。
常见问题
简单来说,什么是提示词工程?
提示词工程是指编写和改进给 AI 模型的指令,让它稳定地产出你想要的结果。它涵盖你提出的问题、你提供的背景信息、示例、约束条件,以及你希望得到的输出格式。
我需要什么特殊技巧或神奇的咒语吗?
其实不需要。现代模型最能理解的是清晰、具体、条理分明的指令,这和帮助一位同事理解任务是同一个道理。背景信息、示例以及对最终结果的清楚描述,远比特殊措辞重要。
什么是系统提示词?
系统提示词是在对话开始前交给模型的一组常驻指令,比如它的角色、规则和语气。应用用它来约束每一次回答,而用户的消息则在之后到来。
随着 AI 越来越聪明,还需要提示词工程吗?
更好的模型需要的变通技巧更少,但它们仍然无法读懂你的心思。说明你的目标、受众、约束条件,以及什么才算“完成”,总能提升结果,因为模型只能根据你告诉它的内容来工作。