关于人工智能:我问了鹅厂程序员你们工作中怎么用ChatGPT如何高效Prompt

45次阅读

共计 8513 个字符,预计需要花费 22 分钟才能阅读完成。

👉腾小云导读

当你还在谬误应用对话 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: https://kubernetes.io/zh-cn/docs/concepts/overview/ 总结这篇文档。

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

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

prompt: 总结这篇文档 https://kubernetes.io/docs/concepts/overview/components/。

目前 chatgpt 的收费版本数据库的截止工夫是 2021 年,也就是说如果问它比拟新的内容,它是无奈总结的,甚至是会随便编撰。例如这里询问一个对于电影《漂泊地球 2》的问题,让它总结一下 wikipedia 里的介绍。

prompt: 总结:https://zh.wikipedia.org/zh/%E6%B5%81%E6%B5%AA%E5%9C%B0%E7%90…

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

当咱们将整个网站的内容复制进来,让 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 不是来代替你的,是来帮忙你更好的工作的。 以上是本次分享全部内容,欢送大家在评论区分享交换。如果感觉内容有用,欢送转发~

-End-

原创作者|熊彬

技术责编|熊彬

AI 对话工具呈现以前,当咱们想找答案,往往都是通过对搜索引擎初步梳理出的海量信息,进行筛选、比照、总结,造成本人的常识。有网友给小云奉献了本人与敌人的探讨:“当初类 GPT 工具呈现之后,很少人违心去看大段的文章来学习,只违心看到最初给的一小段后果。这感觉就像微博对博客的打击、短视频对于长视频的冲击,最初造成的是短视和塌实气氛。最初导致本身的筛选剖析、演绎总结,记忆力等技能无奈出息甚至进化。”你怎么看?GPT 等新智能工具的呈现,会导致人根本能力不进反退吗?

在公众号评论区聊一聊你的认识。4 月 20 日前将你的评论记录截图,发送给腾讯云开发者公众号后盾,可支付腾讯云「开发者秋季限定红包封面」一个,数量无限先到先得😄。咱们还将选取点赞量最高的 1 位敌人,送出腾讯 QQ 公仔 1 个。4 月 20 日中午 12 点开奖。快邀请你的开发者敌人们一起来参加吧!

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

正文完
 0