我在 McKinsey 2024 年 5 月 30 日提供的一項名為“The state of AI in early 2024-Gen AI adoption spikes and starts to generate value”的調研中讀到這麼一句話:人工智能在組織中最常見的兩個使用職能是:“市場營銷和銷售”以及“產品和服務開發”,這兩個職能是之前的研究確定採用人工智能可以產生最大價值的職能。調研的相關分析數據參考如下:
調查報告的結論在我最近參加的開源社區 Meetup 中得到印證。這個 Meetup 設置的 4 個演講主題中,有三個是與 AI 代碼開發工具有關。來自於三家互聯網大廠的產品經理分別分享了他們的大語言模型輔助開發工具,每一個工具都致力於提高開發效率和代碼質量。除了 AI 開發工具都有常規功能,如代碼補全、單元測試、安全掃描等以外,在場的開發者還關注一些生產中的實際功能。這篇博客我想以 Amazon Q Developer 為例展開聊聊那些被開發者關注且用於生產的實用功能。
亞馬遜雲科技開發者社區為開發者們提供全球的開發技術資源。這裏有技術文檔、開發案例、技術專欄、培訓視頻、活動與競賽等。幫助中國開發者對接世界最前沿技術,觀點,和項目,並將中國優秀開發者或技術推薦給全球雲社區。如果你還沒有關注/收藏,看到這裏請一定不要匆匆劃過,點這裏讓它成為你的技術寶庫!
代碼註釋和文檔生成
對於大多數開發者而言,編寫項目文件比如 readme 和代碼註釋是一項繁瑣且耗時的任務。然而,這些文檔對於項目的可讀性和維護性至關重要。Amazon Q Developer 能夠幫助開發者自動生成詳細且清晰的 README 文件和代碼註釋。這個功能很實用,不僅節省了開發者的時間,還確保了文檔的一致性和準確性。
對於大語言模型來説實現這個功能並不難,區別在於生成內容的可讀性和準確性。這就需要大語言模型對整個項目的分析全面,對代碼的理解準確,以及對於文檔閲讀者邏輯的合理把握。為了提供給開發者更好的開發體驗,Amazon Q Developer 使用不同的大語言模型來分別完成項目理解和文檔生成,以及處理代碼理解。這樣做的理由,我認為是出於不同的 LLM 對特定的使用場景各有擅長。就像開發者可以在 Amazon Bedrock 上選擇不同的大語言模型來應對他們不同的生產場景一樣。
我在一些使用場景中體驗過 Amazon Q Developer 代碼註釋生成以及文檔生成的功能,基本可以做到 90% 的生成可用率。相關的 demo 視頻展示,很快就可以在亞馬遜雲科技的視頻頻道里看到。
使用自然語言完成新功能的開發
Amazon Q 的另一個強大功能是通過自然語言開發新功能。開發者只需用自然語言描述他們的需求,Amazon Q 就能生成相應的代碼。這種方式不僅降低了開發的門檻,使得非專業人士也能參與到開發過程中,還大大提高了開發效率。
舉個例子:增加猜字遊戲的複雜度。
- 基於 Amazon Q 對整個遊戲源代碼理解的基礎上,我在集成在 IDE 中的 Amazon Q chart 中輸入“As a user, I'd like to be able to select the difficulty of the word I'm guessing before starting a game. The difficulty changes the length of the word being guessed. The 3 levels of the game should be: Beginner with a 5 character word length, Intermediate with a 6 character word length and Advanced with a 7 character word length”(需要注意的是目前 Amazon Q Developer 還不支持中文)。
- Amazon Q 根據 prompt 生成了新功能實現計劃,如下:
- 不僅僅如此,如果對生成的計劃滿意,還可以讓 Amazon Q 繼續生成代碼。這一切只需一個按鈕。
Amazon Q 生成的代碼是這樣的:
點擊文件名,打開其中一個被修改的文件。我們可以看到之前的代碼與建議的代碼之間的差異,同時支持在此進行其他修改。
生成的代碼可能不是 100% 準確或完整。如果對生成的代碼不滿意,可以通過 chat prompt 繼續修改並重新生成代碼,直到滿意為止。
即將到來的更多新體驗
在剛剛結束的 Global Hero Summit 期間,Amazon Q 展示了一些令人興奮的新功能:
- 定製化 AI 模型-允許開發者從私有庫和庫中創建定製化的 AI 模型。這意味着開發者可以根據自己的需求和項目特點,訓練出更為貼合的 AI 模型,從而提高開發效率和代碼質量。
- 代碼庫問答-通過聊天界面,開發者可以向 Amazon Q 提問關於代碼庫的問題。無論是代碼結構、函數用途還是調試信息,Amazon Q 都能快速提供準確的答案,幫助開發者更好地理解和管理代碼。
- .Net 代碼轉換-Amazon Q 具備強大的代碼轉換功能,尤其是在 .Net 平台上。它可以自動將代碼從一種語言轉換為另一種語言,幫助開發者輕鬆實現跨平台開發。
- 集成 SageMaker Studio 和 Eclipse IDE-Amazon Q 與 SageMaker Studio、Eclipse IDE 等開發環境無縫集成,使得開發者可以在熟悉的環境中使用 AI 工具,提高工作效率。
- 使用自然語言更新 Amazon Web Services 賬户資源-Amazon Q 允許開發者使用自然語言更新 Amazon Web Services 賬户中的資源。這種方式不僅簡化了資源管理流程,還降低了出錯的風險。
- 高級故障排除-Amazon Q 提供了高級故障排除功能,可以自動檢測和修復系統中的複雜問題,確保系統的穩定性和可靠性。
- …
目前這些功能大多都還在 preview 階段,但很快就可以用於生產。
Amazon Q 的獨特之處
其實每個 AI 開發工具都有它的特點和適合的應用場景,就像 Amazon Bedrock 提供的十幾種大語言模型一樣。與其他 AI 開發工具相比,Amazon Q 與 Amazon Web Services 提供的其它服務深度集成,對雲資源也有更深度的理解。就像 iOS 的 Siri,Amazon Q 不僅僅是一個輔助工具,更像是一個智能助手,隨時隨地為開發者提供幫助。無論是代碼編寫、調試,還是項目管理,Amazon Q 都能提供全面的支持。
雲上開發的未來
隨着雲計算技術的不斷髮展,雲上開發正成為一種趨勢。Amazon Q 的出現,進一步推動了這一趨勢。通過將開發環境和 AI 工具整合到雲端,開發者可以隨時隨地進行開發工作,提升工作靈活性和效率。此外,雲上開發還提供了更強的計算能力,數據安全性以及彈性,確保開發過程的順利進行。
我個人認為,雲上開發的未來已來。你怎麼看?
文章來源:https://dev.amazoncloud.cn/column/article/66b1d2a92993de59889bfa35?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=SF