下載量突破400萬,百萬開發者首選的 AI 編碼工具通義靈碼是如何煉成的?

阿里云云原生發表於2024-08-16

通義靈碼是由阿里雲和通義實驗室聯合推出的一款基於通義大模型的智慧編碼輔助工具,它具備程式碼智慧生成和研發智慧問答等多項功能,旨在幫助開發者提高編碼效率和程式碼質量。

我們非常高興的宣佈,通義靈碼外掛下載量突破400萬啦! 目前,通義靈碼每天推薦程式碼超 3000 萬次,被開發者採納程式碼行數超億行,在中國信通院可信AI程式碼大模型測評中,通義靈碼獲得首個最高階。

核心優勢

  • 程式碼智慧生成:通義靈碼能夠根據當前程式碼檔案及跨檔案的上下文,生成行級/函式級程式碼、單元測試和程式碼註釋,幫助開發者更高效地完成編碼工作。
  • 自然語言生成程式碼:透過自然語言描述功能需求,通義靈碼可以在編輯器中直接生成相應的程式碼和註釋,保持編碼的連續性。
  • 單元測試生成:支援根據多種測試框架生成單元測試程式碼,包括但不限於JUnit、Mockito、Spring Test等,提高程式碼的測試覆蓋率。
  • 研發智慧問答:基於大量研發文件和API/SDK資料,通義靈碼能夠解答程式設計相關問題,提供解決方案和建議。
  • 異常報錯智慧排查:當程式碼執行出現異常時,通義靈碼可以結合執行程式碼和異常堆疊資訊,快速提供排查思路或修復建議。
  • 多IDE支援:通義靈碼支援包括JetBrains全家桶、VS Code以及Visual Studio在內的多種整合開發環境,提供一致的編碼體驗

此前,我們採訪了多位開發者,大家對通義靈碼在單元測試、程式碼生成準確度和生成速度上的表現非常滿意。

通義靈碼對個人開發者免費開放使用,降低使用門檻,讓更多開發者能夠享受到AI編碼帶來的便利。

為滿足企業客戶在私域知識檢索、企業資料合規、統一管理等方面的需求,通義靈碼推出標準版、專屬版。標準版“開箱即用”,可以接入企業私域知識,實現私域知識問答,讓 AI 推薦的程式碼更貼合企業規範;專屬版在標準服務之外,提供公共雲上專屬例項部署、企業私有模型訓練、獨立企業賬號系統等服務,滿足大中型企業客戶定製模型、節約算力的需求。

阿里雲致力於持續推動多智慧體的自主研發,進一步推動AI程式設計的發展。今年6月推出首個“AI 程式設計師”,它具備架構師、開發工程師、測試工程師等多種崗位的技能,能一站式自主完成任務分解、程式碼編寫、測試、問題修復、程式碼提交整個過程,最快分鐘級即可完成應用開發,大幅提升研發效率。

未來使用者只需定義問題、提出需求,分鐘級完成一個應用開發將成為常態。透過 AI 程式設計助手和 AI 程式設計師的共同加持,每個人類程式設計師都將成為超級個體。

針對開發者和企業關注的問題,我們整理了一套問答 List,也歡迎大家反饋產品體驗建議,與我們一起,推動 AI 編碼在國內更廣泛的落地!

快問快答

AI 程式設計師是什麼樣的產品形態?跟通義靈碼的關係是什麼?

A: 人機互動的模式分為三個階段,第一個階段是人機配合,以人為主,機器為輔,我們把它叫做 Copilot 模式;接下來會進入到 Agent 模式,由單個 Agent 自主完成一個小任務,比如寫一個測試用例;最後是多 Agent 協同模式,可以完成非常複雜的一件事。

AI 程式設計師是基於多 Agent 協同架構下產生的產品,人機互動模式已經發生了質變,變成了機器為主,人為輔。人在這個過程中更多是提出需求,及時對 AI 程式的執行做糾偏,以及去校驗它最終生成的結果,程式設計的生產力會有大幅度的提升,發生質變。通義靈碼更多是第一個階段,就是 Copilot 的模式,真正到了 Multi-Agent 或者機器為主時,產品形態一定是 AI 程式設計師。

市面上智慧編碼工具非常多,開發者選擇時有什麼標準嗎?

A: 從我們觀察來看,程式設計師首先對程式碼助手 IDE 外掛的第一要求就是準,採納率一定得高;第二個是程式碼生成要足夠的快,不能太卡頓;三是能否跟企業內部的規範或個人開發習慣進行結合;最後還需考慮安全性。

引入智慧程式碼助手,對企業來講意味著什麼?

A: 通義靈碼上線後,有大量頭部企業,中小企業來跟我們交流,企業使用AI提效是未來的必然趨勢了。ROI 是決策者首先要考慮的事,經過資料測算,如果我們幫助企業提升 10% 至 15% 的效能,但就算只有 5%,其實 ROI 都是非常高的。我們這類產品是用一個極低的成本,幫助程式設計師幹了最核心的事情。

開源模型和商業模型如何選?

