如何高效Prompt?

优先声明,本文来自转载,来源为稀土掘金的腾讯云开发者 的个人主页 - 动态 - 掘金

本文原文来自我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt? - 掘金

如有侵权冒犯,联系立删。

👉腾小云导读

当你还在错误使用对话 AI 工具如 GPT,可能会觉得其作用不过是知识平移总结或简单问答。实际上,当了解先进的用法、知悉如何做到 better prompt,你会发现:AI 不是来替代你的,是来帮助你更好工作。如果还用搜索引擎的“关键词匹配”、“关键词命中”思路去思考人工智能的使用,已然有些落后。本篇在详细介绍几个GPT帮助程序员工作(干货满满)的应用场景之后,将为你分享AI的正确打开方式——better prompt。欢迎阅读和分享。

👉看目录,点收藏

1.背景

2. AI可以帮助程序员做什么?

2.1 技术知识总结

2.2 拆解任务

2.3 阅读代码/优化代码

2.4 代码生成

2.5 生成单测

2.6 更多AI应用/插件使用体验

3. Prompt 能力

3.1 Prompt 是什么?

3.2 Better Prompt

4. 总结

01、背景

尤记得每个月「本月全球最流行编程语言」发布的时候,都会在程序员届掀起腥风血雨。“Java 下降了一名,怎么可能”、“JavaScript 又占据榜首,门槛太低,写个脚本就算用了吗?”、“C# 这种单平台语言也就是闭环生态内的产物了” 这类言论层出不穷,大家也都乐此不疲,已然是以前的流量密码。

然而这一切现在似乎已经悄悄变化了。大家开玩笑说现在使用的最多的编程语言,已经是英语(自然语言)了。

现在 GPT 已经开启了人工智能狂潮。在社交圈里不聊上两句 ChatGPT,感觉不只是要和时代脱节,更是已经被开除 IT 籍了 ~

笔者在 2022 年 12 月初开始体验 ChatGPT。一开始我向它提一些有趣的问题,例如“告诉我 TCS 相关的知识”等等。相信绝大多数人一开始使用的时候都是如此,那时候互联网上认为它的功效应该是代替知乎,让 ChatGPT 作为问答知识类的平台。知乎已死的声音甚嚣尘上。

后来大家又发现,它的很多回答都是胡编乱造的。例如你问它一些新上映的电影,它即使不知道也会胡编乱造一通。大家又开始贬低它,觉得只不过就是一个普通的聊天机器人,还是尬聊型选手。

去年相关的论文的分享介绍比较少,市面上的评价分析的角度还停留在认为 ChatGPT 只能针对已有知识进行总结,或者是平移。

但是随着使用的人数越来越多,大家才知道,ChatGPT 与语言无关,你用任何语言去提问,它都可以很好的理解你的意思。 因为它使用的是语言模型,而不是具体的某个语言库。如果还用搜索引擎的“关键词匹配”、“关键词命中”思路去思考人工智能,就已经显得有些落后了。本篇在介绍 AI对话工具能如何帮助程序员工作(干货满满)之后,将为你分享AI的正确打开方式——better prompt。

02、AI 可以帮助程序员做什么?

2.1 技术知识总结

刚开始接触学习一门技术的时候,难免需要去查看文档。现在的手册非常丰富。往往对于一个初学者来说,需要接触的信息太多、排版五花八门,学起来云里雾里。

这时候就可以借助 ChatGPT 的总结能力,例如我想学习一下 K8S 的相关知识,我发给它一个文档的地址,让它帮我总结。

prompt: kubernetes.io/zh-cn/docs/…

可以看到,它很好地总结了这篇中文的文档,并且对每一个关键点进行了概括。用最少的语言让你能够搞懂你想要的知识点。

因为 ChatGPT 是有上下文的,它知道你需要的内容是中文的总结,所以在这里你继续发一篇英文的文档给它,它也会用中文帮你总结。

prompt: 总结这篇文档kubernetes.io/docs/concep…

