我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效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?

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

由于 ChatGPT 是有上下文的,它知道你需求的内容是中文的总结,所以在这儿你持续发一篇英文的文档给它,它也会用中文帮你总结。

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

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

现在 chatgpt 的免费版本数据库的截止时刻是 2021 年,也便是说假如问它比较新的内容,它是无法总结的,乃至是会随意撰写。例如这儿询问一个关于电影《漂泊地球 2》的问题,让它总结一下 wikipedia 里的介绍。

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

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

由于这时分电影还没有上映,所以之前的内容还都是过错的,它的总结是不精确的。

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

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

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

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

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

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

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

2.2拆解使命

上文所描绘的内容,能够算是凭借 AI 让程序猿日常生活效率提高。那么在作业傍边,AI 怎样协助咱们提效?

咱们从需求端获取一个需求今后,许多情况下咱们的使命并不能够十分精确的估计时,原因便是咱们并没有将使命拆分清楚,所以并不能够对每一项使命进行估计,导致风险的产生。

这时分能够简要描绘一下咱们这次的需求点,让 ChatGPT 帮咱们进行使命拆解。

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

能够看到使命全体被拆成了一个个细小的使命。它能够很快的让咱们将使命转化为 task,或许是需求跟踪单。这既方便和产品司理进行交流,也便于咱们本身排期。转化成 KANBAN 形式也便于了解当时进展。

假如对方仍有疑问,能够持续询问拆解。比方咱们想要询问第三步应该怎样进一步实现。能够看到它乃至给了咱们详细的 UI 交互。咱们能够运用这样的提示对咱们的交互以及实现提供必定的参阅。

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

2.3阅览代码/优化代码

开发者常常接手别人的代码。质量参差不齐,还会夹在许多古怪的命名。当咱们阅览全体逻辑或许修改逻辑,或许会由于本身阅览的问题造成了解偏差,进一步引发 bug。

假如将这个办法交给 AI 去阅览呢?能够看看效果。

prompt:

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

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

能够看到 ChatGPT 正确的了解了咱们的代码,对代码进行了解说和阐明。

但是这时分仅仅生成了一个全体的阐明,并没有对每一行别离进行解说。这时分持续和它对话:

prompt:能够在每一行代码上面加上注释,便于我了解吗?

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

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

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

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

你能够对某一个部分提出更细节的要求,为它提出更好的优化方向。在这儿咱们提出了关于参数次序耦合的问题,能够看到 GPT 也了解到了咱们的需求,而且做出了对应的优化,如下:

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

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

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 会为咱们得到正确的成果:

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

咱们只需求输入方针数据结构,转化后的数据结构,无需指定言语。由于它会从你的上下文里了解到你是想要问什么实现方式。

还有履行脚本,咱们只需求描绘清楚咱们的需求,它也会协助咱们进行完善。

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

此外,它还能够进行进行解说阐明:

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

上面能够看到,咱们在这儿运用了一次“自然言语编程”的操作流程。不论你是否会运用 python、bash 你都能够正常的描绘你的需求。进行生成。

咱们还能够进行代码转化,例如你写了一段 js 代码,你希望将这段代码转化为python,曾经咱们会经过 Google 查找看看有没有对应的转化器,现在就只需求交给 gpt 来履行。提出你的诉求,它会在 10s 内为你生成一段没有 bug,包含反常处理的代码。这儿咱们不展开举例。

2.5生成单测

咱们刚刚那段数据转化的代码,假如咱们想要进行测验。曾经咱们或许会苦思冥想许多场景进行弥补。现在只需求告诉 AI 帮我生成单测即可。

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

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

假如你觉得测验条件不行,那就再问它,让它再生成。

prompt: 数据源不行丰厚,多测验集中边界条件,比方数据不存在,数据类型无法转化,数据类型不对等。

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

它还会给你解说这儿都做了什么操作,这些测验用例覆盖了不同的场景,包含:

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

2.6 更多 AI 运用/插件

AI 就像是一个根底运用, 在它上面还有着许多的或许。跟着你用的越多,解锁的技术也就越丰厚。例如现在 GPT 系列乃至推出了自己的运用商场。下面咱们来为各位简略介绍几款抢手插件:

  • AIPRM

它是 ChatGPT3.5 年代的运用商店。用户经过不同的 prompt,对它进行练习,到达自己的意图。

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

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

  • Voice Control for ChatGPT

依托于这样的体系,咱们能够运用它练习英文(伪需求)。或许是直接用语音和它进行对话,让它替自己写代码,例如咱们刚刚一切的脚本阐明都能够让它直接语音转文字发出去。

