编程新时代:Amazon CodeWhisperer 助您轻松驾驭代码世界

news2025/7/11 8:16:56

在这里插入图片描述

文章目录

    • 一、什么是 Amazon CodeWhisperer?
    • 二、个人无限免费使用
    • 三、安装配置
      • 3.1 手把手教你在pycharm配置
      • 3.2 同理在VSCODE安装
    • 三、Pycharm上测试
      • 3.1 根据注释写代码
      • 3.2 检查修复代码错误
      • 3.3 构建一个简单爬虫
    • 四、 VSCODE上测试
      • 4.1 个性化体验
      • 4.2 系统兼容性
      • 4.3 根据注释写代码
      • 4.4 尝试一门新的语言
      • 4.5 代码生成质量
    • 五、实战网络爬虫:抓取csdn热榜数据
    • 六、官方文档

一、什么是 Amazon CodeWhisperer?

Amazon CodeWhisperer 是一款由机器学习提供支持的代码生成器,可实时提供代码建议。当在 IDE 中编写代码时,CodeWhisperer 会根据你的注释和现有代码自动生成建议。

它支持 15 种编程语言,包括 Python、Java 和 JavaScript,以及您最喜欢的集成开发环境 (IDE),包括 VS Code、IntelliJ IDEA、AWS Cloud9、AWS Lambda 控制台、JupyterLab 和 Amazon SageMaker Studio。
在这里插入图片描述

以下是亚马逊的 CodeWhisperer 工具如何根据文本输入生成代码:
在这里插入图片描述
在PyCharm和VSCode中,Amazon CodeWhisperer都展现出了良好的使用流畅性。无论是插入代码,还是切换不同的功能,响应速度都非常快,没有出现任何卡顿或延迟,为用户提供了愉快的编程体验。

二、个人无限免费使用

值得一提的是,CodeWhisperer为个人开发者提供了免费的个人套餐。只需使用电子邮箱和AWS构建者ID进行简单注册和登录,个人开发者便可以在几分钟内开始享受CodeWhisperer带来的便利。个人套餐不仅提供了代码建议功能,还包括了引用跟踪和安全扫描等实用功能,充分满足了个人开发者在编程过程中的多方面需求。
在这里插入图片描述

接下来,我们将详细介绍如何在不同的编程环境中配置和使用CodeWhisperer。

三、安装配置

在PyCharm和VSCode中安装Amazon CodeWhisperer的过程非常简单直观,用户只需在插件市场搜索并安装“AWS Toolkit”即可,无需复杂的配置。这使得用户能够快速上手,无需花费过多时间在安装和配置上。

3.1 手把手教你在pycharm配置

在PyCharm和VSCode中安装Amazon CodeWhisperer的过程非常简单直观,用户只需在插件市场搜索并安装“AWS Toolkit”即可,无需复杂的配置。这使得用户能够快速上手,无需花费过多时间在安装和配置上。

让我们来看一下Amazon CodeWhisperer。我将在PyCharm中演示如何使用它(除此之外,它还支持其他编辑器,如VS等)。首先,需要下载插件:AWS Toolkit。进入设置:

Your Image

进入设置后,我们可以看到插件市场的界面是非常直观的,搜索“AWS Toolkit”后,点击“install"进行安装。

在这里插入图片描述
选择”apply",再点击“OK":

再点击重启即可:

安装并重启后,我们可以在AWS Toolkit视图(菜单View/Tool Windows/AWS Toolkit)中看到CodeWhisperer的选项,这表明我们已经成功安装并可以开始使用了。
在这里插入图片描述
接着,点击"Developer Tools"tab⻚⾯,选择“CodeWhisperer/Start",如下图所示:
在这里插入图片描述
弹出界面,点击”open and Copy Code“
在这里插入图片描述
粘贴并提交:
在这里插入图片描述
接下来需要登陆自己的账户:
在这里插入图片描述
输入密码:
在这里插入图片描述
此时会弹出界面”Allow AWS Toolkit for JetBrains to access your data?“,如下所示,点击”Allow":
在这里插入图片描述
显示“AWS Toolkit for JetBrains can now access your data.You can close this window and start using AWS Toolkit for JetBrains.”,代表可以正常连接了,配置成功!
在这里插入图片描述
返回pycharm可以看到,已经开启:
在这里插入图片描述

