- CodeWhisperer:強(qiáng)大的AI代碼助手,大大提高編程效率
- 2023年10月20日 來源:北方企業(yè)新聞網(wǎng)
提要:在這個(gè)AI技術(shù)飛速發(fā)展的時(shí)代,我們邀請(qǐng)你一同踏上“用 AI 助力,提升編程效率 —— Amazon CodeWhisperer 探索之旅”的征程。這不僅是一次向AI編程助手——Amazon CodeWhisperer的探索,也是一次向更高效、更智能編程方式的探索。
什么是 Amazon CodeWhisperer?
亞馬遜云科技在2023年4月18日宣布,實(shí)時(shí) AI 編程助手 Amazon CodeWhisperer 正式可用,同時(shí)推出的還有供所有開發(fā)人員免費(fèi)使用的個(gè)人版(CodeWhisperer Individual)。CodeWhisperer 經(jīng)過數(shù)十億行代碼的訓(xùn)練,可以根據(jù)您的評(píng)論和現(xiàn)有代碼實(shí)時(shí)生成從代碼片段到全函數(shù)的代碼建議。CodeWhisperer 幫助開發(fā)者基于注釋生成代碼,追蹤開源參考,掃描查找漏洞。確保了開發(fā)人員可以專注于敏捷開發(fā),不會(huì)由于搜索示例代碼等工作而打斷思緒。在創(chuàng)建復(fù)雜代碼和面對(duì)不斷變化的開發(fā)環(huán)境時(shí),開發(fā)人員可以在自己喜歡的 IDE(集成開發(fā)環(huán)境)中使用 CodeWhisperer,例如 Visual Studio Code、IntelliJ IDEA 及其他 IDE,從而提高工作效率、簡(jiǎn)化工作任務(wù)。
具有以下特點(diǎn):
·??1、免費(fèi):對(duì)所有開發(fā)人員都可以免費(fèi)使用。這點(diǎn)很重要!!!
·??2、為您量身定制的實(shí)時(shí) AI 代碼生成器,極大提高工作效率。在預(yù)覽期間,Amazon 舉辦了一場(chǎng)工作效率挑戰(zhàn)賽,使用 Amazon CodeWhisperer 的參與者成功完成任務(wù)的可能性要比未使用 CodeWhisperer 的參與者高 27%,平均完成任務(wù)的速度快 57%。
·??3、 支持熱門編程語言和 IDE。Amazon CodeWhisperer 支持開發(fā)語言有: Python、Java、JavaScript、TypeScript、C#、Go、Rust、PHP、Ruby、Kotlin、C、C++、Shell 腳本、SQL 和 Scala 等開發(fā)語言;支持的IDE有Visual Studio Code、IntelliJ IDEA 等。所有開發(fā)人員(不僅僅是擁有亞馬遜云服務(wù)賬戶或使用亞馬遜云服務(wù)的人),只需一個(gè)電子郵箱地址即可注冊(cè)。so easy!!!
·??4、針對(duì) AWS 服務(wù)的優(yōu)質(zhì)建議:可以幫助程序員過濾出有偏見或不公正的代碼建議,提高代碼的安全性和準(zhǔn)確性。CodeWhisperer 是唯一具備該功能的編程助手。當(dāng)生成的代碼類似于訓(xùn)練集中的參考代碼時(shí),它會(huì)為代碼提供額外的提示(比如代碼庫 URL 和許可證),幫助降低使用代碼的風(fēng)險(xiǎn),并使開發(fā)人員重復(fù)利用代碼。
·??5、內(nèi)置安全掃描:可以對(duì)開發(fā)人員編寫的代碼進(jìn)行安全掃描,找到并建議修復(fù)難以檢測(cè)的漏洞。例如十大開放式 Web 應(yīng)用程序安全項(xiàng)目 (OWASP) 中的漏洞以及不符合加密庫最佳實(shí)踐的漏洞等。如果 CodeWhisperer 發(fā)現(xiàn)了漏洞,它會(huì)提供解決問題的建議。
快速上手CodeWhisperer
安裝
打開pytcharm,點(diǎn)擊File——Settings,如下圖:
點(diǎn)擊Plugins,然后,在搜索欄里輸入aws,找到AWS Toolkit,點(diǎn)擊Install安裝,如下圖:
彈出警告框,如下圖:
點(diǎn)擊Accept,繼續(xù)下一步。等待安裝完成。
安裝完成后,點(diǎn)擊Apply。
重啟Pycharm。到這里就安裝完成了。非常easy!!!
配置
重啟Pycharm后,在左下角就能看到AWS Toolkit。我們開始配置CodeWhisperer,如下圖
點(diǎn)擊AWS Toolkit——Developer Tools,選擇CodeWhisperer,點(diǎn)擊Start。
選擇使用email登錄,如上如圖.然后,點(diǎn)擊Connect
點(diǎn)擊Open and Copy Code。
然后將Code粘貼進(jìn)去。點(diǎn)擊Submit and continue。繼續(xù)下一步!
輸入注冊(cè)的電子郵箱,如果沒有請(qǐng)注冊(cè)一個(gè)賬號(hào)!繼續(xù)下一步!
輸入郵箱和姓名!下一步!
新建密碼,和新建賬號(hào)時(shí)的要求一樣,可以設(shè)置一樣的密碼!
點(diǎn)擊Allow。然后網(wǎng)頁和Pycharm彈出如下界面:
一切OK!Are you OK?
如何使用 Amazon CodeWhisperer
·??1、將光標(biāo)放在注釋或代碼行后面,點(diǎn)擊 Enter 鍵,激活 CodeWhisperer。
·??2、您可以使用向左箭頭鍵 / 向右箭頭鍵,瀏覽多個(gè)建議(如果可用)。通過按 Tab 鍵,接受代碼建議。通過按 Esc 鍵 或鍵入一個(gè)字符,放棄建議。
·??3、在接受或編寫新代碼后,再次點(diǎn)擊 Enter 鍵,獲取下一行建議代碼。
·??4、手動(dòng)觸發(fā) Amazon CodeWhisperer;或者如果未顯示建議,可在 MacOS 上點(diǎn)擊 Option + C,或在 Windows 上點(diǎn)擊 Alt + C。
CodeWhisperer初體驗(yàn):hello world
配置完成就可以上手了! 體驗(yàn)一下Python的hello world。如下圖:
先寫一行注釋,如下圖:
然后,點(diǎn)擊Enter鍵,生成函數(shù)名。如果你覺得滿意,點(diǎn)擊Tab鍵即可使用!在點(diǎn)擊Enter鍵,生成函數(shù)體,如下圖:
點(diǎn)擊Tab鍵,寫入代碼。幾個(gè)按鍵就可以完成!代碼如下:
中文和英文混著用,CodeWhisperer可以識(shí)別!
Python語言快速入門
我選一些常用的代碼作為例子,比如一些文件的讀寫操作和一些經(jīng)典的算法,體驗(yàn)CodeWhisperer代碼生成能力!
向文件寫入數(shù)據(jù)
我想輸入一萬行咋辦呢?
讀取csv文件
這個(gè)就比較簡(jiǎn)單了!
排序算法之冒泡排序
代碼如下:
對(duì)比其他平臺(tái)的,代碼如下:
設(shè)計(jì)模式之單例模式
模式設(shè)計(jì)也是日常編程經(jīng)常用到的,我選擇單例模式來測(cè)驗(yàn)一下CodeWhisperer,代碼如下:
可以看到a和b是同一個(gè)對(duì)象,代碼是沒有問題的!
使用CodeWhisperer快速上手Pytorch
目前,python語言廣泛應(yīng)用在AI上,其中最著名的AI框架是Pytorch。試試CodeWhisperer生成Pytorch代碼的能力如何?
pytorch版本的卷積
Conv+BN+Relu激活函數(shù)
Conv+BN+Relu是CNN的標(biāo)準(zhǔn)配置!我們一起看看CodeWhisperer生成的代碼怎么樣,代碼如下:
輕松搞定!!!
殘差Block
ResNet Block,這種殘差結(jié)構(gòu)主宰著深度學(xué)習(xí)模型,無論是CNN還是Transformer都是這種殘差結(jié)構(gòu),我們嘗試使用CodeWhisperer生成ResNet的Block,代碼如下:
毫無壓力!!!
上大餐:Reset18
只需使用Enter+Tab+方向鍵就可以完成ResNet18網(wǎng)絡(luò)的編譯!
NMS(非極大值抑制)
NMS是物體檢測(cè)常用的代碼,我們使用CodeWhisperer可以輕松寫出來,代碼如下:
總結(jié)
在這個(gè)AI技術(shù)飛速發(fā)展的時(shí)代,我們邀請(qǐng)你一同踏上“用 AI 助力,提升編程效率 —— Amazon CodeWhisperer 探索之旅”的征程。這不僅是一次向AI編程助手——Amazon CodeWhisperer的探索,也是一次向更高效、更智能編程方式的探索。
在這次旅程中,我們一同領(lǐng)略了Amazon CodeWhisperer帶來的革命性改變,它以人工智能為驅(qū)動(dòng),極大地提升了開發(fā)者的生產(chǎn)力,降低了開發(fā)時(shí)間,并提供了一種全新的編程體驗(yàn)。從代碼的生成到智能建議,再到錯(cuò)誤檢測(cè)和代碼優(yōu)化,CodeWhisperer都展現(xiàn)出了強(qiáng)大的能力。
通過上面的介紹,相信你已經(jīng)親身體驗(yàn)到AI技術(shù)在編程中的應(yīng)用,感受到了CodeWhisperer帶來的便捷與高效。讓我們共同開啟這個(gè)全新的編程世界,擁抱AI的變革,用智能編程助力我們的未來。
我們?cè)谶@里等你,一起開啟這場(chǎng)AI與編程的探索之旅,一起見證AI技術(shù)在軟件開發(fā)中的美好未來!