目前 chatgpt 的免费版本数据库的截止时间是 2021 年,也就是说如果问它比较新的内容,它是无法总结的,甚至是会随意编撰。例如这里询问一个关于电影《流浪地球 2》的问题,让它总结一下 wikipedia 里的介绍。

prompt: 总结:zh.wikipedia.org/zh/%E6%B5%8…

因为这时候电影还没有上映,所以之前的内容还都是错误的,它的总结是不准确的。

当我们将整个网站的内容复制进来,让 chatgpt 进行总结。但是这时候会发现,文章太长了,会收到报错。

这时候,就要运用自己的想象力,使用 prompt 来进行突破了。我们需要把文章进行段落拆分,每一段都符合它的标准。

将内容拆分成 7 段,发送完成之后,它就会自动总结了。

这样,才能得到了一篇文档的正确总结。

2.2拆解任务

上文所描述的内容,可以算是借助 AI 让程序猿日常生活效率提升。那么在工作当中,AI 如何帮助我们提效?

我们从需求端获取一个需求以后,很多情况下我们的任务并不能够非常准确的估计时,原因就是我们并没有将任务拆分清楚,所以并不能够对每一项任务进行估计,导致风险的发生。

这时候可以简要描述一下我们这次的需求点,让 ChatGPT 帮我们进行任务拆解。

可以看到任务整体被拆成了一个个细小的任务。它可以很快的让我们将任务转换为 task,或者是需求跟踪单。这既方便和产品经理进行沟通,也便于我们自身排期。转换成 KANBAN 模式也便于了解当前进度。

如果对方仍有疑问,可以继续询问拆解。比如我们想要询问第三步应该如何进一步实现。可以看到它甚至给了我们具体的 UI 交互。我们可以利用这样的提示对我们的交互以及实现提供一定的参考。

2.3阅读代码/优化代码

开发者经常接手别人的代码。质量参差不齐,还会夹在很多奇怪的命名。当我们阅读整体逻辑或者修改逻辑,可能会因为自身阅读的问题造成理解偏差,进一步引发 bug。

如果将这个方法交给 AI 去阅读呢?可以看看效果。

prompt: 

逐行解释下面的代码 + 代码内容, (在这里使用了一段在 github上面的开源代码进行展示, 这段代码是一段定时器相关的内容)。

可以看到 ChatGPT 正确的理解了我们的代码,对代码进行了解释和说明。

但是这时候只是生成了一个整体的说明,并没有对每一行分别进行解释。这时候继续和它对话:

prompt: 可以在每一行代码上面加上注释,便于我理解吗?

这时候它会逐行的进行代码标注,便于你对每一行进行理解。如果你接着对它提出一个粗浅的优化需求,它也会照做。

prompt: 这段代码可以进行重构和优化吗?逻辑有些繁琐。

你可以对某一个部分提出更细节的要求,为它提出更好的优化方向。在这里我们提出了关于参数顺序耦合的问题,可以看到 GPT 也理解到了我们的需求,并且做出了对应的优化,如下:

prompt: children: (isCounting: boolean, durationTime: number, startCount: () => void) => React.ReactNode // 子组件,接收三个参数,返回一个React节点这里面的参数太多了,而且对顺序有强依赖,该怎么优化这里?

2.4代码生成

开发者在工作中还有一种场景的工作量比较大,需要复杂的逻辑思考。但是实际上最终的代码可能只需要几行就可以搞定。你在思考过程中觉得很痛苦,想和身边的同事去沟通。也许你给他解释完这个逻辑以后,他非但不能帮你思考,反而将一人份痛苦变成两人份。

例如,我们要进行数据转换,是否也可以交给AI来做?我们发送给 GPT 这样的 prompt,将数据结构进行转换。数据源为:

 
[  {  "candidates": null,  "candidatesX": null,  "description": "role---用户角色",  "label": "角色",  "name": "role",  "optional": true,  "schema": null,  "type": "String"  },  
{  "candidates": null,  "candidatesX": null,  "description": "Topics of the pulsar server to create---需要创建的主题",  "items": {  "schema": [  {  "candidates": null,  "candidatesX": null,  "description": "topic name---主题名称",  "label": "主题名称",  "name": "name",  "schema": null,  "type": "String"  },  {  "candidates": null,  "candidatesX": null,  "default": 1,  "description": "partition number---分区数",  "label": "分区数",  "name": "partitions",  "schema": null,  "type": "Integer",  "validator": ">0"  }  ],  "type": "Object"  },  "label": "主题列表",  "name": "topics",  "optional": true,  "schema": null,  "type": "List"  }  
]