A: 企業可以基於開源模型去做一些應用,程式碼領域比較特殊,現在市面上的模型多是 Base Model,靈碼基於 CodeQwen,針對各種語言、框架及跨檔案引用,還有自適應生成粒度決策等等構造了大量人工標註資料去對它進行訓練。經過訓練後,這個模型的採納率和智慧化就有進一步提升了。自訓練模型這部分成本很高,如果企業都自研,那 ROI 是非常低的。

如何透過智慧編碼助手輔助開發人員進行程式碼走讀,快速瞭解程式碼?

A: 大量開發者是透過程式碼解釋功能,快速瞭解整個程式碼的含義。除了簡單的程式碼解釋,圈選程式碼就可以完成。另外還可以透過 @workspace 功能,讓大模型對整個庫進行走讀,然後給出相應的解釋,我們可以讓它定位到某個檔案,甚至某個類或者是某個目錄,讓它去進行走讀,來幫助我們快速瞭解。

對於新的技術棧或選型,如何從頭編寫一個程式,編碼助手可以怎麼來使用?

A: 這裡面有兩個場景。第一個場景是要寫一個框架,想做一個 demo,那直接把我們的自然語言輸進去。大模型可以快速針對它原來的知識,給出相應的新技術框架,或者一個語言程式,這是大模型非常擅長的。還有一種情況,企業內部已經有一些模板了,這時我們透過企業知識檢索增強的方式,呼叫原來企業的程式碼模板,再讓大模型基於這個模板去按照我們的要求生成,也可以快速的完成新工程的開發。

如何透過智慧編碼助手輔助去實現一個功能要求?

A: 開發者用的最多的是程式碼續寫,也就是說還是按照原來的習慣去寫。大家注意到經常可能要寫一些註釋來提示大模型生成業務程式碼,甚至可能連註釋都不用寫,在這種場景下,仍能達到 30% 的採納率。還有一種情況,就是讓它去完成一個類似 API 介面的呼叫,生成一段完整的程式碼,或者直接讓它生成一個演算法,我直接把這一段程式碼完整複製到 IDE 區,也可以快速去完成一個功能。

程式碼的 RAG 知識庫是什麼功能?應該怎麼管理才能提升程式碼編寫的準確性?

A: 檢索增強是我們最近針對企業版推出的重要功能。這裡麵包括兩種,第一個是程式碼補全的 RAG,主要是在程式碼續寫時進行輔助,它可以模仿我們原來寫好的業務邏輯去生成,或者說按照原來的自研元件庫或者資源框架的方式去進行服務生成,或者按照原來的 API 呼叫正規化去生成。

在編寫程式碼的時候,它自動去企業的知識庫召回了相似的程式碼。第二種是企業的知識問答,可以將企業裡面研發文件,或者 API 定義的文件上傳,只需要透過 #team docs,就可以讓大模型去針對問題去實時到企業知識庫去進行查詢,聯合生成。

@workspace 的能力可以用在哪些應用場景中?

A: @workspace 是最近我們推出並且不斷調優的產品能力。核心就是它可以讀整個工程的程式碼,並且來按照自然語言的描述去進行程式碼生成,或者說是程式碼走讀,或者是生成一個小功能。它比較擅長給它一個明確的程式碼任務。第二個就是它可以去做程式碼的 review。它不擅長寬泛的、複雜的業務邏輯,還沒有辦法做到這麼強的對語言的感知能力。

在推理過程中,用到的程式碼上下文片段是如何來保證隱私性的?

A: 企業特別關注程式碼安全,程式碼是他們的核心資產。首先從技術上,我們可以做到所有的跟程式碼相關的全部存在本地,也就是說雲上是企業一行程式碼都不儲存,在整個推理鏈路上都是不會儲存客戶程式碼的,雲上不留痕,就沒有程式碼洩露的風險。二是我們在整個傳輸鏈路全部都用了加密,就算駭客把中間攔截掉,也沒有辦法去拿到我們的程式碼。我們還針對大客戶去推出了 VPC 隔離技術,包括端側的敏感資訊過濾技術等,還把隱私政策寫到我們條款裡。

針對不同部門,怎麼進行個性化資料的區分跟管理?

A: 這是剛剛上線的功能。考慮到企業有非常多的部門,每個部門都可以設定自己的知識庫,並且可以指定這個知識庫是企業公共的,還是部門私有的,它可以分配到部門和到個人的許可權。當每次使用檢索增強的時候,它可以根據這個人能夠觸達的資料,自動地路由召回資料。

企業後續如果能夠擴充套件靈碼能力的話,會在哪些開發場景中做輔助呢?

A: 靈碼的擴充套件能力是很多企業關注也是我們未來建設的一個重點,包括在自定義的 prompt,自定義的上下文,自定義的 Agent 這種場景做很多的功能,也就是說企業有什麼研發規範、經常使用的程式設計正規化,都可以固化出來變成 prompt,給整個企業其他的員工使用。還可以定義各種各樣的 Agent,跟企業內部的 DevOps 平臺聯動,將靈碼的能力不僅僅侷限於程式碼的 IDE 裡面的生成,且賦能整個 DevOps 鏈條,這也是我們未來要支援的目標。

點選此處,下載體驗通義靈碼。

相關文章