挑戰三大任務,Amazon CodeWhisperer 生成代碼的能力到底如何?

2023-09-19     InfoQ

原標題:挑戰三大任務,Amazon CodeWhisperer 生成代碼的能力到底如何?

作者 | Hanson

活動推薦: #生成式 AI 先鋒開發者集結令 #

免費體驗編程神器,豐厚大獎等你來拿!https://jinshuju.net/f/rVuKYa

ChatGPT 火出圈之後,AI 大模型編程越來越多,雖然 AI 編碼暫時無法完全替代程式設計師,但是時代變化、潮流趨勢所向,大家沒有必要過多焦慮,而是應該擁抱變化,擁抱趨勢,嘗試用 AI 輔助自己的編碼,看是否可以得到幫助,本文試用了 Amazon 的 CodeWhisperer AI 編程工具,在這裡做一個小小的總結。

CodeWhisperer 通過 AI 技術,可以自動分析代碼庫中的模式和常見用法,從而生成符合標準的代碼片段,其旨在幫助開發人員節省時間和精力,提高開發者的工作效率。

當前 CodeWhisperer 支持集成到幾種開發環境中,VS、Jetbrains、JupyterLab,Lamda 等,由於平時用 C++/Python/Go 比較多,因此本文使用 JetBrains 的 Clion 來測試 CodeWhisperer 生成 C++的能力,首先安裝好 Clion(具體步驟網上找或者亞馬遜官網指導書),進行 Clion 後,首先通過 tools 搜索安裝 aws toolkit,安裝好後啟動就可以使用 CodeWhisperer 了,第一次啟動時會生成一個驗證碼,連結到你的亞馬遜帳號進行授權,此處不細講,按照提示操作即可

下面進入正題:

使用 CodeWhisperer 生成代碼,需要添加註釋,其會根據注釋一行一行完成代碼編寫,並且會幫助你完成要編寫代碼的注釋

任務一:

測試生成全部代碼能力,主題完成一個 TCP Server 收發數據,下面圖里是一步步的結果

最終完成的代碼如下

生成過程並非像 ChatGPT 一樣,一股腦的代碼全部生成扔給你,需要開發同學一行一行的插入確認,這種情況也有好處,在於可以在開發過程中自己一行一行的確認正確性及問題,避免一大堆複雜代碼重新費神的確認邏輯。

任務二:

推薦相應功能的開源庫以及使用已集成的開源包進行代碼生成測試,主題完成一個 SIP 消息處理函數,下面圖片展示其完成過程和結果

(1)使用 osip2 解析 sip 消息,下面是生成的代碼,基本符合預期

(2) 期望重新推薦一個 sip 消息解析庫,不知道是我已經集成了解析庫還是還是什麼其他原因,沒有成功

可見 CodeWhisperer 對於 Github、Gitee 以及網際網路上標準開源庫是進行過訓練的,可以讀懂 oSip2 是一個很有名的 sip 協議棧,因此可直接使用其 API 根據注釋生成可用代碼

任務三:

基於已完成部分代碼,根據注釋生成補全代碼,CodeWhisperer 也可以根據上下文和注釋補齊代碼的相應功能,建立一個資源分配函數(帶一定的業務功能),完成一半的部分(>4),讓 CodeWhisperer 完成剩下的部分(<4),下面展示結果

最終的結果

至此任務三測試完成,生成了基本可用的代碼。

最後總結,CodeWhisperer 對於能夠更快地編寫代碼還是有一定的幫助。

首先,在集成開源或者第三方不熟悉的代碼庫時,它可以為我節省大量的時間去學習和查閱 API 接口文檔,讓我能夠專注於改進和測試。

其次,可以幫助我節省繁瑣的重複性工作,如上面的 TCP Socket 處理。

當然,也期望可以後續可以生成整體代碼段的方式,對於非複雜邏輯代碼的場景其效率是更高的。

版權聲明: 本文為 InfoQ 作者【Hanson】的原創文章。

原文連結:【https://xie.infoq.cn/article/386428468269729e334f2c134】。

本文遵守【CC BY-NC】協議,轉載請保留原文出處及本版權聲明。

文章來源: https://twgreatdaily.com/zh/974fb53e6930ae500b25f4d53b48c11d.html