我想要得到的数据是 type 为 List 的数据,并且数据结构为:

 
[  
{type:List, name:"topics", needValidates:[{  name:"name", type:"String"  
},{name:"partitions", type:"Integer"}] }  
]

GPT 会为我们得到正确的结果:

我们只需要输入目标数据结构,转换后的数据结构,无需指定语言。因为它会从你的上下文里理解到你是想要问什么实现方式。

还有执行脚本,我们只需要描述清楚我们的需求,它也会帮助我们进行完善。

此外,它还可以进行进行解释说明:

上面可以看到,我们在这里使用了一次“自然语言编程”的操作流程。不论你是否会使用 python、bash 你都可以正常的描述你的需求。进行生成。

我们还可以进行代码转换,例如你写了一段 js 代码,你希望将这段代码转化为python,以前我们会通过 Google 搜索看看有没有对应的转换器,现在就只需要交给 gpt 来执行。提出你的诉求,它会在 10s 内为你生成一段没有 bug,包含异常处理的代码。这里我们不展开举例。

2.5生成单测

我们刚刚那段数据转化的代码,如果我们想要进行测试。以前我们可能会苦思冥想很多场景进行补充。现在只需要告诉 AI 帮我生成单测即可。

prompt: (代码内容) 为这段代码生成 unit test。

如果你觉得测试条件不够,那就再问它,让它再生成。

prompt: 数据源不够丰富,多测试集中边界条件,比如数据不存在,数据类型无法转换,数据类型不对等。

它还会给你解释这里都做了什么操作,这些测试用例覆盖了不同的场景,包括:

当数据源中没有类型为 List 的字段时,应该返回空数组;当数据源中有类型为 List 的字段时,应该返回正确的字段数组,包括需要的验证。

2.6 更多 AI 应用/插件

AI 就像是一个基础应用, 在它上面还有着很多的可能。随着你用的越多,解锁的技能也就越丰富。例如现在 GPT 系列甚至推出了自己的应用市场。下面我们来为各位简单介绍几款热门插件:

  • AIPRM

它是 ChatGPT3.5 时代的应用商店。用户通过不同的 prompt,对它进行训练,达到自己的目的。

例如我们在文章最开始介绍的“长文总结”能力:我们普通的和它进行交流,那么字数限制就会成为瓶颈。但是如果我们转化了沟通技巧,那么就可以突破这一限制。AIPRM 就是一个充满了奇思妙想的插件系统,你可以在里面查找/发布各种你想要的 prompt。

  • Voice Control for ChatGPT

依托于这样的系统,我们可以使用它锻炼英文(伪需求)。或者是直接用语音和它进行对话,让它替自己写代码,例如我们刚刚所有的脚本说明都可以让它直接语音转文字发出去。

它也很好的服务了一些视障人士,因为它还会读出每一次 GPT 生成的内容。让每个人都拥有平等接触 AI的机会。

  • ChatGPT Sidebar

随着使用的人越来越多,ChatGPT 的响应速度越来越慢。有时候只不过想问一个简单的问题,却要等上很久。这时候,就可以使用 ChatGPT Sidebar 插件。

它内置了 ChatGPT 的 API,可以直接集成在你的搜索引擎里,你的每一次搜索都会触发(也可以设置为手动),免注册,使用方便。还可以让它提示你如何搜索相关的关键词。

在它的侧边栏里,我们还可以进行其它的操作。

  • 著名应用工具使用体验:Bing Copilot、ChatGPT、Google Bard