3.2 同理在VSCODE安装

在VSCode中,我们同样可以在插件市场中轻松找到并安装“AWS Toolkit”。安装流程与在PyCharm中类似,非常简单直观。
在这里插入图片描述
选择第二个:
在这里插入图片描述
继续:
在这里插入图片描述
点击允许:
在这里插入图片描述
配置成功:
在这里插入图片描述

安装成功后,VSCode界面也显示了CodeWhisperer的相关选项,这意味着我们可以开始在VSCode中使用CodeWhisperer了。
在这里插入图片描述

三、Pycharm上测试

在PyCharm中使用Amazon CodeWhisperer也表现出了很好的操作便捷性。用户只需根据自己的需求编写注释,CodeWhisperer就会自动弹出代码建议,用户可以轻松选择并插入代码。这一流程简单明了,即便是编程新手也能够快速上手。

3.1 根据注释写代码

在PyCharm中,我们可以轻松地根据注释生成代码。例如,我写了个注释“抓取亚马逊商城关于iphone15价格", Amazon CodeWhisperer会自动弹出建议代码的界面,我们可以选择合适的代码进行插入。
在这里插入图片描述
它们分别代表“插入代码”,“上一个选项”,“下一个选项”。因为它会自动为我们提供可参考的代码,选择一个合适的代码点击插入即可。

每次插入代码后,按一下键盘空格,便可以继续插入代码,根据提示不断插入代码即可。

这个功能非常实用,尤其是在完成算法题时,通过不断“空格”和”Insert Code“,我们可以轻松几秒钟完成代码。

下面我们来完成一个算法作业:

# 输出:按照从小到大排序后的列表。
#
# 示例:
# 输入:[5, 3, 8, 2, 1]
# 输出:[1, 2, 3, 5, 8]

通过不断“空格”和”lnsert Code“,轻松几秒钟完成代码如下:

def ipserch(arr):
    for i in range(len(arr)):  # 冒检
        for j in range(i, len(arr)):
            if arr[i] > arr[j]:
                arr[i], arr[j] = arr[j], arr[i]  # 位置修�]
    return arr


if __name__ == "__main__":
    arr = [5, 3, 8, 2, 1]
    print(ipserch(arr))

运行结果完全正确,如图所示:
在这里插入图片描述
来完成一个作业习题:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?请用python实现。如下所示:
在这里插入图片描述
直接给出标准答案,简直太棒了!

3.2 检查修复代码错误

在使用Amazon CodeWhisperer时,我也对其在代码安全性方面的表现进行了测试和评估。CodeWhisperer不仅能够生成高质量的代码,还具备识别的能力,下面演示为一个简单的识别修复代码。

这是我开始的代码,刻意在这留了一个错误:
在这里插入图片描述
执行CodeWhisperer自动修复:
在这里插入图片描述

3.3 构建一个简单爬虫

在构建网络爬虫时,我们只需在注释中写明需求,Amazon CodeWhisperer就能为我们生成相应的代码,极大地提高了开发效率。

# 写一个爬虫,模拟打开百度,输入“川川菜鸟”并回车 
# 然后点第一个页面进去查看  
# 用selenium框架 

得到如下:

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
time.sleep(3)
driver.find_element_by_id("kw").send_keys("川川菜鸟") # 输入内容
driver.find_element_by_id("su").click() # 点击搜索

接下来继续把需求写在注释中,不断写清楚注释即可,得到对应代码:

from selenium import webdriver
import time
from selenium.webdriver.common.by import By


driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
time.sleep(3)
driver.find_element(By.ID,'kw').send_keys("川川菜鸟")  # 输入内容
driver.find_element(By.ID,'su').click()  # 点击
# 鼠标滑动180度
js = 'document.documentElement.scrollTop=180'
driver.execute_script(js)
time.sleep(3)

