• 码农必备?清华大学开源了一款写代码神器。。。


    程序员宝藏库https://gitee.com/sharetech_lee/CS-Books-Store

    提升程序员编码效率,是一个经久不衰的话题,从最初用纯文本编辑器到后来代码自动补全,再到后来基于AI智能补全代码,开发者效率的确在不断提升。

    关于新工具的出现,一直都会有支持和反对的两种声音。

    支持者认为这些工具大大提升了开发效率,可以把有效的时间花费在创造更多业务价值上。

    反对者则认为过于依赖这些工具,容易养成一个人的惰性,进而大大降低开发水平。

    个人认为应该拥抱技术的变化,我们不应该因为对新鲜事物的恐惧而停滞不前,甚至在没有尝试之前就开始盲目的批判。

    就如同智能补全工具的出现,逐渐的在覆盖更多的开发者,也解放了很多开发者的时间,提升了效率。

    今天,要给大家介绍的这款开发工具比智能补全工具更为智能、强大,可以认为是智能补全的下一代产品。

    img

    这款工具的名字叫做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”,它就会给出一个冒泡排序函数的建议:

    img

    交互模式

    顾名思义,就是在隐匿模式的基础上加了个交互式界面。

    点击Ctrl+Enter,会打开在右侧打开一个交互界面,这样CodeGeeX给出的建议就会显示在右侧交互界面。

    我们可以点击「Use Code」选择对应的代码片段。

    img

    翻译模式

    img

    这种模式前面提到过,也就是说,我们可以任意复制一段其他语言编写的代码,然后选中代码,点击「Ctrl+Alt+T」可以激活翻译模式,选择目标语言,就可以把这段代码翻译到对应的语言。

    提示模式

    在提示模式下,可以输入一些额外的提示信息来触发一些有趣的功能,例如,代码解释、概括、特定风格等,它利用的是一种少样本生成能力。

    img

    举个例子,假如你自己定义了一个模板并且提供了一段逐行解释的代码作为例子,你可以通过快捷键「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

  • 相关阅读:
    2022年12月3日(星期六):骑行张家坝(赏银杏)
    Python Opencv实践 - 车辆统计(2)检测线绘制,车辆数量计数和显示
    软考笔记(3)——浮点数
    哪些浏览器受到用户欢迎?分享这两款安全浏览器
    java中的代理模式
    【C++】内联函数 ④ ( C++ 编译优化 - 没有 inline 关键字修饰的函数也可能被内联 | C++ 编译器内联限制 | 内联失败的几种情况 )
    【TypeScript】深入学习TypeScript对象类型
    推荐一个python、AI学习社区:ShowMeAI
    uni-app 百度语音识别文字并展示功能
    Python实现约瑟夫生者死者游戏可视化(单向循环链表实现)
  • 原文地址:https://blog.csdn.net/jakpopc/article/details/127930325