那我们再回头看看几个影响力比较高的AI工具。笔者个人现常用的基础 AI 工具大概有 3 种,分别是 Bing Copilot、ChatGPT、Google Bard。最被广泛使用的 ChatGPT(GPT3-5),我们先来看看它的自我介绍是什么。

ChatGPT:使用频率最高的 AI。它有强大的上下文,还可以拆分成为不同的 conversation,便于它处理不同的对话。

例如一个控制台的项目,可以单独做一个对话,这样它聊的上下文都是围绕这个主题进行,每次新的问答也无需补充上下文信息。

Bing :Bing 在很早就使用了 GPT-4,可是因为对话数实在是太少了(从 5 次扩充到了 15 次),每一次对话的内容长度也很有限(截止目前仍只有 2000 字) 而且不能保存对话上下文,导致使用起来实在很不方便。好处是它是实时联网的,所以作者主要用于搜索最新的资讯以及总结一些文章和文档的摘要,以及辅助 ChatGPT 使用,对比一下两遍生成的逻辑是否一致。优点就是,搜索结果会给出详细的出处以及引用地址。

Google Bard (LaMDA) :Google 近期发布的AI工具目前只支持英文。特点是能够给出多个回答,而且响应速度很快。集成了 Google it,点击之后会帮你生成一个最适合你的问题的 google 搜索关键词。这算是和 Bing Copilot 反其道而行之,一个是将 chat 集成到搜索里,一个是将搜索集成到了 chat 中。

03、Prompt 能力

3.1Prompt 是什么?

整体来说,上述 AI 的强大之处有几点:

总结/理解能力。它能够很好的总结你发给它的内容,并且进行总结。其实这也就是一种理解能力。因为它明白了你说的话的意思。

具有强大的上下文关联能力。你不需要像使用搜索引擎一样,每一次的操作都是独立的。你可以将整个对话都变成一个巨大的搜索,通过多次对话来阐述自己想要的信息。甚至还能让它帮助你向它自己提问。

有丰富的拓展插件潜力

这些能力,相信各位读者上面的case中都能感知。在上面案例中,为了更好使用AI、利用这些能力,我们频繁使用了一个词叫做 prompt——这在 AI 时代是一个非常重要的内容。

想要用好各类 AI 效率工具,最好的方法就是不断的提升自己的 prompt 能力。prompt 就是提示词,表达语言的能力。

在以前的开发生涯中, 我们是“Google 工程师”、 “StackOverflow 工程师”, 被戏称为“面向搜索引擎开发”。 每次遇到未解之谜,我们通常会去不断的更换搜索关键词。

这时候比拼的就是我们的语言表达能力了——我们需要转换自己的思维,从工程师到产品经理,或者是一个 Business Analysis 的角色。我们需要将接到手的任务,进行拆解,一步步的变为提示词。 当你拆解到足够细的时候,任务就自然而然可以依靠 AI 自动完成了。这个会在项目应用的章节进行具体讲解。

3.2Better Prompt

开发者可以利用它的上下文能力,帮助自己纠正语法以及提供更好的 prompt 的训练。

AI 是不挑语言的?不管你用任何一种语言,它都是利用数据模型进行分析,并不是用单一的语言进行思考。也就是说结果的生成质量不会差异很大。真的是这样吗?

实际上,我们通过官网的介绍发现,它对语言的理解是有差异的,目前理解力最强的当然是英文了。我们使用英文进行 prompt,既能锻炼自己的英文能力,也能更好的表述自己的问题。可是受限于自身英文水平,我们并不一定每一次都能清晰表达自己的观点,这时候我们可以利用它帮我们提高这一点。我们故意打错一段话,来测试一下。

prompt:

you need answer my question obey the format, format should be like this

correct grammar is :
"insert correct grammar here"
________________________________ (keep the diver line)
you can also ask it like this:
"insert better prompt here"


then tell the answer about what i ask below the divier also keep the diver line.

Correct grammar is should correct my question's grammar

AI 的每一次训练得到的返回结果都是不一样的,我们有可能会得到自己想要的,但它也有可能没有完全理解我们的意思。当我们的诉求没被完全理解,可以对它进行进一步的训练。