四、 VSCODE上测试

与在PyCharm中类似,VSCODE上的Amazon CodeWhisperer同样操作简便。通过快捷键“Alt+c"运行CodeWhisperer后,用户可以轻松地根据注释生成代码,检查代码错误,并尝试新的编程语言。这种便捷的操作方式大大降低了用户的上手难度,提高了编程效率。

4.1 个性化体验

在使用过程中,Amazon CodeWhisperer展现出了很好的个性化体验。它能够记忆我的编程风格,并根据我的习惯提供合适的代码建议,这让我感到非常舒适,也极大地提高了我的编程效率。

4.2 系统兼容性

我在Windows系统上分别测试了Amazon CodeWhisperer在PyCharm和VSCode中的表现,发现其在这两种IDE中都能够稳定运行,与IDE完美整合,表现出了良好的系统兼容性。

4.3 根据注释写代码

如下所示,首先让它根据我的要求写一个函数,然后写一个示例。

# 写一个求两数和
def add(a,b):
    return a+b
# 给个示例
print(add(1,2))

4.4 尝试一门新的语言

通过Amazon CodeWhisperer的帮助,我尝试学习了C++,并成功完成了一些基础练习。这个工具为我提供了丰富的示例代码和实时建议,使我能够快速入门新的编程语言。
在这里插入图片描述
输入3个数,求最大值:

在这里插入图片描述

4.5 代码生成质量

在使用Amazon CodeWhisperer的过程中,我特别注意到了它生成的代码质量。无论是在完成算法题目还是构建网络爬虫应用时,CodeWhisperer生成的代码都表现出了很高的标准。

符合编程规范:
生成的代码结构清晰,命名规范,符合Python和C++的编程规范,这使得代码易于理解,也方便了后续的代码维护。例如,在生成排序算法和网络爬虫代码时,函数命名清晰,逻辑结构合理,代码间的缩进和空行也都符合规范,显示出了CodeWhisperer对编程规范的遵循。

可读性:
CodeWhisperer生成的代码具有很高的可读性。代码逻辑清晰,注释充分,即便是对于编程新手,也能够快速理解代码的功能和运作机制。这一点在我尝试学习新的编程语言C++时表现得尤为明显,CodeWhisperer的代码建议帮助我快速理解了C++的语法和结构。

可维护性:
生成的代码模块化程度高,函数划分合理,这使得代码具有很好的可维护性。即使在后期需要对代码进行修改和扩展,也能够轻松进行,大大提高了开发效率。

五、实战网络爬虫:抓取csdn热榜数据

提供注释如下:

# 使用selenium爬取热榜
# 热榜地址:https://blog.csdn.net/rank/list
# 获取标题、浏览量、评论数量、收藏数量

初次执行,自动插入相关模块,不用手动敲了,省时间

from selenium import webdriver
import time
import csv
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

继续执行CodeWhisperer,写出一个请求函数用来打开网页:

def get_data(url):
    driver = webdriver.Chrome()
    driver.get(url)
    time.sleep(5)

我们目标是获取到对应数据,因此添加注释,执行CodeWhisperer

# 打开热榜地址

插入代码如下:
在这里插入图片描述
打开后又做什么呢?获取标题标题、浏览量、评论数量、收藏数量,因此分别添加注释如下,执行CodeWhisperer

#添加等待10秒

如下所示:
在这里插入图片描述
继续不断添加注释:

# 等待直到页面加载完成

# 获取所有的文章元素

# 创建或打开CSV文件,准备写入数据:浏览量、评论数量、收藏数量

执行CodeWhisperer,如下所示:
在这里插入图片描述
其中获取所有元素需要人工调整,定位查看,复制出来即可:
在这里插入图片描述
接下来需要遍历获取所有内容,添加注释:

 # 遍历所有文章元素,提取所需数据:浏览量、评论数量、收藏数量

