天天看點

碼農必備?清華大學開源了一款寫代碼神器

程式員寶藏庫:https://gitee.com/sharetech_lee/CS-Books-Store

提升程式員編碼效率,是一個經久不衰的話題,從最初用純文字編輯器到後來代碼自動補全,再到後來基于AI智能補全代碼,開發者效率的确在不斷提升。

關于新工具的出現,一直都會有支援和反對的兩種聲音。

支援者認為這些工具大大提升了開發效率,可以把有效的時間花費在創造更多業務價值上。

反對者則認為過于依賴這些工具,容易養成一個人的惰性,進而大大降低開發水準。

個人認為應該擁抱技術的變化,我們不應該因為對新鮮事物的恐懼而停滞不前,甚至在沒有嘗試之前就開始盲目的批判。

就如同智能補全工具的出現,逐漸的在覆寫更多的開發者,也解放了很多開發者的時間,提升了效率。

今天,要給大家介紹的這款開發工具比智能補全工具更為智能、強大,可以認為是智能補全的下一代産品。

碼農必備?清華大學開源了一款寫代碼神器

這款工具的名字叫做CodeGeeX,來自清華大學知識工程實驗室(KEG),開源2個月,目前已經有700+star。

CodeGeeX是一款具有130億參數的多語言代碼生成模型,采用華為MindSpore架構時間,它是曆時兩個月再20多種程式設計語言的代碼語料庫的基礎上預訓練得到。

這裡需要注意一點,它的功能并不是「代碼補全」,而是「代碼生成」。

也就是說,它能夠根據你的描述,或者上下文自動生成一段代碼,和傳統上根據前面的輸入,自動補全餘下部分是截然不同的。

它目前支援Python、C++、Java、JavaScript、Go等多種主流程式設計語言,而且在代碼生成準确度方面表現較好。

除了代碼生成之外,它還支援代碼翻譯,換句話說,你複制一段C++寫的代碼,可以輕松的翻譯成Python、Java等其他語言。

另外,它已經支援目前比較熱門的編輯器VS Code。

目前,它主要支援4種使用方式,下面就以VS Code中的使用為例來逐個介紹一下。

隐匿模式

簡單來說就是,你輸入一段描述之後,然後停止輸入,CodeGeeX會根據上下文,從光标停止處開始生成代碼。

可以看一下VS Code右下角的圖示,如果一直在轉動,就代表正在生成中,生成完成後會顯示「Done」,如果沒有建議,就會顯示「No Suggestion」。

如果有多個建議,可以通過「Alt/Option+」[或者「Alt/Option+]」來切換不同建議,通過Tab可以插入建議内容。

舉個例子,假如輸入“write a bubble sort function”,它就會給出一個冒泡排序函數的建議:

碼農必備?清華大學開源了一款寫代碼神器

互動模式

顧名思義,就是在隐匿模式的基礎上加了個互動式界面。

點選Ctrl+Enter,會打開在右側打開一個互動界面,這樣CodeGeeX給出的建議就會顯示在右側互動界面。

我們可以點選「Use Code」選擇對應的代碼片段。

碼農必備?清華大學開源了一款寫代碼神器

翻譯模式

碼農必備?清華大學開源了一款寫代碼神器

這種模式前面提到過,也就是說,我們可以任意複制一段其他語言編寫的代碼,然後選中代碼,點選「Ctrl+Alt+T」可以激活翻譯模式,選擇目智語言,就可以把這段代碼翻譯到對應的語言。

提示模式

在提示模式下,可以輸入一些額外的提示資訊來觸發一些有趣的功能,例如,代碼解釋、概括、特定風格等,它利用的是一種少樣本生成能力。

碼農必備?清華大學開源了一款寫代碼神器

舉個例子,假如你自己定義了一個模闆并且提供了一段逐行解釋的代碼作為例子,你可以通過快捷鍵「Alt/Option+t」觸發提示模式,選擇寫好的模版,它就會解釋你輸入的代碼。

傳送門:

https://github.com/THUDM/CodeGeeXgithub.com/THUDM/CodeGeeX

中文介紹:

https://github.com/THUDM/CodeGeeX/blob/main/README_zh.mdgithub.com/THUDM/CodeGeeX/blob/main/README_zh.md

建議大家有空可以多浏覽Github,有很多好用的開源免費工具。但是,目前Github上項目多如牛毛,而且刷榜現在也非常嚴重,想要找到優質的項目變得越來越難。這裡,給大家推薦Github上一個非常不錯的項目《DevWeekly》,這個項目每周都會精挑細選一些優質的開源項目,涵蓋C++、JAVA、JavaScript、Python、Go等不同程式設計語言。此外,還有一些開源工具、優秀的技術文章:

https://github.com/Jackpopc/DevWeekly

繼續閱讀