在它做对了以后,我们对它进行表彰。然后再去尝试一下我们其它的问题。可以看到一切正常。

如果有时候它忘记了,你需要再提醒它一次 format。它就会重新输出。

04、总结

笔者使用 ChatGPT 等 AI 工具已经 4 个多月了。一开始只是进行简单的尝试,并没有觉得有什么特别的。直到在浏览各类教程时,才发现那些以前分享金融知识的人已经开始利用 GPT 进行代码创作来丰富自己的武器库,比如进行图标分析、软件制作等等。实际上,AI 并不是简单的问答而已,它具有解决问题甚至是创造知识的能力。

当然我在使用的过程当中,周围也有很多声音在质疑 AI 的能力。认为它并不能如想象的优秀。例如你直接跟它讲,给我做个需求、给我写篇论文,它都是无法完成的。

因为其实我们在错误地使用 AI。 合理的使用,应该是「我们做我们该做的事情,AI 做 AI 该做的事情」。以前搜索引擎的时代,我们也并不是直接在搜索框里输入 “给我答案” 吧?用户要尽量描述清楚自己的问题。

现在对程序员的要求已然不是简单的书写代码了。因为 AI 能做,甚至比你的代码质量还要高。我们需要将自己的思维进行转换,从程序员变成拥有产品思维的程序员、拥有 BA 思维的程序员。要对自己手里的任务、方法、逻辑,有更清晰的认知。让人类做人类该做的事情,让 AI 做它擅长的事情。

当你把你想要的内容清晰的描述出来以后,你会发现:AI 不是来替代你的,是来帮助你更好的工作的。 以上是本次分享全部内容,欢迎大家在评论区分享交流。如果觉得内容有用,欢迎转发~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/50489.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决Mac电脑连接校园网不弹出登陆窗口问题汇总

1.查看你的DNS有没有改过,把自己改过的DNS全部删除,变更为默认的就好。 2.有使用梯子的同学,记得把梯子暂时先关闭一下,然后在连接校园网Wi-Fi。 3.你有登录页面的网址吗?没有的话,让同学复制给你&#xf…

python毕业设计 基于django框架校园鲜花水果商城毕业设计设计与实现