执行CodeWhisperer,插入代码如下:
在这里插入图片描述
同理,定位元素部分需要手动调整,这里可以看一个标题定位例子,其它同理:
在这里插入图片描述
继续执行CodeWhisperer完成一些剩余的代码,此时完整代码如下:

def get_data(url):
    driver = webdriver.Chrome()
    driver.get(url)
    # 添加等待
    wait = WebDriverWait(driver, 10)
    try:
        # 等待直到页面加载完成
        wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "div.hostitem.floor")))
        # 获取所有的文章元素
        product_elements = driver.find_elements(By.CSS_SELECTOR, "div.hostitem.floor")
        # 创建或打开CSV文件,准备写入数据:浏览量、评论数量、收藏数量
        with open('output.csv', mode='w', newline='', encoding='utf-8') as file:
            writer = csv.writer(file)
            writer.writerow(["Title", "View", "Comment", "Collect"])  # 写入表头
            # 遍历所有文章元素,提取所需数据:浏览量、评论数量、收藏数量
            for index, product in enumerate(product_elements):
                title = product.find_element(By.CSS_SELECTOR, "div.hosetitem-title > a").text
                view = product.find_element(By.CSS_SELECTOR, "div.hosetitem-dec > span:nth-child(1)").text
                comment = product.find_element(By.CSS_SELECTOR, "div.hosetitem-dec > span:nth-child(3)").text
                collect = product.find_element(By.CSS_SELECTOR, "div.hosetitem-dec > span:nth-child(5)").text
                # 打印到控制台
                print(f"Product {index + 1}:")
                print(f"Title: {title}")
                print(f"View: {view}")
                print(f"Comment: {comment}")
                print(f"Collect: {collect}")
                # 写入到CSV文件
                writer.writerow([title, view, comment, collect])
    except Exception as e:
        print(f"An error occurred: {e}")
    finally:
        # 确保关闭WebDriver,释放资源
        driver.quit()

输出结果如下,只抓取到了25个数据:
在这里插入图片描述
我发现网页数据抓取我只获取到了25个,如果想要获取后面内容,需要往下翻才会加载25到50的数据,同理继续翻才能加载出25到75数据。为了加载更多的数据,需要模拟滚动页面才能完成。因此思路是:先滚动加载出全部数据,再进行抓取。

添加注释到获取所有的文章元素上面:

# 滚动页面以加载更多数据

如下:
在这里插入图片描述
此时我们可以看到已经完成全部数据抓取:
在这里插入图片描述
保存在csv文件如下:
在这里插入图片描述

通过CodeWhisperer的辅助,写代码时间真的省了好多,有更多时间摸鱼了~

完整代码如下:

# 书籍介绍·:https://chuanchuan.blog.csdn.net/article/details/133050678
# 使用selenium爬取热榜
# 热榜地址:https://blog.csdn.net/rank/list
# 获取标题、浏览量、评论数量、收藏数量


from selenium import webdriver
import time
import csv
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

def get_data(url):
    driver = webdriver.Chrome()
    driver.get(url)
    # 添加等待
    wait = WebDriverWait(driver, 10)
    try:
        # 等待直到页面加载完成
        wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "div.hostitem.floor")))

        # 滚动页面以加载更多数据
        for _ in range(4):
            driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
            time.sleep(5)


        # 获取所有的文章元素
        product_elements = driver.find_elements(By.CSS_SELECTOR, "div.hostitem.floor")
        # 创建或打开CSV文件,准备写入数据:浏览量、评论数量、收藏数量
        with open('output.csv', mode='w', newline='', encoding='utf-8') as file:
            writer = csv.writer(file)
            writer.writerow(["Title", "View", "Comment", "Collect"])  # 写入表头
            # 遍历所有文章元素,提取所需数据:浏览量、评论数量、收藏数量
            for index, product in enumerate(product_elements):
                title = product.find_element(By.CSS_SELECTOR, "div.hosetitem-title > a").text
                view = product.find_element(By.CSS_SELECTOR, "div.hosetitem-dec > span:nth-child(1)").text
                comment = product.find_element(By.CSS_SELECTOR, "div.hosetitem-dec > span:nth-child(3)").text
                collect = product.find_element(By.CSS_SELECTOR, "div.hosetitem-dec > span:nth-child(5)").text
                # 打印到控制台
                print(f"排名:{index + 1}")
                print(f"标题: {title}")
                print(f"浏览量: {view}")
                print(f"评论量: {comment}")
                print(f"收藏量: {collect}")
                # 写入到CSV文件
                writer.writerow([title, view, comment, collect])
    except Exception as e:
        print(f"An error occurred: {e}")
    finally:
        # 确保关闭WebDriver,释放资源
        driver.quit()

