存在角色的提示词。
你作为一个在行业里深耕了十年, 并且专注于编写整洁又容易维护代码的前端技术专家, 现在需要协助构建一个用于用户认证的网页界面。
效果差具体是差在了哪里呢? 在设定了特定角色之后, 人工智能系统的输出内容就会产生一种明显的倾向性, 它更偏向于:
你并不需要每次去设定角色, 遇到简单的任务直接提出需求即可。然而在做稍微复杂一点的项目的时候, 加上对角色的描述, AI的表现会变得更好许多。
一些常用的角色设定:
第二要素, 也就是任务, 是要告诉人工智能去执行什么操作。
这是每一个提示当中必定包含的那个部分, 也就是你需要向 AI 明确指示它应当去做的事情。
听起来像是些没用的废话, 然而确实有不少人在这一步骤上出现了问题, 其中最为普遍的错误情况便是表达内容过于含糊不清。
请您去查看这两个东西, 然后进行相互对比。
任务不明确, 不够清楚。
我这边呢, 需要你帮忙去对这个数据进行处理工作。
人工智能在心里嘀咕, 这到底说的是哪一些数据, 它们被存放在哪个具体的位置地方, 需要被加工处理成一个什么样的最终结果, 是不是要进行挑选和筛选的工作, 要不要把排好顺序列清楚, 还得汇总统计一下最后生成出图表来。
清晰的任务:
请你去帮我弄一个脚本, 这个脚本的主要功能是什么, 就是要先读取一下就在当前目录下面放着一个叫做 sales.csv 的文件, 然后, 要把那个销售额按照月份来做一个汇总统计的动作, 最后还要生成一个柱状图出来, 并且把这个生成的图表保存成 chart.png 这个名字。
这一次, 人工智能心里清楚它应该去做哪些事情, 这些事情包括把数据读出来、把信息汇总起来以及把图表生成出来, 它明确知道要处理的是名为sales.csv这个文件, 最后它所产生的结果就是那个名为chart.png的图片。
这个事儿有三个点需要说清楚。
用户需要执行什么样的操作, 比方说是创建一个东西、修改一个现有的对象、进行某项分析任务、实施格式转换动作, 或者是生成一个新的实体等等;用户处理的到底是什么目标物品, 比如具体是哪一份文件、哪一块代码片段, 或者是什么类型的业务数据;最终产生的交付成果是什么, 例如是一个完整的网页页面、一段可运行的脚本程序、一份详细的数据报告, 又或者是一张可视化的图表内容。
只要把这三点给说清楚了, 那么人工智能就不会发生偏离。
第三要素是约束, 它的作用是向人工智能明确地说明应该如何进行操作和处理。
任务这个说法是用来告诉人工智能具体去执行哪些工作的, 而约束这个概念则是用来规定人工智能应当通过什么样的路径和方式去完成这些工作, 同时也会明确禁止人工智能去做那些不被允许的行为。
约束就相当于是你所划定的一条界线。倘若失去了这条界线, 人工智能便会依据其自我设定的偏好去进行操作, 在这种情况下, 该智能体可能会采用一种你根本不了解的技术框架, 或者输出了一个必须依赖后端服务器才能够运行的解决方案, 又或者将代码分散成了多达七八个文件, 从而让你感到难以进行有效管理。
没有约束的提示词:
你帮我做一下那个待办清单的应用程序。
人工智能可能会向你提供一个由 React 搭建的项目项目, 在这种情况之下, 你是需要去安装 Node.js 这个运行环境的, 同时你也是需要在命令行里面使用 npm 命令来进行各种操作的, 并且还需要面对着一堆让你完全感觉不懂的、看起来非常复杂的配置文件。
带有明确限定的提示语。
请协助您进行一个待办清单应用的开发工作, 需要遵循如下约束条件。
请采取纯HTML和CSS进行开发, 坚决不要使用任何框架。
你需要把全部的那些代码, 都放在同一个HTML文件当中。
数据存储的工作, 实际上是放在浏览器的某个特定的位置里面的, 这一点是不需要使用到后端的服务支持的。
界面设计得比较简洁, 而且使用的是中文来进行相关呈现操作。
这就够了, 也就是支持添加这一项功能, 再加上完成这一项功能, 还得有删除这一项功能。
这次人工智能提供给您的这些内容, 只要你把它打开的话, 就能够直接去使用它, 完全是完全不需要你去进行那些额外的安装步骤, 也是完全不需要你去进行那些额外的配置工作的。
常用的约束类型:
约束类型
示例
技术约束
在使用的时候要遵循三点要求, 第一个是标注为三英寸, 第二个是明确声明不要使用第三方库, 第三个条件是只用一个文件来完成。
风格约束
界面必须保持简洁的样子, 代码需要加上用中文填写的注释内容, 同时配色的样式要显得比较专业。
范围约束
只去做那些核心的功能, 是不需要去搞登录功能的, 也不要去做移动端的适配工作。
输出约束
代码的总行数不要超过 100, 必须提供完整并且可以成功运行的版本, 绝对不能将任何部分给省略掉。
约束是不需要面面俱到的。你只需要把那些, 如果不去说, 人工智能就会自作主张的事情明确下来就可以了。在用了几次以后, 你就会知道人工智能在哪些地方容易发生发挥过度的情况, 然后就可以在那些地方加上约束。
第四个部分, 也就是第四要素, 它是一个示例, 这个示例的作用在于告诉 AI, 需要像这样去做。
如果说前三个要素是在通过文字形式进行表述的话, 那么示例就是在利用具体的实际案例来进行操作演示。
在绝大多数场合下, 你所花费大量时间和精力使用文字进行描述所取得的效果, 远远不如干脆直接给人工智能模型提供一个具体的示范例子来得更为直观和有效。
没有示例的提示词:
请求编写一个代码函数, 作用是对由用户那边提交的日期数据进行转换, 最后得到那种看起来很友好的人话式的时间格式展示。
人工智能无法确定"友好的格式"这个概念的具体含义。它是否指的是"2026年1月1日"这样的内容? 或者是"1月1日 周四"这类形式? 又或者代表的是"3天前"之类的说法呢?
有示例的提示词:
请你编写一个函数, 这个函数的作用是将日期的字符串表示转换成为一种比较友好的、用中文写出来的格式。
输入输出示例:
将输入的2026-01-01这个日期数据, 进行转换并生成输出为2026年1月1日周四。
在<2026年3月15日>这一天的日历上, 它同时也是<周日>。
把格式为“2025-12-31”的日期, 修改并输出成“2025年12月31日 周三”。
这次的情况不一样, AI 它不用费心去猜测了, 因为它能够直接从给出的那些示例里面看出你想要的那种确定的格式怎么样, 就是年月日加上星期几这些东西。
这种情况是特别有用的场景。
你提交的那个示例的内容完全不需要特别多——具体来说, 也就是只需要准备一两个这样的例子就完全可以达到了。最为关键的一点在于, 必须使得人工智能能够非常明确地了解你所期望的那种特定的运行模式到底是指哪一个样子。
四要素组合实战
光说不练假把式这一句话的意思是光说不去做那就是假的本事, 所以我们就把这四个要素给组合起来一起编写出一个完整的提示词出来。
假定你打算去开发一个网页这个玩意儿, 它的功能叫做随机名言, 那么它的具体表现是这样的, 就是说每一次当使用者刷新了页面的时候屏幕上就会出现一句完全不同的来自于某位著名人的话语。
其实严格来看的话, 就只有这一个方面, 那就是说这个任务的具体的版本号嘛。
我要你去做一个网页, 这个网页是用来展示随机名言的。
请把(两个要素)这个部分给补上呗。
请制作一个能够随机展示名言单片的网页应用程序, 该程序需要将所有代码整合在一个单独的HTML文件里面来实现功能, 不需要任何外部的依赖支持, 并且展示的言语内容必须是中文的。
请加入相关的人物角色以及相关的示例内容, 从而构成一个包含四个部分的完整版本。
你这个人呢, 现在就是一个在前端这个大领域里头干活儿的开发工程师, 而且特别擅长去写那种只用一个页面就能搞定的、看起来既简单又漂亮的应用程序之类的东西。
请帮我创建一个随机名言展示网页, 要求:
1. 生成一个 HTML 文件, 确保其完全自包含, 不使用任何第三方库或外部资源。
2. 在这里面我们看到了至少有十五条关于中国名字很有名的人说的话, 这些话还都带着他们的作者的名字。
3. 当用户每次刷新页面的时候, 屏幕会随机地显示出一条内容。同时, 用户也可以点击特定的按钮来切换出下一条相关内容。
4. 页面的设计呈现出了简单而又优雅的样子, 内容是在居中的位置进行显示的, 并且在周围还添加了引号这样的装饰元素。
5. 这个背景, 使用的是那种, 让人感到温暖的米白色, 然后, 文字的部分, 是采用一种深灰色来进行书写和展示的。
名言格式示例:
- "学而不思则罔,思而不学则殆。" —— 孔子
这句话讲的是, 生活这件事并不是让你干等着那个风暴自己过去然后就算了, 而是在这个过程中你要学会怎么样去在那个雨下得很大的时候依然能够跳起舞来。这个话是维维安·格林说的。
在一般情况下, 你没有必要把所有的四个要素全部都用到。如果你的学习任务比较简单, 那么就只需要保留“任务”以及相应的约束条件就完全足够了;但是, 如果你遇到的任务是比较复杂的情况, 或者是人工智能模型出现了理解错误的现象, 那么就需要把“角色”这一部分和“示例”这一部分也增加进去。
请你把它想象成是一个关于调味的东西。
小结
好提示词的四个要素:
角色, 指的是告诉人工智能系统它自己是哪个身份, 这样会直接影响到输出的专业程度以及风格特点。任务, 则是明确地告诉人工智能要完成什么样的工作, 这里必须清楚地指出具体的动作、对象以及期待的最终结果。
约束部分的作用是指导人工智能应该按照什么样的方式去执行操作, 同时也需要明确指出哪些事情是不能做的, 以此来划定好行为的边界和范围。示例的意义在于给人工智能提供参考范例, 这种做法比用一百句话来详细解释还要有效得多。
你完全无需采取机械死记硬背的方式来记忆这个框架本身。当你去实际操作多次这个流程之后, 那么它自然就转变为你的本能反应, 以至于在你撰写特定的提示词的时候, 你会自然而然地就会想到我是否应当补充相关的约束条件或者是否需要提供明确的示例说明。
在接下来这一节当中, 我们打算开展一个更为直观的练习活动, 这个活动的具体内容是面对同一个需求, 从最初比较模糊的状态开始, 一直到后来非常精确的状态为止, 进行一步步地改进提示词的操作, 并且观察每一个步骤中的那些改进措施究竟是如何使得人工智能系统所产生的输出结果变得越来越好的。