【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告

这篇具有很好参考价值的文章主要介绍了【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、基于LLM的辅助编程——编程范式变革进行时

大语言模型(Large Language Model)是当下人工智能领域的热点话题之一。它代表着自然语言处理技术的新高度,而大语言模型也为我们提供了改变编程方式的可能性。

大语言模型凭借其复杂的神经结构和参数,通过海量的数据训练能够模拟人类的语言理解和生成过程,具备上下文学习、指令遵循、逻辑链的推理策略等能力,而这种能力的突破性进展让AI编程也成为现实。

在传统的编程范式中,开发人员需要手动编写一行行代码完成特定任务,需要耗费大量时间和精力。但大语言模型在编程中的应用,使得开发者不再需要受限于特定的编程语言,只需要用自然语言描述他们的意图和需求,进而更快地开发原型、验证想法、快速迭代功能。简单地说,以前只有程序员能够读懂的代码,现在变成了人人都能理解的自然语言,编程的门槛被大幅降低,会编程和不会编程的人都需要接触一下来提高自己的日常生产力!

【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告,心源易码,亚马逊,人工智能,AI编程,CodeWhisperer,深度学习,自然语言处理,原力计划

今天要测评的正是一款基于LLM的编程助手:Amazon CodeWhisperer。作为亚马逊云科技出品的一款生成式人工智能编程工具,其经过了数十亿行级别代码的训练和调参,可以根据注释和现有代码实时生成从代码片段到全函数的代码建议,还可以扫描难以发现的代码漏洞,检查潜在的安全问题。

二、CodeWhisperer + VS Code 安装与配置

2.1、扩展安装

首先,打开Visual Studio Code工具,点击左侧扩展栏-搜索AWS Toolkit工具,可以看到Amazon Web Services官方为我们已经开发并一直维护着这个插件套件:

【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告,心源易码,亚马逊,人工智能,AI编程,CodeWhisperer,深度学习,自然语言处理,原力计划

点击安装,将最新版本的工具包安装到我们的VS Code中,成功后在左侧的状态栏会出现一个新图标,代表我们已经安装成功,进行如下配置

2.2、配置

点击图标,打开工具包面板到开发人员工具(Developer Tools)选项,点击CodeWhisperer-Start,找到Amazon CodeWhisperer面板,注册或者登陆,连接AWS Builder ID
【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告,心源易码,亚马逊,人工智能,AI编程,CodeWhisperer,深度学习,自然语言处理,原力计划

使用浏览器打开跳出的绑定页面,并且确认绑定代码是否相同,然后点击确认并继续:

【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告,心源易码,亚马逊,人工智能,AI编程,CodeWhisperer,深度学习,自然语言处理,原力计划

没有账号的可以在浏览器跳出的步骤中,AWS Builder账号不需要绑定信用卡,只需要使用邮箱注册账号即可,注册或者登陆成功后直接点击Allow就可以授权使用Amazon CodeWhisperer啦,授权成功后,可以看到开发者选项中的CodeWhisperer被成功激活,就可以开始愉快的玩耍了!

【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告,心源易码,亚马逊,人工智能,AI编程,CodeWhisperer,深度学习,自然语言处理,原力计划

三、CodeWhisperer实践全流程

3.1、CodeWhisperer基础实验

要愉快的使用CodeWhisperer,我们要学习如何给CodeWhisperer下Prompt提示,如何使用CodeWhisperer快捷键、如何高效使用CodeWhisperer辅助编写项目:

1、输入注释为:say hello world,CodeWhisperer会自动根据注释我们想要打印helloworld,其自动为我们补全了console.log(Hello World!)部分:

2、下面,我们开始上上难度,输入注释为Traverse a binary tree in middle order(中序遍历),CodeWhisperer给我生成了一段递归式的代码:

// Traverse a binary tree in middle order
const middleOrder = (root) => { 
  if (root) {
    middleOrder(root.left);
    console.log(root.val);
    middleOrder(root.right);
  }
}

3、然后我们试试算法方面,写一个中文注释,注释内容为:二分查找一个数组,可以看到CodeWhisperer马上为我们写出了一个标准的二分查找方法:

【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告,心源易码,亚马逊,人工智能,AI编程,CodeWhisperer,深度学习,自然语言处理,原力计划

4、最后我们试试应用方面,题目来自力扣455.分发饼干,题目描述如下:

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >=g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。