它也很好的服务了一些视障人士,由于它还会读出每一次 GPT 生成的内容。让每个人都具有相等触摸 AI的时机。

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

  • ChatGPT Sidebar

跟着运用的人越来越多,ChatGPT 的响应速度越来越慢。有时分只不过想问一个简略的问题,却要等上好久。这时分,就能够运用 ChatGPT Sidebar 插件。

它内置了 ChatGPT 的 API,能够直接集成在你的查找引擎里,你的每一次查找都会触发(也能够设置为手动),免注册,运用方便。还能够让它提示你怎样查找相关的要害词。

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

在它的侧边栏里,咱们还能够进行其它的操作。

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

  • 闻名运用东西运用体会:Bing Copilot、ChatGPT、Google Bard

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

ChatGPT:运用频率最高的 AI。它有强壮的上下文,还能够拆分成为不同的 conversation,便于它处理不同的对话。

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

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

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

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

Google Bard (LaMDA) :Google 近期发布的AI东西现在只支持英文。特点是能够给出多个答复,而且响应速度很快。集成了 Google it,点击之后会帮你生成一个最适合你的问题的 google 查找要害词。这算是和 Bing Copilot 反其道而行之,一个是将 chat 集成到查找里,一个是将查找集成到了 chat 中。

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

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

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

AI 的每一次练习得到的返回成果都是不相同的,咱们有或许会得到自己想要的,但它也有或许没有彻底了解咱们的意思。当咱们的诉求没被彻底了解,能够对它进行进一步的练习。

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

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

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

假如有时分它忘记了,你需求再提醒它一次 format。它就会重新输出。

04、总结

笔者运用 ChatGPT 等 AI 东西现已 4 个多月了。一开端仅仅进行简略的尝试,并没有觉得有什么特别的。直到在浏览各类教程时,才发现那些曾经共享金融常识的人现已开端运用 GPT 进行代码发明来丰厚自己的武器库,比方进行图标剖析、软件制作等等。实际上,AI 并不是简略的问答而已,它具有解决问题乃至是发明常识的才能。

当然我在运用的进程傍边,周围也有许多声响在质疑 AI 的才能。以为它并不能如想象的优异。例如你直接跟它讲,给我做个需求、给我写篇论文,它都是无法完成的。

由于其实咱们在过错地运用 AI。 合理的运用,应该是「咱们做咱们该做的作业,AI 做 AI 该做的作业」。曾经查找引擎的年代,咱们也并不是直接在查找框里输入 “给我答案” 吧?用户要尽量描绘清楚自己的问题。

现在对程序员的要求已然不是简略的书写代码了。由于 AI 能做,乃至比你的代码质量还要高。咱们需求将自己的思想进行转化,从程序员变成具有产品思想的程序员、具有 BA 思想的程序员。要对自己手里的使命、办法、逻辑,有更明晰的认知。让人类做人类该做的作业,让 AI 做它拿手的作业。

当你把你想要的内容明晰的描绘出来今后,你会发现:AI 不是来代替你的,是来协助你更好的作业的。 以上是本次共享全部内容,欢迎咱们在谈论区共享交流。假如觉得内容有用,欢迎转发~

-End-

原发明者|熊彬

技术责编|熊彬

AI对话东西呈现曾经,当咱们想找答案,往往都是经过对查找引擎开始梳理出的海量信息,进行挑选、比照、总结,构成自己的常识。有网友给小云贡献了自己与朋友的探讨:“现在类GPT东西呈现之后,很少人愿意去看大段的文章来学习,只愿意看到最终给的一小段成果。这感觉就像微博对博客的冲击、短视频关于长视频的冲击,最终构成的是短视和浮躁气氛。最终导致本身的挑选剖析、概括总结,记忆力等技术无法出息乃至退化。”你怎样看?GPT等新智能东西的呈现,会导致人根本才能不进反退吗?

我问了鹅厂程序员:你们工作中怎么用ChatGPT?如何高效Prompt?

在大众号谈论区聊一聊你的观点。4月20日前将你的谈论记载截图,发送给腾讯云开发者大众号后台,可收取腾讯云「开发者春季限定红包封面」一个,数量有限先到先得。咱们还将选取点赞量最高的1位朋友,送出腾讯QQ公仔1个。4月20日正午12点开奖。快邀请你的开发者朋友们一起来参加吧!

关注我并点亮星标,大众号回复「AIGC」一键收取0根底AI网站搭建教程、LLM模型源件、东西插件、网站源码和GPU服务器限量优惠。

阅览原文