又一款懶人神器問世了:
Visual Studio Code的擴展,基于CodeBERT的Python文檔字符串生成器。
看來現在,這群偷「懶」的程序員們連文檔字符串都不想自己寫了。
基于CodeBERT的生成器
跟正常的DocStrings用法一樣,你只需要輸入三引號「“””」,之后按Enter,便能調用這個工具。就像這樣:
并且,這個生成器還可以在幾種不同類型的文檔字符串格式之間進行選擇。
而這個工具,不僅僅能夠幫助寫代碼的人,還可以方便后來人讀代碼。可以說是非常方便的一個擴展了。
這個工具的本質,就是一個自然語言識別的AI,它能夠識別你所寫代碼的內容,然后輸出對應的字符串。
具體是如何識別的,該AI的作者是這么介紹的:
參數類型是通過PEP 484類型、默認值和var標簽進行識別的。
識別輸入之后便是推斷,這之間進行訓練的方法,也并不復雜,通過CodeBERT便可以實現。
CodeBERT是一種雙模預訓練模型,它可以捕捉自然語言和編程語言之間的語義連接,是目前已知的第一個大型 NL-PL(自然語言-編程語言)預訓練模型。
在訓練過程中,使用 CodeSearchNet 語料庫作為訓練數據,并使用 CodeBERT 中的 Code2NL微調任務。
之后,進行的推斷基準測試如下:
從上圖也能看出,在不同的推斷基準測試中,所需要的生成時間都很短(2s內),這體現在操作上的話,就是延遲。
目前,這個生成器可以支持識別args、kwargs、decorators和errors等參數類型。
此外,還可以輸出Google、docBlockr、Numpy、Sphinx等Docstring格式,PEP0257類型的格式,也即將上線。
使用方法
1、從容器中運行模型推斷服務
具有GPU的話:在安裝nvidia-docker后,運行docker run-it-d-GPU 0-p 5000:5000 gray kode/ai-docstring。
只有CPU:運行docker run-it-d-p 5000:5000 gray kode/ai-docstring。
2、在VSCode中安裝擴展并使用
光標必須在定義正下方的行上,以生成完全自動填充的文檔字符串。
用三重引號「“””或‘’’」打開文檔字符串后,按Enter鍵;
鍵盤快捷鍵是ctrl+shift+2,Mac為cmd+shift+2。
網友討論
該生成器一經發布,便引起了網友們的討論。
有網友認為這是一項非常便利的技術,非常期待:
不過,也有網友認為這項技術仍具有不小的局限性:
比如這位網友認為:更常見的注釋,是在代碼中沒有立即出現的上下文之間添加內容。
不過,雖然有局限,但是人總是在「懶」的過程中變得更「懶」(狗頭)。
比如jQuery的流行,是因為開發者懶得為DOM編寫跨瀏覽器兼容性代碼;
而之后Angular.js的流行,是因為開發者連DOM都懶得操作。
所以,還是非常期待這個擴展的后續,這些程序員能不能針對這些局限性進一步偷懶的。