转自公众号:腾讯云开发者
http://mp.weixin.qq.com/s?__biz=MzI2NDU4OTExOQ==&mid=2247606201&idx=1&sn=1128f7548c67d6153582a08c0649f63a
??腾小云导读
??看目录,点收藏
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
2.1 技术知识总结
|
|
2.2 拆解任务
2.3 阅读代码/优化代码
prompt: 逐行解释下面的代码 + 代码内容, (在这里使用了一段在 github上面的开源代码进行展示, 这段代码是一段定时器相关的内容)。 |
prompt: 可以在每一行代码上面加上注释,便于我理解吗? |
这时候它会逐行的进行代码标注,便于你对每一行进行理解。如果你接着对它提出一个粗浅的优化需求,它也会照做。
prompt: 这段代码可以进行重构和优化吗?逻辑有些繁琐。 |
prompt: children: (isCounting: boolean, durationTime: number, startCount: () => void) => React.ReactNode // 子组件,接收三个参数,返回一个React节点 这里面的参数太多了,而且对顺序有强依赖,该怎么优化这里? |
2.4 代码生成
[
{
\\\"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
-
Voice Control for ChatGPT
-
ChatGPT Sidebar
-
著名应用工具使用体验:Bing Copilot、ChatGPT、Google Bard
Google Bard (LaMDA):Google 近期发布的AI工具目前只支持英文。特点是能够给出多个回答,而且响应速度很快。集成了 Google it,点击之后会帮你生成一个最适合你的问题的 google 搜索关键词。这算是和 Bing Copilot 反其道而行之,一个是将 chat 集成到搜索里,一个是将搜索集成到了 chat 中。
03
3.1 Prompt 是什么?
3.2 Better Prompt
开发者可以利用它的上下文能力,帮助自己纠正语法以及提供更好的 prompt 的训练。
prompt: you need answer my question obey the format, format should be like this correct grammar is : ________________________________ Correct grammar is should correct my question\\’s grammar |
AI 的每一次训练得到的返回结果都是不一样的,我们有可能会得到自己想要的,但它也有可能没有完全理解我们的意思。当我们的诉求没被完全理解,可以对它进行进一步的训练。
04
-End-
原创作者|熊彬
技术责编|熊彬
AI对话工具出现以前,当我们想找答案,往往都是通过对搜索引擎初步梳理出的海量信息,进行筛选、对比、总结,形成自己的知识。有网友给小云贡献了自己与朋友的探讨:“现在类GPT工具出现之后,很少人愿意去看大段的文章来学习,只愿意看到最后给的一小段结果。这感觉就像微博对博客的打击、短视频对于长视频的冲击,最后形成的是短视和浮躁氛围。最后导致自身的筛选分析、归纳总结,记忆力等技能无法长进甚至退化。”你怎么看?GPT等新智能工具的出现,会导致人基本能力不进反退吗?
原创文章,作者:七芒星实验室,如若转载,请注明出处:https://www.sudun.com/ask/34317.html