提示词(prompt)是你交给 AI 模型、告诉它要生成什么的输入。在 ChatGPT、Claude 或 Gemini 中,它就是你在输入框里输入的消息,加上你附带的任何东西:一个文件、一张截图、一段粘贴的报错信息。模型读取提示词,并顺着它写出回复。除此之外,它没有任何途径了解你想要什么,所以提示词就是你的全部请求。
这个词来自它在英语中的日常含义:prompt 某人,就是提示他开口或行动。AI 提示词就是这个提示。它可以是一个问题、一条指令、一段附带任务的文本,或者对一幅图片的描述。
提示词由哪些部分组成
一行字的问题也是有效的提示词,如果只需要一行字的回答,这往往就够了。随着请求变得更具体,提示词通常会包含同样的几个部分:
- 任务:要做什么,通常是一个动词。解释、编写、修复、总结、翻译、比较。
- 上下文:模型猜不到的事实。你是谁、你已经知道什么、结果要用来做什么。
- 输入:要处理的材料。代码、邮件、表格、文章。
- 格式:回答的形式。列表、表格、三个短段落、JSON。
- 约束:各种限制。字数、要避免的词、不能改动的部分。
弱提示词和强提示词的区别,很少在于措辞是否巧妙,而在于这些部分有没有写出来。“写一个对列表排序的函数”让模型去猜语言、数据和排序方式。补上这三点事实,就不用猜了。如何写提示词逐一讲解了每个部分,并附有可以开关各部分的示例。
提示词示例
想要得到的东西不同,提示词的样子也不同。在标签页之间切换,看看用于写作、写代码和学习的提示词,每个都附有一个典型的回复。
你好,我原本预计周一能收到报告,但到现在还没有收到。我需要在今天下班前拿到,才能按时把数据发给客户。能告诉我报告什么时候能好吗?谢谢。
图片提示词的原理也一样,只不过回复是一张图片。图片生成器,包括一些聊天应用内置的那些,最擅长响应对主体、场景、风格和构图的描述:
一幅水彩插画:日出时分,一个小机器人在城市阳台上给植物浇水,柔和的暖光,远景。
每个细节都替你做掉了一个原本要由模型来做的选择。去掉“水彩”,你可能会得到一张照片;去掉“远景”,阳台可能会被裁掉。
提示词、回复和系统提示词
和 AI 模型的一次典型聊天涉及三段文本,分清它们的名称会很有帮助:
- 提示词(也叫用户消息)是你为这次请求发送的内容。
- 回复(也叫响应或补全)是模型写回来的内容。
- 系统提示词是一组对整个对话都生效的固定指令。它由应用或开发者设置,你也可以通过自定义指令或项目指令等设置往里添加内容。
下面的示例展示了这三者。系统提示词只设定了一次规则,即使用户从没重复过,回复也遵循了它。
很接近了!给你一个提示:运行 print(list(range(1, 4))),把输出和你传给 range 的两个数比较一下。
你注意到了什么?你会怎样修改你的循环?
没有系统提示词的话,模型多半会直接给出修改方法 range(1, 11)。系统提示词改变了聊天中每条消息的行为。系统提示词讲了在哪里设置它,以及里面该写什么。
提示词不只是你的最后一条消息
在对话中,模型并不会像人那样记住之前的几轮。每次你发送消息时,应用都会把系统提示词和目前为止的对话发给模型,你的新消息放在最后。模型真正回应的,就是这段合在一起的文本。
这带来两个实际影响。第一,之前的消息会持续影响后面的回答:如果你十条消息之前说过“使用 TypeScript”,这条指令仍然有效。第二,模型一次能接收的文本量是有限的,以 token 计量。当对话超出这个上限时,应用必须丢弃或压缩较早的部分,或者让你开一个新聊天,而聊天开头的指令可能就不再起作用了。Token 和上下文窗口解释了这个上限是怎么回事。
提示词不是数据库查询
模型本身不会去查找任何东西。它一小段一小段地生成回复,每一段都根据提示词和训练中学到的模式来选择。(带有网页搜索或文件工具的应用会先获取材料,再把它加进提示词;模型依然是根据摆在它面前的文本来写。)这就是为什么同一个提示词运行两次,回复可能略有不同;也是为什么当提示词问到一个模型并不掌握的事实时,它可能会信心十足地说出错误的内容。
由此可以得出两个习惯。把你需要答案依据的事实直接放进提示词里,比如文档、数字或报错信息,而不要指望模型知道它们。在使用回复中的任何事实、数字或引文之前,先核实一遍。
常见问题
AI 中的提示词是什么?
提示词(prompt)是你交给 AI 模型的输入:你输入的问题、指令或材料,有时还包括你附上的图片或文件。模型读取提示词,并顺着它生成回复。模型对你的请求的全部了解,都来自提示词以及它所在的对话。
prompt 是什么意思?
在日常英语中,prompt 某人就是提示他说某句话或做某件事。在 AI 领域,prompt 是提示模型生成答案、代码或图片的文本。中文通常译作“提示词”,也常直接说 prompt;其他很多语言也借用了这个英文词,比如日语写作 プロンプト,韩语写作 프롬프트。
好的提示词是什么样的?举个例子。
“向一个懂列表但不懂字典的人解释什么是 Python 字典。用一个真实的例子,不超过 150 字。”它写明了任务、读者的水平、要包含什么以及篇幅。同一个请求的较弱版本只有一句“解释一下字典”,这些就全都要靠模型去猜了。
提示词和问题是一回事吗?
问题只是提示词的一种。提示词也可以是一条指令(“改写这封邮件”)、一段附带任务的材料(粘贴的报错信息加上“为什么会失败?”)、对要生成的图片的描述,或者让模型接着写下去的一段文本开头。
提示词和系统提示词有什么区别?
提示词是你为一次请求发送的消息。系统提示词是一组单独的指令,对整个对话都生效,比如“你是一位辅导老师,绝不给出完整答案”。开发者通过 API 设置它;在聊天应用中,自定义指令和项目指令起着同样的作用。见系统提示词。