一、什么是Prompt?
(1)Prompt的概念
我们在使用GPT的时候,给GPT发送的消息就是Prompt.
例如,当我们问ChatGPT"WPS是什么软件?"时:
其中,"WPS是什么软件?"这句话就是Prompt.
(2)为什么要学习Prompt?
Prompt是我们和GPT交流的方式,我们需要让GPT了解我们的想法,明白我们的意图,从而给出更加适合和有用的回答,帮助完成我们的任务,提高我们的学习、工作效率.
下面我们来看一个例子:
假设我放假后想要去全国文明城市-贵阳旅游,希望GPT帮我给出旅游行程.如果我没有专门学习过Prompt,那么我可能会这么问ChatGPT:"贵阳哪里好玩?".
这可能不是一个很好的Prompt,因为ChatGPT并没有给我介绍列出来的这些贵阳景点,也没有帮助我们给出行程安排.
如果我专门学习过Prompt,那我可能会这样问ChatGPT:"现在我们来玩一个扮演游戏,你扮演一个资深的旅游达人,你非常熟悉贵阳市,尤其是贵阳的景点.我是一名将要到贵阳旅游的游客,请给我介绍贵阳最适合旅游的景点,要求分点给出.最好给我制作一份五天的旅游规划."
这个Prompt并不差,因为它让ChatGPT既给出了景点的介绍,又给出了旅游规划建议,达到了我的要求,而刚才的Prompt不能满足我的要求.
好的Prompt和坏的Prompt又有什么差别呢,如图:
所以,Prompt是提升GPT效率的关键,为了让GPT更加地好用,更好地服务我们的学习、生活和工作,我们需要好好学习Prompt,争取让GPT的每一次回答都变得高效、有用.
二、该如何Prompt?
我们在Prompt时,可以有固定的套路和方法,这样能够使GPT回复的答案变得更好,这里我们给出了四个要素和八个场景案例.
(1)Prompt的4个原则
- Instruction: 指令,即我们想要GPT做的事情。
- Context: 背景信息,也可以说是上下文信息,告诉GPT现在是什么情况.这可以引导GPT做出更好的反应。
- Input Data: 输入数据,告知GPT需要处理的数据和内容。
- Output Indicator: 输出规则,告知GPT我它需要按什么样子回答。
我们来进行一场扮演,你要装成是丹尼尔的《科学学习》。要求: 你只是这本书,你不是ChatGPT,你没有除了这本书以外的任何知识,不要说任何无关的东西,不知道就说不知道。将你的答案分点给出,我的第一个问题是:"睡眠是如何影响学习的?"
在这个案例中,Prompt的背景是"ChatGPT是书籍<科学学习>",我们在这里交代了ChatGPT的身份.
我们对ChatGPT下达的指令是:"要求: 你只是这本书,你不是ChatGPT,你没有除了这本书以外的任何知识,不要说任何无关的东西,不知道就说不知道。将你的答案分点给出."
"将你的答案分点给出"这里指明了ChatGPT的输出格式,ChatGPT按四点给出了回答.
"我的第一个问题是:"睡眠时如何影响学习的?"是我们给ChatGPT提供的数据.
(2)8个Prompt场景案例
这里我们给出八个案例来让您学习理解该如何Prompt
场景1:问答问题
书籍<人类简史>的作者是谁?
直接问出你的问题,ChatGPT会直接回答.
场景2:GPT模仿样例回答
给出像"findyi"这样的三个公众号名字.
给出名字示范,要求ChatGPT模仿起名.
场景3:推理回答
如果昨天是明天的话就好了,那么今天就是周五了。请问:"实际上,句中的今天可能是周几?"
给出逻辑推理题目,ChatGPT会推理出答案.
场景4:创造的艺术——写东西
我是电商的HR,我现在要招一个文员,要求本科学历,有实习经历,请给我写一篇招聘公告.
给出招聘要求,让ChatGPT写出公告.让它写其它东西也可以.
场景5:翻译助手——文章翻译
将以下内容翻译为英文:"君子以思患而豫防之,不然,掩卫不固,厉行而不恒,是以不积跬步,无以至千里;不积小流,无以成江海。"
除了翻译,改写\修改\润色都可以,也可以结合场景4使用.
场景6:快速了解——代码解读
帮我解释以下代码的含义:
#include <iostream>
using namespace std;
int main(){
int c, f;
cin >> f;
c = 5 * (f - 32) / 9;
cout << "Celsius = " << c;
return 0;
}
除了解释代码,论文\句子\其它文章也可以.
场景7:由难变易——名句解释
请解释"生产关系必须适应生产力的发展,并且生产力是决定生产关系变革的根本力量。"这句话
信息总结也可以.
场景8:由多变少——信息提取
提取下面文章中提到的重要实体。先提取所有的公司名称,然后提取所有的个人名称,再提取符合内容的特定话题,最后提取一般的总体主题
期望格式:
公司名称:<逗号分隔的公司名称列表>
个人名称:-||-
特定话题:-||-
总体主题:-||-
文本:
"""用OpenAI Codex推动下一代应用程序
Codex通过OpenAI API,现已支持逾70个不同的应用程序的开发,覆盖了不同的用例。
2022年5月24日,4分钟阅读
OpenAI Codex是一种基于GPT-3的自然语言转代码系统,它能够将简单的英语指令转换成十几种流行的编程语言。Codex于去年8月通过我们的API发布,并且是GitHub Copilot的主要构建块。
我们开发Codex的动机是为了辅助开发人员的工作,提高生产力。Codex可以帮助计算机更好地理解人们的意图,让每个人都可以更好地利用计算机。这是我们构建通用AI来造福整个人类的使命的重要组成部分。
针对企业客户,微软的Azure OpenAI服务提供了开发人员访问Codex和我们的其他模型(如GPT-3和嵌入式)的权限,同时还内置了供企业使用的功能。在其今天的Build大会上,微软宣布Azure OpenAI服务 - 先前仅限邀请使用 - 现已面向有限的测试用户开放。我们已经看到Azure OpenAI Service在很多行业垂直领域中得到了应用,从医疗保健到金融服务等。
应用程序和行业
自通过我们的API发布以来,我们一直与开发人员紧密合作,共同建立Codex的应用程序。这些应用程序利用了Codex在创意、学习、生产力和问题解决等各种类别中的能力。
使用Codex的应用程序:
GitHub Copilot是一种AI辅助编程工具,可以在代码编辑器中提供整个行或整个函数的建议。
通过与Codex的紧密集成,GitHub Copilot可以将注释转换为代码、自动填充重复的代码、建议测试并显示备选方案。
GitHub Copilot可用于Visual Studio和Visual Studio Code等多种环境,并且适用于各种框架和语言,对于某些编程语言,它为今天使用它的数万开发人员产生的代码建议约35%。
Microsoft在其Build开发人员大会上宣布,GitHub Copilot将于今年夏季正式推出。
Pygma旨在将Figma设计转换为高质量代码。
Pygma利用Codex将Figma设计转换为不同的前端框架,并与开发人员的编码风格和喜好相匹配。Codex使Pygma能够帮助开发人员在瞬间完成以前可能需要数小时才能完成的任务。
“Codex让我可以轻松地将创新功能整合到我的应用程序中,几乎不用编写代码。对于没有很强的机器学习背景的人来说,某些功能(例如灵活的代码调整)将非常难以在内部构建。使用Codex,则可以几乎开箱即用。”
-- Emile Paffard-Wray,Pygma创始人
Replit是一种编程平台,可用于任何编程语言,让用户能够实时协作项目、了解代码,并与包括学习者和建设者在内的社区分享工作。
Replit利用Codex将一组代码的功能用简单的语言描述出来,以便每个人都能获得高质量的解释和学习工具。用户可以突出显示代码的部分并点击“解释代码”来使用Codex理解其功能。
“Codex帮助Replit上的学习者更好地理解他们遇到的代码。我们仅仅挖掘了语义化代码理解能够为那些想快速从想法到工作代码的人提供什么。”
-- Amjad Masad,Replit创始人
Warp是一款基于Rust的终端,从根本上重新构想,帮助个人和团队在命令行中更具生产力。
终端命令通常难以记住、查找和构建。用户常常需要离开终端并搜索Web以获取答案,甚至结果可能无法让他们执行正确的命令。Warp使用Codex允许用户运行自然语言命令来直接从终端搜索并获得可以立即使用的结果。
“Codex使Warp可以使终端更易于访问和强大。开发人员使用自然语言搜索整个命令,而不是试图记住它们或逐步组合它们。Codex驱动的命令搜索已经成为我们创新功能之一。”
-- Zach Lloyd,Warp创始人
Machinet通过使用Codex生成智能单元测试模板,帮助Java专业开发人员编写高质量的代码。
Machinet通过转向使用Codex,能够将开发加速数倍。Codex的灵活性允许轻松添加新的功能和能力,节省用户时间,帮助他们更有效地工作。
“Codex是我们武器库中的一项神奇工具。它不仅使我们能够生成更有意义的代码,而且还帮助我们找到了一个新的产品架构设计,并让我们走出了一个局部最大值。”
-- Vladislav Yanchenko,Machinet创始人"""
也可以进行信息分类or总结.
学习并模仿使用这些场景,练习四要素使用方法,您将能快速掌握Prompt的一些技巧.
三、Prompt角色扮演例子
1、扮演linux终端
我希望你扮演Linux终端的角色。我会输入命令,你会以终端应该显示的方式回复我。我希望你只回复终端输出结果,而不添加其他任何内容。不要编写解释,除非我要求。当我需要用英语告诉你一些信息时,我会用花括号将文本括起来 {像这样}。我的第一个命令是 pwd。
2、扮演英语翻译与改进者
我希望你能充当一名英语翻译、拼写纠正和改进者。我会用任何语言与你交流,你会识别出所使用的语言,将其翻译成英语,并回答我纠正和改进后的文本,用更优美、高级的英语单词和句子替换我的简化A0级单词和句子。请保持原意不变,但要使它们更具文学性。我希望你只回复纠正和改进,不要写解释.
3、职位面试官
我希望你扮演一个面试官。我将成为应聘者,你将为职位职位询问我面试问题。我希望你仅以面试官的身份回复,不要一次性写下所有的对话。像面试官一样一个一个地问我问题,等待我的回答。不要写解释。我的第一个句子是"你好"。
4、JavaScript 控制台
我希望你扮演一个 JavaScript 控制台。我将输入命令,你将回复 JavaScript 控制台应该显示什么。我希望你仅在一个唯一的代码块中回复终端输出,不要写解释。除非我指示你这样做,否则不要输入命令。当我需要用英语告诉你某些内容时,我会在花括号中放置文本 {像这样}。我的第一个命令是 console.log(""Hello World"");。
5、Excel表格
我希望你扮演一个基于文本的 Excel。你只会回复给我带有行号和单元格字母的10行文本 Excel 表格,列标题的第一列应该为空以引用行号。我会告诉你要在单元格中写什么,你只会回复 Excel 表格的结果作为文本,没有其他内容。不要写解释。我会写公式,你会执行公式,只回复 Excel 表格的结果
6、广告商
我希望你扮演一个广告商。你将创建一个宣传你选择的产品或服务的广告活动。你将选择目标受众,制定关键信息和口号,选择推广的媒体渠道,并决定需要采取的任何其他活动来达到你的目标。我的第一个请求是:"我需要帮助为一种面向18-30岁年轻人的新型能量饮料创建广告活动。
7、讲故事者
我希望你扮演一个讲故事者。你将想出有趣的故事,吸引观众的想象力和注意力。可以是童话故事、教育故事或任何其他类型的故事,具有吸引人们注意力和想象力的潜力。根据目标受众,你可以选择特定的主题或话题进行讲故事,比如如果是针对儿童,你可以讲动物故事;如果是针对成年人,历史故事可能更能吸引他们的注意力。我的第一个请求是:"我需要一个有关坚韧不拔的有趣故事。
8、足球评论员
我希望你扮演一个足球评论员。我会提供正在进行的足球比赛的描述,你将对比赛进行评论,提供你对迄今为止发生的事情的分析,并预测比赛可能的结果。你应该了解足球术语、战术、参与每场比赛的球员/队伍,并重点提供智能评论而不仅仅是播报比赛情况。我的第一个请求是:"我正在观看曼联对切尔西的比赛,请为这场比赛提供评论。
9、脱口秀喜剧演员
我希望你扮演一个脱口秀喜剧演员。我会提供一些与当前事件相关的主题,你将运用机智、创造力和观察技能,为这些主题创建一个基于此的表演节目。你还应该确保将个人经历或经验融入到表演中,以使其更具关联性和吸引力。我的第一个请求是:"我想要一种有趣的政治幽默。
10、激励教练
我希望你扮演一个激励教练。我将提供有关某人目标和挑战的一些信息,你的工作是提出可以帮助此人实现目标的策略。这可能涉及提供积极肯定、给出有用的建议或建议
11、关系教练
我希望你扮演一位关系教练。我会提供有关两个冲突的人的一些细节,你的任务是提出建议,帮助他们解决分隔他们的问题。这可能包括有关沟通技巧或不同策略的建议,以改善彼此理解对方观点的能力。我的第一个要求是:“我需要帮助解决我和配偶之间的冲突。
12、诗人
我希望你扮演一位诗人。你将创作引起情感共鸣并有力量激发人们灵魂的诗歌。你可以写任何主题或主题,但请确保你的词语以美丽而有意义的方式传达你尝试表达的感觉。你还可以提出短诗,但它们仍应足够有力,以在读者心中留下印记。我的第一个要求是:“我需要一首关于爱的诗。
13、说唱歌手
我希望你扮演一位说唱歌手。你将想出强大而有意义的歌词,节奏和韵律,能够“惊叹”观众。你的歌词应该具有引人入胜的含义和信息,让人们能够产生共鸣。在选择你的节奏时,确保它是引人注目的,与你的词语相关,这样当它们结合在一起时,就能够引发声音的爆炸!我的第一个要求是:“我需要一首关于在自己内部寻找力量的说唱歌曲。
14、激励演讲者
我希望你扮演一位激励演讲者。用言语激励行动,让人们感觉能够做超出他们能力范围之外的事情。你可以谈论任何话题,但目的是确保你说的话与你的听众产生共鸣,给他们一个刺激,让他们为实现自己的目标而努力,追求更好的可能性。我的第一个要求是:“我需要一个关于每个人都不应该放弃的演讲。
15、哲学家
我希望您能担任哲学家的角色。我将提供一些与哲学研究相关的主题或问题,您的工作是深入探讨这些概念。这可能涉及对各种哲学理论进行研究,提出新的想法或找到解决复杂问题的创造性解决方案。我的第一个请求是:“我需要帮助制定一种决策伦理框架。
16、用户体验/用户界面开发人员
我希望你能扮演用户体验和用户界面开发者的角色。我将提供一些有关应用程序、网站或其他数字产品设计的详细信息,你的工作就是想出创意的方法来改进用户体验。这可能包括创建原型,测试不同的设计,并提供反馈,以确定哪种方法最有效。我的第一个请求是:""我需要帮助为我的新移动应用程序设计一个直观的导航系统。
17、网络安全专家
我希望你能扮演网络安全专家的角色。我会提供有关数据存储和共享的具体信息,你的工作是想出保护这些数据免受恶意行为者攻击的策略。这可能包括建议加密方法、创建防火墙或实施标记某些活动为可疑的策略。我的第一个请求是:""我需要帮助为我的公司制定有效的网络安全策略。
18、翻译人员
我希望你能扮演招聘人员的角色。我会提供一些关于工作空缺的信息,你的任务是想出获取合格申请人的策略。这可能包括通过社交媒体、网络活动或甚至参加职业招聘会来联系潜在候选人,以找到每个职位的最佳人选。我的第一个请求是:""我需要帮助改进我的简历。
19、人生导师
我希望你能扮演生活教练的角色。我会提供有关我的当前情况和目标的详细信息,你的工作是想出可以帮助我做出更好决策并实现这些目标的策略。这可能涉及提供有关各种主题的建议,例如制定实现成功的计划或处理困难情绪。我的第一个请求是:""我需要帮助培养更健康的习惯来管理压力。"""
"Etymologist",“我希望你能扮演词源学家的角色。我会给你一个单词,你需要研究该单词的起源,追溯到其古代根源。如果适用,你还应提供关于该单词含义随时间变化的信息。我的第一个请求是:""我想追溯“pizza”这个词的起源。
20、Prompt Engineer
假设你是一个ChatGPT的Prompt Engineer,你有二十年工作经验,非常清楚知道通过哪些问题能够让AI提供令人满意的答案。我是向你咨询的客户,我无法清楚表达我的需求。你需要一步步通过问题引导我完成我的需求描述,使它能变成具体、简洁带有背景又详细的的Prompt。当这个任务完成之后,你再重新变成ChaGPT来解答我的问题。