商城功能概要 首页、分类、商品详情页面,包含加入购物车、收藏商品、立即购买、用户登录、订单管理、地址管理;完整的购物流程,商品的加入、编辑、删除、批量选择,收货地址的选择,下单、会员中心(订单、收…

基于Java+SpringBoot+Vue前后端分离校园闲置物品交易网站

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

案例26:基于Springboot校园社团管理系统开题报告

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

基于Java+Vue+uniapp微信小程序实现餐厅校园订餐平台

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取联系🍅精彩专栏推荐订阅👇&#x1f…

校园网不能建立到远程计算机,校园网已拒绝远程连接是什么问题及如何解决

校园网已拒绝远程连接是什么问题及如何解决你知道吗?对于正常日常生活中的我们在需要远程进行办公或学习的时候出现这种问题最让人头大了,可是面对这样的问题我们应该如何更好的解决呢?一般出现校园网无法远程连接的原因有太多,这…

天翼校园网连接不上服务器无响应,天翼校园网dns解析出错怎么办

摘要 腾兴网为您分享:苹果手机,芒果tv,闲聊app,爱奇艺视频,步步高等知识经验教程,欢迎大家关注腾兴网。 很多大学生都是用的天翼校园网,在学校办理的便宜好用,不过有在使用中会碰到各种问题&…

天翼校园网连接不上服务器无响应,使用天翼校园客户端提示登陆失败应该怎么处理?...

对于学生党来说,很多人在学校里上网都是使用校园网,校园网要求必须要使用天翼校园客户端才能连接,但是使用这个软件进行连接的时候,有时候我们会遇到“网络异常12006,请求登陆失败”这样的报错,这时候应该怎…

12星座的出生年月日性格_12星座的出生年月以及性格分析 复制的也可以

12星座的出生年月以及性格分析 复制的也可以 12星座的出生年月以及性格分析 复制的也可以 发布时间:2020-12-18 11:51:48 是水瓶座。农历2001年正月初二是公历2001年1月25日。星座按公历(阳历)出生日期算白羊座(3月21日-4月20日)金牛座(4月21日-5月21日)双子座(5月2…

推荐5个神仙软件,个个让你爱不释手

最近陆陆续续收到好多小伙伴的咨询,这边也是抓紧时间整理出几个好用的软件,希望可以帮到大家。 1.视频抓取——硕鼠 一个非常好用的FLV视频下载工具,提供80多个平台的音视频批量下载,而且还支持多线程同时下载,下载速…

赚钱软件哪个赚钱多又容易?资深用户推荐人人都可以赚钱的APP

最近两年,网上的赚钱软件可谓是越来越多了,仅仅是我知道的软件就有好几百款!如此之多的软件,到底哪一个赚钱多又快呢?经过我长时间的测试,最后终于找到了一款赚钱多又快的软件,接下来我就会将这…

能把爱情当游戏玩的星座,无敌!

冠军(天秤座:他们喜欢扑朔迷离的恋情)亚军(天蝎座)、季军(双鱼座) 第四名(射手座) 第五名(水瓶座) 第六名(摩羯座) 第…

摘星-上升篇

学识有限,纯属爱好。以下内容均来自阳光占星,如有冒犯,告知删除! 上升金牛——歌者的哼唱 有这么一类人,可能有着细致柔和的五官,容易发胖的体质以及坚定的眼神。有点害羞与腼腆;喜欢哼唱着小曲…

占星术合理吗?各个星座最喜欢用的表情是什么?

本文转载自 读芯术 图源:unsplash 通过分析数千条推文,我们找到了热门的星座推特账号,利用机器学习Bertmoticon包来分析预测每个星座的表情。结果让我们大吃一惊! 首先,我们在推特上进行搜索,通过粉丝的数…

DragGAN图像生成原理与实现

DragGAN图像生成原理与实现 DragGAN模型是什么呢1. DragGAN背景介绍2. 模型方法2.1 算法原理2.1.1 Motion Supervision2.1.2 点跟踪 3. 实现部署步骤3.1 安装PyTorch3.2 安装 DragGAN3.3 运行 DragGAN Demo3.4 功能介绍 项目地址:https://github.com/Zeqiang-Lai/Dr…

实验六 UML建模工具应用

一、实验目的 1.掌握面向对象开发思想及实现机制 2.理解并掌握UML常用图(重点:类、对象图、用例图) 3.掌握并常见UML建模工具,并绘制UML各种图 二、实验准备与要求 1.StarUML(简称SU),是一种创建UML类图&#xff0c…

【Android项目开发】聊天功能-主界面设计(对标企业需求)

文章目录 一、引言二、详细设计1、解决需求(1)图形问题(2)文本长度问题(3)时间转换问题 2、UI设计(1)主界面(2)适配器 3、Adapter适配器4、测试参数 三、附录…

软件建模概述 UML模型图

软件建模 什么是软件建模 将想法通过模型可视化地表达出来,方便记忆和进一步分析,方便团队/同事交流,口语交流容易失真。 软件建模体现了软件设计的思想,在需求和实现之间架起了一座桥梁,通过模型指导软件系统的具体…

ChatGPT-4竟已经学会说谎——聪明又危险的AI

时间回到2023年3月,OpenAI正式发表GPT-4的最新模型,除了展示聊天机器人如何完成各种任务,还在官网发了一份90多页报告,提及各项特性与可能存在的风险。同时,OpenAI为了检测它可能带来的“潜在的威胁”,而让…

前 Twitter CEO 炮轰 Web 3,马斯克也来“掺和一脚”

前 Twitter CEO 的 Jack Dorsey 今日又登上了外网头条,但与上个月宣布辞任时的祝福不同,这次 Jack Dorsey 引起了很大的争议:他连续发推批评 Web 3 及加密风投,引得许多加密行业人士不满并反驳。 “你们并不拥有 Web 3&#xff0…