url='https://blog.csdn.net/rank/list'
get_data(url)

六、官方文档

对于深入了解和掌握CodeWhisperer的用户来说,官方文档是一份极佳的学习资料。文档中详尽地列出了各项功能说明、操作截图以及实际演示,有助于用户全面而深入地理解和运用CodeWhisperer。更多的使用方法和相关操作,可参考官方文档:CodeWhisperer ,这里有详细的使用教程,有截图和演示,能帮助开发者更好的使用起来:
在这里插入图片描述
该网站提供了丰富的使用教程、实际截图和演示,助力开发者更加便捷高效地使用该工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1048481.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

项目任务管理上的一些总结

1. 开发任务管理现状: 1:基于禅道进行任务派发,缺少任务统计,进度上只能以“来不及”、“进度正常”、“进度延后”等模糊字眼。 2:“感觉”工作效率不高了,工作量是否饱和,任务投入产出偏差多…

桥梁模板人工费多少钱?

桥梁模板是桥梁工程中不可或缺的一部分,它起到支撑和固定混凝土浇筑的作用。在桥梁建设中,模板人工费用是一个重要的成本因素。那么,桥梁模板人工费到底是多少呢?下面我们来详细了解一下。 首先,需要明确的是&#xff…

目标检测算法改进系列之Backbone替换为EMO

EMO:结合 Attention 重新思考移动端小模型中的基本模块 近年来,由于存储和计算资源的限制,移动应用的需求不断增加,因此,本文的研究对象是端侧轻量级小模型 (参数量一般在 10M 以下)。在众多小模型的设计中&#xff0…

安防监控/视频监控系统EasyCVR平台界面侧边栏优化

视频汇聚/视频云存储/集中存储/视频监控管理平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、云存储、智能分析等,视频智能分析平台EasyCVR融合性强、开放度…

windows10系统镜像安装含驱动补丁

前言 都2023年了为什么不装windows11, 当然是硬件不支持了(TPM), 当然你也可以跳过TPM验证硬装 Windows11对系统的要求 如何检测TPM :WindowsR, 输入 tpm.msc 检测是否兼容TMP 言归正传,开始安装 windows10镜像下载 windows11镜像下载 下载工具按流程安装即可 驱动补丁安装…

【SpringCloud】-Ribbon负载均衡

一、背景介绍 项目中使用到的SpringCloud Alibaba这一套微服务架构中服务注册与发现Nacos兼容了Feign,而Feign默认集成了Ribbon,当Nacos下使用Feign默认实现了负载均衡的效果。即使是默认集成了,也要追根溯源。 二、过程 负载均衡是什么&am…

00后卷王的自述,我真的很卷吗?

前言 前段时间去面试了一个公司,成功拿到了offer,薪资也从12k涨到了18k,对于工作都还没两年的我来说,还是比较满意的,毕竟一些工作3、4年的可能还没我高。 我可能就是大家说的卷王,感觉自己年轻&#xff…

设计模式2、抽象工厂模式 Abstract Factory

