Amazon CodeWhisperer——探索高效编程范式

机器学习
Amazon CodeWhisperer
云上探索实验室
生成式人工智能
0
0
文章作者:红目香薰 <!--StartFragment--> ### 前言 在 CSDN上 看到的 Amazon 活动就去看了看,整个体验过程还是非常 Nice 的,我使用的是 VSCode 测试的,语言选择了 python,在测试 AI 代码提示的过程中感受到了很多的快捷之处,再次留下个印记,也算给大家提供一个提升高效编码的方案。 活动主页:[亚马逊云科技开发者社区](https://dev.amazoncloud.cn/experience/codewhisperer-2?sc_medium=corecontent\\&sc_campaign=product\\&sc_channel=CSDN?trk=cndc-detail "亚马逊云科技开发者社区") ![image.png](https://dev-media.amazoncloud.cn/e8df69d329634307909ccd824bbee811_image.png "image.png") <!--EndFragment--> ### AI 编程是什么 AI 编程是一种使用人工智能(AI)技术来开发和构建软件应用程序的过程。它涉及使用[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)、深度学习和其他相关技术来训练计算机系统,使其能够自动完成特定任务或模拟人类智能。 ### 人工智能编程与传统编程有什么不同 人工智能编程与传统编程有几个不同之处: 1. 数据驱动:人工智能编程更加注重数据的处理和学习,通过大量的数据来训练模型,使其能够自动进行推断和决策。传统编程则更加注重规则和逻辑的设计。 2. 自主学习:人工智能编程的目标是使计算机能够从数据中学习和改进自身的性能,而传统编程则是通过手动编写代码来实现特定的功能。 3. 非确定性:人工智能编程中存在着一定的非确定性,因为模型的预测结果可能受到多种因素的影响。传统编程则是通过明确的规则和逻辑推理来得到确定的结果。 4. 适应性:人工智能编程的模型可以根据新的数据和环境进行适应和调整,从而提高性能。而传统编程一般需要手动修改代码才能适应新的需求。 ### 人工智能编程在哪些领域有应用 人工智能编程在许多领域都有广泛的应用,包括但不限于以下几个方面: 1. 自然语言处理(NLP):人工智能编程可以用于构建智能语音助手、机器翻译、情感分析、文本生成等任务。 3. [机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)(ML):人工智能编程可用于[机器学习](https://aws.amazon.com/cn/machine-learning/?trk=cndc-detail)算法的开发和训练,如分类、回归、聚类等。 5. 计算机视觉(CV):人工智能编程可以用于图像识别、物体检测、人脸识别、图像生成等相关任务。 7. 自动驾驶:人工智能编程在自动驾驶技术中也有应用,用于实时感知环境、路径规划、决策制定等。 9. 金融领域:人工智能编程可用于金融市场预测、风险评估、投资组合优化等任务。 11. 医疗保健:人工智能编程可应用于医学图像分析、疾病预测、个性化治疗等领域。 13. 智能推荐系统:人工智能编程可以用于构建个性化的推荐系统,如电影推荐、商品推荐等。 到此,我们对 AI 编程有了一定的了解,并且也知道了人工智能编程与传统编程的区别,再就是我们了解了人工智能编程的一些应用领域。 <!--StartFragment--> ### Amazon CodeWhisperer 解决的问题 > [Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail ) 是一种 AI 工具,旨在帮助开发人员解决代码快速编辑的问题。它提供了智能提示、代码自动补全和错误检测等功能,以支持开发人员的编码工作。 > > [CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 可以通过分析给定的代码和上下文信息,提供有关代码结构、函数和变量的建议。它可以帮助开发人员在编写代码时更快地找到错误并提供可能的解决方案。 > > 此外,[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail) 还可以识别常见的编码模式和最佳实践,并提供相应的建议。它可以帮助开发人员改善代码质量、提高效率并减少错误。 <!--StartFragment--> 以上的是官方的说法,那么作为一个程序员对【[Amazon CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail)】的认识就是通过一定的注释以及当前的代码给予我们后续代码提示。说着挺绕的,接下来我们进行测试一下。 <!--EndFragment--> <!--StartFragment--> ### Amazon CodeWhisperer——VSCode 插件安装 直接在 vscode 的插件库中搜索【[CodeWhisperer](https://aws.amazon.com/cn/codewhisperer/?trk=cndc-detail)】即可看到【Amazon Toolkit】点击【Insert】安装,安装后可以在左侧直接看到对应的菜单功能。 ![image.png](https://dev-media.amazoncloud.cn/f7e8a822ca28418f8523674efa1cc88d_image.png "image.png") <!--EndFragment--> <!--StartFragment--> 我们进入到对应的菜单功能: 我这里的启动过的,没有启动的可以直接登录即可。 <!--EndFragment--> ![image.png](https://dev-media.amazoncloud.cn/8798e0990ba94d478390ca1a58dc4b29_image.png "image.png") <!--StartFragment--> 没有账号的直接注册即可。使用邮箱注册。过程中会要一个验证码。 <!--EndFragment--> ![image.png](https://dev-media.amazoncloud.cn/ebf710be11fc4e89ba6c0adde7ee8083_image.png "image.png") <!--StartFragment--> 完毕之后会有这么一个提示: ![image.png](https://dev-media.amazoncloud.cn/89d17ea6b9fe4e329ceb895e38011e19_image.png "image.png") <!--EndFragment--> <!--StartFragment--> 看到这个提示之后就能回到 VSCode 了,这个时候你就能看到如下的提示: ![image.png](https://dev-media.amazoncloud.cn/00acd16ec697476c8a76442c4ade07f2_image.png "image.png") <!--EndFragment--> <!--StartFragment--> K接下来开始我们的具体测试。 ### Amazon CodeWhisperer 测试 Python 语言 我们简单的测试几个编写方式,看看想获取提示需要什么样的操作 #### 空 def 测试 这个能看到有一个 f(x),f 是规则,x 是参数,也算是给了基础提示,因为我们什么都没有给,它也没有办法分析。 ![image.png](https://dev-media.amazoncloud.cn/f62fc6fe3a1649a5b245437d3d1f39b9_image.png "image.png") <!--EndFragment--> <!--StartFragment--> #### 自带 def 名称测试 def a 测试,这里我们仅仅给了一个字母 a 当做当前函数的名称,看看它会如何猜想。 ![image.png](https://dev-media.amazoncloud.cn/45370a3bd59a4cfd904ff055b85e5e23_image.png "image.png") <!--EndFragment--> <!--StartFragment--> 只有一个字母不好联想,那么我们就多来几个。 def add 测试 ![image.png](https://dev-media.amazoncloud.cn/a3fe7fe9968b473e996d6c66244e2b1e_image.png "image.png") <!--EndFragment--> <!--StartFragment--> 这是2个值的返回,那么我想多来几个值呢?测试一下。 这个函数写成 def add_three_sum(a),自动就给了下面的提示。那么我把这个数写大一些。 ![image.png](https://dev-media.amazoncloud.cn/16921883f4c34d5ca7ecab1d20924fa6_image.png "image.png") <!--EndFragment--> <!--StartFragment--> 当换成 Ten 的时候就不行了。 ![image.png](https://dev-media.amazoncloud.cn/277cd5a7e9e449cfafd10a6ec07f5f4b_image.png "image.png") <!--EndFragment--> <!--StartFragment--> 这函数名的写法受限的比较多,你不可能用很长的名称来写函数名,太麻烦,那么我们来参考一下官网还有什么操作方式。 提示文档:[Amazon CodeWhisperer Workshop](https://dev.amazoncloud.cn/column/article/6500245bd402c934d93d8004?trk=cndc-detail "Amazon CodeWhisperer Workshop") ![image.png](https://dev-media.amazoncloud.cn/ace5c9f0987f477d8b5cf9d490e0ce61_image.png "image.png") <!--EndFragment--> <!--StartFragment--> 手册里面说可以使用注释的方法来完成提示,那么我们就尝试一下是哪种注释。 都知道 python 里面一般使用一个【#】来做注释,类以及函数注释使用三个双引号,我们来实验一下。 #### 注释测试 测试的注释是中文的。 ![image.png](https://dev-media.amazoncloud.cn/7e2737061ac04ce4bb9ea78e17d9ca5f_image.png "image.png") <!--EndFragment--> <!--StartFragment--> 给的代码咱们跑了一下 ![image.png](https://dev-media.amazoncloud.cn/f48e2250615f4d09a5610a0da6d5efba_image.png "image.png") <!--EndFragment--> <!--StartFragment--> 能看到,结果是对的,还真不错。那么我们是否能用一些 import 的内容呢,我们继续测试。 #### 引入 requests 包代码测试 还真给提示了。 ![image.png](https://dev-media.amazoncloud.cn/192b780e559148a784f0d910c814637f_image.png "image.png") <!--EndFragment--> <!--StartFragment--> 在没有注释的情况下是没有的。 ![image.png](https://dev-media.amazoncloud.cn/63e75c542729400b959a23e8f30f3acb_image.png "image.png") <!--EndFragment--> <!--StartFragment--> 敲击回车后效果。 ![image.png](https://dev-media.amazoncloud.cn/d27584d081fc4da6baf8f3ca01fb6f75_image.png "image.png") <!--EndFragment--> <!--StartFragment--> 应该是按照某种格式代码进行自动提示的。 ![image.png](https://dev-media.amazoncloud.cn/02a209cf89c64f2fb51ae3d3520f570f_image.png "image.png") <!--EndFragment--> <!--StartFragment--> 如果没有新的提示,将一直循环执行以下内容: ![image.png](https://dev-media.amazoncloud.cn/1ffe4fa990ba410084bf425086b00569_image.png "image.png") <!--EndFragment--> <!--StartFragment--> 虽然是致式的内容,但是给予的提示还是很不错的。 ![image.png](https://dev-media.amazoncloud.cn/55d20d2c710c47e0b4f0e683f0d3c2e6_image.png "image.png") <!--EndFragment--> 各种自动提示还都有,挺好的。 ### 总结 虽然测试内容不是很多,但是我们测试的都是最基础的规格以及使用方式,在这种操作下我们可以慢慢的熟练各类提示,帮助我们快速的来完成我们的代码开发,没有测试 java 语言,我相信 java 的提示内容只会更多,更完整,毕竟java 的用户量以及代码量还是非常庞大的,训练模型也更为方便。 当前还有活动,礼品还不少呢,毕竟 CSDN 参与的活动我来展示一下大概奖品: ![image.png](https://dev-media.amazoncloud.cn/a1b55d7fe8d34a4ab4b0c0faa22c13ca_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/bfba6a9c770145cebb38e91de81ca1a2_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/bdf9f5df1edd49228fdfbef6963909eb_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/4ef384c321624121952ae241b2b57742_image.png "image.png") <!--StartFragment--> 奖励还是很多的哦,也期待大家的共同参与,找到更多更好用的使用方法,祝大家编码愉快。 <!--EndFragment-->
0
目录
关闭