将题目要求用注释注起来,然后按Tab键,CodeWhisperer会自动理解题意要求,并且帮我们自动写了这样的一段代码,提交到力扣中,完美Accept!
【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告,心源易码,亚马逊,人工智能,AI编程,CodeWhisperer,深度学习,自然语言处理,原力计划

3.2、CodeWhisperer项目实践——Web端宝可梦图鉴

实验证明,CodeWhisperer已经能够在需求性的语言理解、算法、应用题开发上面发挥极大的辅助作用,基本上只需要输入注释,CodeWhisperer 就会为输入的需求自动提供建议,在没有收到建议时也可以使用 Option + CAlt + C 快捷方式手动触发,下面借助CodeWhisperer,我们来开发一款Web端宝可梦图鉴。

这款Web端宝可梦图鉴的核心功能就是宝可梦的信息展示与搜索,页面首先需要能够展示各种宝可梦的基本信息,如宝可梦的名称、编号、属性类型、宝可梦的形象图片等,另外表格上方要提供宝可梦的筛选和检索功能,用户可以根据宝可梦的属性进行筛序,可以根据宝可梦的名称进行搜索,当用户点击某个宝可梦的链接或图标时,网页能够展示该宝可梦的详细信息,项目主界面的简单原型如下:
【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告,心源易码,亚马逊,人工智能,AI编程,CodeWhisperer,深度学习,自然语言处理,原力计划

本次项目技术栈选用:Vue3++Vite+TypeScript+Less,宝可梦api来源于:https://pokeapi.co/,项目参考自akirajy/pokemonBook,在此特别感谢以上大佬!
首先用Vite创建一个初始的Vue项目,然后使用npm安装Ant Design、Axios、Less、Element Plus、Vue Router等相关依赖,这里不再展开介绍,接着清空页面的内容,去掉与项目不相关的页面、样式和配置,保留页面结构即可,下面我们来创建自己的项目结构,结构如下:

dist文件夹存放的是项目打包后的文件夹,用于部署使用,node_modules是项目的相关依赖,public用于存放项目需要使用到的公共资源,src文件夹存放的是主要的项目资源,其中:

  1. assets:用于存放静态资源文件,如图片、字体、样式文件等。
  2. components:存放Vue组件文件,可复用的组件可以放在这里,方便在不同的视图中引用和管理。
  3. router:用于管理Vue Router的路由文件,包含定义路由路径和对应的组件,实现页面之间的导航和跳转。
  4. services(或api):存放与后端API交互的服务文件,包括对HTTP请求的封装以及与后端API进行数据交互的方法。
  5. views:存放页面级别的视图组件,每个视图组件通常对应一个页面,包含该页面的数据和交互逻辑。
  6. utils:包含一些工具函数和辅助方法的文件,这里存放一些数据的转换函数,数据过滤、验证等其他工具函数。
    【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告,心源易码,亚马逊,人工智能,AI编程,CodeWhisperer,深度学习,自然语言处理,原力计划

创建好项目结构后,接着我们借助CodeWhisperper进行核心代码的开发工作,首先我们设计宝可梦类,包括宝可梦的id、名称、种族、被动、能力值、身高、体重,然后CodeWhisperper就会自动为我们建立宝可梦的类,如下:

在路由的设置中,我们也可以借助CodeWhisperper为我们进行相关路由配置,只需要注释写明路由的名称和path路径,CodeWhisperper会自动为我们创建路由项并将component指向相应的组件位置。

在开发中,我们还遇到了一个要将宝可梦的首次出现日期的时间戳转为时间的需求,平时自己完全写的话容易出错(如忘记month+1的操作),而现在我们只需要在注释中写:“时间戳转为时间”按下Alt+C,CodeWhisperper立马为我们写出一个标准的转换函数:

【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告,心源易码,亚马逊,人工智能,AI编程,CodeWhisperer,深度学习,自然语言处理,原力计划

下面我们需要写一个调用api的函数,我们同样也可以使用CodeWhisperper来写,在注释里表明我们需要一个新增宝可梦的接口,CodeWhisperper会采用Restful风格为我们提示一个规范的函数,并且函数名也很直观:

【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告,心源易码,亚马逊,人工智能,AI编程,CodeWhisperer,深度学习,自然语言处理,原力计划

完成了宝可梦类的设计、路由的设计、api接口的书写、一些工具函数的书写,剩下的就是设计交互和样式了,这些反而简单,最终的效果如下:

【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告,心源易码,亚马逊,人工智能,AI编程,CodeWhisperer,深度学习,自然语言处理,原力计划
【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告,心源易码,亚马逊,人工智能,AI编程,CodeWhisperer,深度学习,自然语言处理,原力计划

