在 Amazon CodeWhisperer 正式發(fā)布后,許多客戶都已經(jīng)使用它來(lái)簡(jiǎn)化和精簡(jiǎn)其軟件開發(fā)方式。CodeWhisperer 使用由根基模型提供支持的生成式人工智能來(lái)理解代碼的語(yǔ)義和上下文,并提供相關(guān)且有用的建議。它有助于更快、更安全地構(gòu)建應(yīng)用程序,并且可以在不同層面提供幫助,從小建議到編寫完整的函數(shù)和單元測(cè)試,幫助將復(fù)雜的問題分解為更簡(jiǎn)單的任務(wù)。
想象一下,您想提高代碼測(cè)試覆蓋范圍或?yàn)閼?yīng)用程序?qū)嵤┘?xì)粒度的授權(quán)模型。當(dāng)您開始編寫代碼時(shí),CodeWhisperer 將在后臺(tái)運(yùn)行。它可以理解您的注釋和現(xiàn)有代碼,提供從代碼段到整個(gè)函數(shù)或類的實(shí)時(shí)建議。這種即時(shí)幫助會(huì)根據(jù)您的流程進(jìn)行調(diào)整,減少了在搜索解決方案或語(yǔ)法提示時(shí)進(jìn)行上下文切換的需要。在開發(fā)過程中,使用編碼助手可以提高專注度和工作效率。
當(dāng)您遇到不熟悉的 API 時(shí),CodeWhisperer 可以為您提供相關(guān)的代碼建議,從而加快您的工作速度。此外,CodeWhisperer 還具有全面的代碼掃描功能,可以檢測(cè)難以發(fā)現(xiàn)的漏洞并提供修復(fù)建議。這與全球開放應(yīng)用程序安全項(xiàng)目(OWASP)概述的最佳實(shí)踐一致。這不僅使編碼更高效、更安全,還讓工作質(zhì)量更有保證。
CodeWhisperer 還可以標(biāo)記類似于開源訓(xùn)練數(shù)據(jù)的代碼建議,并標(biāo)記和刪除可能被認(rèn)為有偏見或不公平的有問題的代碼。它為您提供相關(guān)開源項(xiàng)目的存儲(chǔ)庫(kù) URL 和許可證,使您可以更輕松地查看它們并在必要時(shí)添加歸因。
下面提供了幾個(gè) CodeWhisperer 實(shí)際應(yīng)用的示例,這些示例涵蓋了軟件開發(fā)的不同領(lǐng)域,從原型設(shè)計(jì)和入門到數(shù)據(jù)分析和權(quán)限管理。
CodeWhisperer 可加快原型設(shè)計(jì)和入職培訓(xùn)
一個(gè)以有趣的方式使用 CodeWhisperer 的客戶是 BUILDSTR,這是一家提供專注于平臺(tái)開發(fā)和現(xiàn)代化的云工程服務(wù)的咨詢公司。他們?cè)诤蠖耸褂?Node.js 和 Python/ target=_blank class=infotextkey>Python,在前端主要使用 React。
我與 BUILDSTR 的聯(lián)合創(chuàng)始人 Kyle Hines 進(jìn)行了交談,他說(shuō):“在對(duì)不同客戶不同類型的開發(fā)項(xiàng)目利用 CodeWhisperer 的過程中,我們已經(jīng)看到了它對(duì)原型設(shè)計(jì)的巨大影響。例如,我們能夠以極快的速度為與其他亞馬遜云科技服務(wù)(例如 Amazon DynamoDB)交互的 Amazon Lambda 函數(shù)創(chuàng)建模板,這給我們留下了深刻的印象”。 Kyle 說(shuō),他們現(xiàn)在在原型設(shè)計(jì)上花費(fèi)的時(shí)間減少了 40%,而且他們注意到客戶環(huán)境中存在的漏洞數(shù)量減少了 50% 以上。
Kyle 補(bǔ)充說(shuō):“由于招聘和培養(yǎng)新人才是咨詢公司的一項(xiàng)長(zhǎng)期工作,因此我們利用 CodeWhisperer 對(duì)新開發(fā)人員進(jìn)行入職培訓(xùn),它幫助 BUILDSTR Academy 將入職培訓(xùn)的時(shí)間和復(fù)雜性減少了 20% 以上。”
CodeWhisperer 用于探索性數(shù)據(jù)分析
Wendy Wong 是一名業(yè)務(wù)績(jī)效分析師,在 Service NSW 和 AI 敏捷項(xiàng)目中構(gòu)建數(shù)據(jù)管道。由于她對(duì)社區(qū)的貢獻(xiàn),她還被評(píng)為了 亞馬遜云科技數(shù)據(jù)大俠。她表示,當(dāng)她使用統(tǒng)計(jì)和可視化工具分析數(shù)據(jù)集以獲取其主要特征的摘要時(shí),Amazon CodeWhisperer 顯著加快了探索性數(shù)據(jù)分析過程。
她認(rèn)為 CodeWhisperer 是一個(gè)快速、用戶友好且可靠的編碼助手,可以準(zhǔn)確地推斷出她編寫的每一行代碼的意圖,并最終通過其最佳實(shí)踐建議幫助提高代碼質(zhì)量。
“使用 CodeWhisperer,我不必記住每一個(gè)細(xì)節(jié),因?yàn)樗梢詼?zhǔn)確地自動(dòng)完成我的代碼和注釋,大大簡(jiǎn)化了代碼編譯”,她分享道,“以前,我需要花 15 分鐘來(lái)設(shè)置數(shù)據(jù)準(zhǔn)備預(yù)處理任務(wù),但現(xiàn)在只需要 5 分鐘就能準(zhǔn)備好”。
Wendy 說(shuō),通過將這些重復(fù)的任務(wù)委托給 CodeWhisperer,她的工作效率得到了提高,她寫了一系列文章來(lái)解釋如何使用 CodeWhisperer 來(lái)簡(jiǎn)化探索性數(shù)據(jù)分析。
另一個(gè)用于瀏覽數(shù)據(jù)集的工具是 SQL。Wendy 正在研究 CodeWhisperer 如何為不是 SQL 專家的數(shù)據(jù)工程師助力。例如,她注意到他們只需要求其“寫入多個(gè)聯(lián)接”或“編寫子查詢”就可以快速獲得要使用的正確語(yǔ)法。
CodeWhisperer 可加快測(cè)試和其他日常任務(wù)
我有幸與亞馬遜云科技開發(fā)人員關(guān)系平臺(tái)團(tuán)隊(duì)的軟件工程師共事了一段時(shí)間。這個(gè)團(tuán)隊(duì)的工作內(nèi)容包括構(gòu)建和運(yùn)營(yíng) community.aws 網(wǎng)站。
Nikitha Tejpal 的工作主要圍繞 TypeScript,CodeWhisperer 可以在她輸入時(shí)提供有效的自動(dòng)完成建議,從而幫助她完成編碼過程。她說(shuō)她特別喜歡 CodeWhisperer 幫助進(jìn)行單元測(cè)試的方式。
“我現(xiàn)在可以專注于編寫正面測(cè)試,然后使用注釋讓 CodeWhisperer 為相同的代碼提供負(fù)面測(cè)試建議”,她說(shuō),“這可以將我編寫單元測(cè)試所需的時(shí)間縮短 40%”。
她的同事 Carlos Aller Estévez 依靠 CodeWhisperer 的自動(dòng)完成功能為他提供一兩行代碼建議,以補(bǔ)充他現(xiàn)有的代碼,然后,他再自行判斷是接受還是忽略這些代碼。其他時(shí)候,他會(huì)主動(dòng)利用 CodeWhisperer 的預(yù)測(cè)功能為他編寫代碼。“如果我明確想讓 CodeWhisperer 為我編碼,我會(huì)寫一個(gè)方法簽名,并在注釋中說(shuō)明我的需求,然后等待自動(dòng)完成”,他解釋說(shuō)。
例如,當(dāng) Carlos 的目標(biāo)是檢查用戶是否擁有給定路徑或其任何父路徑的權(quán)限時(shí),CodeWhisperer 根據(jù) Carlos 的方法簽名和注釋為部分問題提供了一個(gè)巧妙的解決方案。生成的代碼會(huì)檢查給定資源的父目錄,然后創(chuàng)建所有可能的父路徑的列表。然后,Carlos 對(duì)每條路徑進(jìn)行了簡(jiǎn)單的權(quán)限檢查,以完成實(shí)施。
“CodeWhisperer 可以幫助我處理算法和實(shí)施細(xì)節(jié)方面的工作,這樣我就有更多時(shí)間思考大局,例如業(yè)務(wù)需求,并創(chuàng)建更好的解決方案”,他補(bǔ)充說(shuō)。
CodeWhisperer 是一名多語(yǔ)言團(tuán)隊(duì)合作者
CodeWhisperer 通曉多種語(yǔ)言,支持 15 種編程語(yǔ)言的代碼生成:Python、JAVA、JavaScript、TypeScript、C#、Go、Rust、php、Ruby、Kotlin、C、C++、Shell 腳本、SQL 和 Scala。
CodeWhisperer 還是一名團(tuán)隊(duì)合作者。除了 Visual Studio (VS) Code 和 JetBrains 系列 IDE(包括 IntelliJ、PyCharm、GoLand、CLion、PhpStorm、RubyMine、Rider、WebStorm 和 DataGrip)之外,CodeWhisperer 還可用于 JupyterLab、Amazon Cloud9、Amazon Lambda 控制臺(tái)和 Amazon SageMaker Studio。
在亞馬遜云科技,我們致力于通過投資開發(fā)新服務(wù)來(lái)滿足客戶的需求,幫助客戶將負(fù)責(zé)任的人工智能從理論轉(zhuǎn)變?yōu)閷?shí)踐,讓他們能更輕松地識(shí)別和緩解偏見,提高可解釋性,并幫助保持?jǐn)?shù)據(jù)的私密性和安全性。