Amazon CodeWhisperer 编程助手试用总结

人工智能
API
Amazon CodeWhisperer
云上探索实验室
0
0
> 文章作者:Hanson ChatGPT 火出圈之后,AI 大模型编程越来越多,虽然 AI 编码暂时无法完全替代程序员,但是时代变化、潮流趋势所向,大家没有必要过多焦虑,惹事应该拥抱变化,拥抱趋势,尝试用 AI 辅助自己的编码,看是否可以得到帮助,本文试用了 Amazon 的 CodeWhisperer AI 编程工具,在这里做一个小小的总结。 CodeWhisperer 通过 AI 技术,可以自动分析代码库中的模式和常见用法,从而生成符合标准的代码片段,其旨在帮助开发人员节省时间和精力,提高开发者的工作效率。 当前 CodeWhisperer 支持集成到几种开发环境中,VS、Jetbrains、JupyterLab,Lamda 等,由于平时用 C++/Python/Go 比较多,因此本文使用 JetBrains 的 Clion 来测试 CodeWhisperer 生成 C++的能力,首先安装好 Clion(具体步骤网上找或者亚马逊官网指导书),进行 Clion 后,首先通过 tools 搜索安装 amazon toolkit,安装好后启动就可以使用 CodeWhisperer 了,第一次启动时会生成一个验证码,链接到你的亚马逊账号进行授权,此处不细讲,按照提示操作即可 ![image.png](https://dev-media.amazoncloud.cn/0ec41dbf0aef483e9b26dfbff83b859b_image.png "image.png") 下面进入正题: 使用 CodeWhisperer 生成代码,需要添加注释,其会根据注释一行一行完成代码编写,并且会帮助你完成要编写代码的注释 任务 1:测试生成全部代码能力,主题完成一个 TCP Server 收发数据,下面图里是一步步的结果 ![image.png](https://dev-media.amazoncloud.cn/0ebd067f6d68426f9db122aef343a920_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/c73d8a0c1d534d98a88c543c014de5a9_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/02de142b749c4d37b53b56fc74336cba_image.png "image.png") 最终完成的代码如下 ![image.png](https://dev-media.amazoncloud.cn/7f7d09a0871b4931a5deb658378482c5_image.png "image.png") 生成过程并非像 ChatGPT 一样,一股脑的代码全部生成扔给你,需要开发同学一行一行的插入确认,这种情况也有好处,在于可以在开发过程中自己一行一行的确认正确性及问题,避免一大堆复杂代码重新费神的确认逻辑。 任务 2 推荐相应功能的开源库以及使用已集成的开源包进行代码生成测试,主题完成一个 SIP 消息处理函数,下面图片展示其完成过程和结果 (1)使用 osip2 解析 sip 消息,下面是生成的代码,基本符合预期 ![image.png](https://dev-media.amazoncloud.cn/78681291db8341b69d4371ad628f7dbe_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/2cf7132a1f8f4c35993ee4b5190ba190_image.png "image.png") (2) 期望重新推荐一个 sip 消息解析库,不知道是我已经集成了解析库还是还是什么其他原因,没有成功 ![image.png](https://dev-media.amazoncloud.cn/416956d046454aa2a6b5c9a8537c6a2b_image.png "image.png") 可见 CodeWhisperer 对于 Github、Gitee 以及互联网上标准开源库是进行过训练的,可以读懂 oSip2 是一个很有名的 sip 协议栈,因此可直接使用其 API 根据注释生成可用代码 任务 3 基于已完成部分代码,根据注释生成补全代码,CodeWhisperer 也可以根据上下文和注释补齐代码的相应功能,建立一个资源分配函数(带一定的业务功能),完成一半的部分(>4),让 CodeWhisperer 完成剩下的部分(<4),下面展示结果 ![image.png](https://dev-media.amazoncloud.cn/bd712ec94ee74626805e3707ad764dd2_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/02f37852b2714013b003d0d10da87def_image.png "image.png") 最终的结果 ![image.png](https://dev-media.amazoncloud.cn/db5721a26d7344bcbf16017400a752c3_image.png "image.png") 至此任务三测试完成,生成了基本可用的代码。 最后总结,CodeWhisperer 对于能够更快地编写代码还是有一定的帮助。 首先,在集成开源或者第三方不熟悉的代码库时,它可以为我节省大量的时间去学习和查阅 API 接口文档,让我能够专注于改进和测试。 其次,可以帮助我节省繁琐的重复性工作,如上面的 TCP Socket 处理。 当然也期望可以后续可以生成整体代码段的方式,对于非复杂逻辑代码的场景其效率是更高的。 文章来源:https://xie.infoq.cn/article/386428468269729e334f2c134?trk=cndc-detail
0
目录
关闭