四、CodeWhisperer测评分析报告

4.1、功能性分析

对于常见的编程功能方面,CodeWhisperer 的作用在于能够完成自动化编码工作,可以大大减少开发人员的代码输入量,主要功能有自动代码补全、实时错误检测和建议、安全扫描,其中:

  1. 代码补全功能:它能够根据上下文提供准确的建议,根据注释或者代码上下文准确预测我想要使用的变量、函数和类名,并提供相应的补全选项。这种智能化的补全功能使编码过程更流畅便捷,对于不同的需求场景、开发环境、上下文代码,其提供了不同风格的补全和不同偏向的建议。【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告,心源易码,亚马逊,人工智能,AI编程,CodeWhisperer,深度学习,自然语言处理,原力计划
  2. 实时建议:CodeWhisperer具备出色的实时错误检测和建议。它会在编写代码的同时,发现并提示潜在的错误和问题,帮助遵循最佳实践和规范,不仅如此,其还可以根据上下文自动生成虚拟数据:
    【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告,心源易码,亚马逊,人工智能,AI编程,CodeWhisperer,深度学习,自然语言处理,原力计划
  3. 安全扫描:CodeWhisperer可以扫描代码以检测难以发现的漏洞,并获取代码建议以立即修复这些漏洞。它遵循跟踪安全漏洞的最佳实践,例如开放全球应用程序安全项目 (OWASP) 概述的漏洞,或者不符合加密库最佳实践及其他类似安全最佳实践的漏洞。

4.2、代码质量分析

从代码质量方面来分析,生成的代码必须符合编程规范、具有可读性、可维护性和高效性:

  1. 代码规范:经过上述体验和实践,可以看到CodeWhisperer遵循一致的命名规范、命名约定、良好的代码块和层级结构,能够正确使用缩进、表达式和语句的书写方式,易于人们理解并迅速掌握其数据和功能转换,比如下面输入standardDeviation函数名表示想求标准差,CodeWhisperer为我们写出的代码无论从命名,还是从逻辑方面都非常规范:【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告,心源易码,亚马逊,人工智能,AI编程,CodeWhisperer,深度学习,自然语言处理,原力计划
  2. 高效性:从实际体验角度来讲,CodeWhisperer提示的代码简洁明了,而且知道很多常用的正则表达,比如下面一个相对复杂的Regular Expression,可以判断字符串是否符合邮箱规则:【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告,心源易码,亚马逊,人工智能,AI编程,CodeWhisperer,深度学习,自然语言处理,原力计划

4.3、用户体验度分析

  1. 易用程度:可以按快捷键调用Codewhisperer,允许用户根据特定需求进行自定义和定制,而且可以通过自动优化代码、智能代码提示、代码格式化、代码重构和代码审查等功能来提高代码的质量和效率。
快捷键 功能
ALT + C 要求给出建议
TAB 接受建议
ESC 取消建议
选择下一个建议
选择下一个建议
  1. 多环境和多语言支持:CodeWhisperer插件可以在Visual Studio Code、IntelliJ IDEA、PyCharm等等多种流行的开发工具和集成开发环境(IDE)兼容安装,另外,CodeWhisperer 被内置了 Amazon Cloud9 和 Amazon Lambda 控制台, 也可以在 JupyterLab、Amazon SageMaker Studio、以及 Amazon Glue Studio Code 中通过加入 CodeWhisperer extension 进行使用。在语言方面,CodeWhisperer支持Python、Java、JavaScript、TypeScript、C#、Go、 Rust、PHP、Ruby、Kotlin、C、C++、Shell 脚本、SQL 和 Scala等多种编程语言,覆盖多种编程场景。

最后,从个人的角度来讲,CodeWhisperer已经足够作为高级辅助工具承担很大一部分同质化的繁杂工作,测试与工程实践均证明其可以用友好的交互方式提供代码建议,帮助提高编码效率和生产力,让开发者专注于改进和重构其他核心工作。另一方面,CodeWhisperer也可以做漏洞检查、注释生成、文档生成、单元测试等多种工作。

当然,由于篇幅原因,这些只是 CodeWhisper 的部分功能,还有更多使用技巧、提示方案和最佳实践等着关注和发掘!

欢迎大家一起来参与体验前沿 AI 编程助手 Amazon CodeWhisperer! 赢取万元 re:Invent 2023 拉斯维加斯云计算盛会门票,与业内最杰出的领袖与创新者,共享世界顶级技术研讨会