解释说明:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。 简言之,一个工厂可以提供创建多种相关产品的接口,而无需像工厂方法一样,为每一个产品都提供一个具体工厂 抽象工厂(Abstra…

【2251. 花期内花的数目】

来源:力扣(LeetCode) 描述: 给你一个下标从 0 开始的二维整数数组 flowers ,其中 flowers[i] [starti, endi] 表示第 i 朵花的 花期 从 starti 到 endi (都 包含)。同时给你一个下标从 0 开始…

jeecgboot-3.5.5本地安装部署

一、开发环境说明 1、jdk1.8:java运行环境 2、Maven:项目依赖管理 3、git:代码管理 4、mysql5.7:数据管理。也可以是orcale、pgsql等 华为云HECS云服务器docker环境下安装mysql_supersolon的博客-CSDN博客 5、redis:缓存管理…

Goby 漏洞发布|Cockpit 平台 upload 文件上传漏洞(CVE-2023-1313)

漏洞名称:Cockpit 平台 upload 文件上传漏洞(CVE-2023-1313) English Name: Cockpit File Upload Vulnerability(CVE-2023-1313) CVSS core:7.2 影响资产数:3185 漏洞描述: Cockpit 是一个自托管、灵活…

[C++ 网络协议] 重叠I/O模型

目录 1. 什么是重叠I/O模型 2. 重叠I/O模型的实现 2.1 创建重叠非阻塞I/O模式的套接字 2.2 执行重叠I/O的Send函数 2.3 执行重叠I/O的Recv函数 2.4 获取执行I/O重叠的函数的执行结果 2.5 重叠I/O的I/O完成确认 2.5.1 使用事件对象(使用重叠I/O函数的第六个参…

【x265 源码分析系列】:概述

介绍 x265 也属于 VLC 的 project。 版本: x265-3.5(TAG-208) git: https://bitbucket.org/multicoreware/x265_git.git 编码特点: 研究了一段时间的 HEVC 编码标准,最近开始研究符合 HEVC 标准的开源…

STM32G070RBT6-MCU温度测量(ADC)

1、借助STM32CubeMX生成系统及外设相关初始化代码。 在以上配置后就可以生成相关初始化代码了。 /* ADC1 init function */ void MX_ADC1_Init(void) {/* USER CODE BEGIN ADC1_Init 0 *//* USER CODE END ADC1_Init 0 */ADC_ChannelConfTypeDef sConfig {0};/* USER COD…

MyBatis-Plus通用Service快速实现赠三改查[MyBatis-Plus系列] - 第489篇

历史文章(文章累计480) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 M…

综述 | 关于点云配准的全面综述(二)

原创 | 文 BFT机器人 05 基于优化的配准方法 基于优化的方法的关键思想是开发复杂的优化策略来实现方程(1)中非线性问题的最优解。 由于同源挑战的影响,这个非线性问题变得具有挑战性。图(2a)总结了该类别的主要过程。…

从零开始之了解电机及其控制(11)实现空间矢量调制

广泛地说,空间矢量调制只是将电压矢量以及磁场矢量在空间中调制到任意角度,通常同时最大限度地利用整个电压范围。 其他空间矢量调制模式确实存在,并且根据您最关心的内容,它们可能值得研究。 如何实际执行这种所谓的交替反向序列…

看看属猴人性格及近几年的运势怎么样?

属猴的人五行主金,乃是申金之所在,金旺之人,外显懒散,内心富有主见,行事坚定, 有贯彻始终之斗志,与他人合作融洽,且得以财运颇多; 主金,杀伐果决、精明干练&a…

PHP各种老版本下载方式

最近因工作需要,要下载PHP7.3的最新版本版本。 PHP官网上提供了各种老版本下载地址: https://windows.php.net/downloads/releases/archives/ 下载速度不稳定,时快时慢。 使用前,给下载留足时间。 貌似晚上速度快一些。

gif怎么转换成视频MP4?

gif怎么转换成视频MP4?GIF动图已成为一种风靡网络的流行的特殊图片文件,其循环播放和逐帧呈现的特点使其在社交媒体、聊天应用等场合广泛应用,平时我们进行群聊是,大家总会一些gif动态表情的出现而感觉非常的开行,gif动…