点击加入云上探索实验室,开启AI与编程的探索之旅!

【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告,心源易码,亚马逊,人工智能,AI编程,CodeWhisperer,深度学习,自然语言处理,原力计划文章来源地址https://www.toymoban.com/news/detail-717581.html

到了这里,关于【云上探索实验室】编程范式变革进行时——CodeWhisperer实践全流程及测评分析报告的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 智慧校园实验室安全综合管理平台如何保障实验室安全?

    一、建设思路 实验室安全综合管理平台是基于以实验室安全,用现代化管理思想与人工智能、大数据、互联网技术、物联网技术、云计算技术、人体感应技术、语音技术、生物识别技术、手机APP、自动化仪器分析技术有机结合,通过建立以实验室为中心的管理体系,从人员、

    2024年01月20日
    浏览(76)
  • 基于VR技术的新型实验室教学模式——VR线上生物实验室

    随着科技的发展,虚拟现实技术已经逐渐走进了我们的生活。在教育领域中,虚拟现实技术也被广泛应用于各种学科的教学中。其中,VR线上生物实验室是广州华锐互动开发的,一种基于VR技术的新型教学模式,它能够为学生提供更加真实、生动的实验体验,同时也能够更好地

    2024年02月14日
    浏览(57)
  • 新知实验室

    TUIRoom 是一个包含 UI 的开源音视频组件,通过集成 TUIRoom,可以在业务中快速上线音视频房间,屏幕分享,聊天等功能。 项目是开源的项目,根据自己 的需求设计项目。 创建步骤如下 : 一、  开通腾讯云实时音视频及即时通信服务 TUIRoom 基于腾讯云实时音视频和即时通信服

    2024年02月03日
    浏览(55)
  • 实验室安全

    [判断题] 基于安全考虑,每个实验房间每天最后一个离开的同学必须确保进行断电处理【4分】 正确答案:B 解析:暂无解析 [判断题] 实验用电烙铁应有专门搁架,用毕立即切断电源【4分】 正确答案:A 解析:暂无解析 [判断题] 集中供气是解决实验室存放过多气瓶的有效途径

    2024年02月08日
    浏览(61)
  • 实验室安全考试

    1、[判断题] 火灾对实验室构成的威胁最为严重,最为直接。应加强对火灾三要素(易燃物、助燃物、点火源)的控制。 (分值1.0) 你的答案: 正确 2、[判断题] 50毫安的工频电流就可以使人遭到致命电击。 (分值1.0) 你的答案: 正确 3、[判断题] 用电安全的基本要素有:电

    2024年02月06日
    浏览(69)
  • 决策树(实验室会议小记)

    特征过多导致过拟合、有一些特征是噪音。 1、 尝试所有组合:也是全局最优 2、贪心算法:每次决策都是基于当前情况去寻找最优解。计算过程:把特征加进去→是否更优?→是:加入模型/否:淘汰 3、L1正则:目标函数为损失函数;特点:具有稀疏性 4、决策树:节点代表

    2024年02月08日
    浏览(59)
  • 【新知实验室】TRTC腾讯实时音视频动手实验

    https://cloud.tencent.com/document/product/647/16788 应用 TRTC 通过应用的形式来管理不同的业务或项目。您可以在 TRTC 控制台 给不同的业务或项目分别创建不同的应用,从而实现业务或项目数据的隔离。每个腾讯云账号最多可以创建100个 TRTC 应用。 SDKAppID SDKAppID(应用标识/应用 ID)是腾

    2024年02月01日
    浏览(49)
  • 新知实验室-TRTC如此简单

    腾讯实时音视频(Tencent Real-Time Communication,TRTC),将腾讯多年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开发者快速搭建低成本、低延时、高品质的音视频互动解决方案。 1、多人音

    2023年04月27日
    浏览(88)
  • XShell连接实验室服务器

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 第一次连接实验室服务器跑代码,因pycharm专业版学生认证需要时间,所以自学了XShell连接服务器以及提交任务,现在终于装好了,趁着热乎劲儿总结下,也希望对你有用。作者是新手小白,如有疏漏

    2024年01月24日
    浏览(70)
  • WebGL在实验室方向的应用

    WebGL在实验室方向的应用涉及到实验过程的可视化、数据分析、模拟等方面。以下是一些WebGL在实验室领域的应用示例,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.分子模型和化学反应模拟: 利用WebGL,实验室研究人员可以

    2024年01月24日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包