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

news2025/9/23 20:08:50

程序员宝藏库: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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/16075.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这就是程序员眼中的函数吗?(一)

小叮当的任意门1. 函数是什么?2. C语言中的函数分类1. 库函数2. 自定义函数3. 函数的参数1. 实际参数(实参)2. 形式参数(形参)4. 函数的调用1. 传值调用2. 传址调用练习1. 写一个函数可以判断一个数是不是素数三级标题…

5分钟实现「视频检索」:基于内容理解,无需任何标签

Notebook 教程:text-video retrieval 「视频检索」任务就是输入一段文本,检索出最符合文本描述的视频。随着各类视频平台的兴起和火爆,网络上视频的数量呈现井喷式增长,「视频检索」成为人们高效查找视频的一项新需求。传统的视频…

Matlab点云处理及可视化第1期—基于KD树的邻域点搜索(柱状邻域、球状邻域及KNN)

目录 1 概述 2 代码实现 3 可视化验证 数据及完整代码获取方式: 观前提示:本文文字内容请勿直接用于论文写作,否则后果自负。 特别提示:《Matlab点云处理及可视化》系列文章旨在为初入点云处理领域的朋友提供一份较为权威、可…

MR直播(混合现实直播)做一场高品质企业培训

阿酷TONY / 2022-11-18 / 长沙 MR,是英文Mixed Reality两个单词的缩写,中文翻译为混合现实。 MR混合现实直播技术是通过在现实环境中引入虚拟场景信息,增强用户体验的真实感,具有真实性、实时互动性等特点。 MR直播解决方案是深…

基于springboot农产品交易平台的设计与实现

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于特色农产品电商平台 当然也不能排除在外,随着网络技术的不断成熟,带动了特色农产品电商平台,它彻底…

软件需求分析——需求的理论基础

如果有兴趣了解更多相关内容,可以来我的个人网站看看:瞳孔空间 一:需求的涵义 研究对象:软件加强型系统中的软件 软件加强型系统:泛指由计算机技术支持的互相联系着的一组人类活动组成的系统。与物理设备和人类社会…

linux网络协议栈源码分析 - 传输层(TCP的输出)

1、TCP write系统调用(tcp_sendmsg) 1.1、write系统调用 socket的write系统调用栈: write最终调用tcp_sendmsg发送消息。 1.2、tcp_sendmsg报文分段 tcp_sendmsg主要是对用户的消息按MSS进行分段、添加到发送队列并将用户数据拷贝到分段里面,根据相关判断设置PSH标…

[附源码]SSM计算机毕业设计超市收银系统论文JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

学生台灯是灯管的好还是led的好?分享学生专用台灯第一品牌

给学生使用的话肯定是led灯更好的,主要是对眼睛有保护作用的,灯管一般当做主要照明灯具是可以的,在家中客厅里,卧室就是灯管,使用led灯是想要补足亮度的,全光谱的国AA级台灯,更健康、更适应人类…

计算机网络---ARP、DHCP与ICMP

(一)IP 地址与硬件地址 IP地址是网络层使用的地址,它是分层次等级的。硬件地址是数据链路层使用的地址(MAC地址),它是平面式的。在网络层及网络层之上使用IP地址,IP地址放在IP数据报的首部&…

并肩刘德华,对战周杰伦,腾格尔老师线上演唱会即将拉开帷幕

在刚刚结束的第三十五届金鸡奖上面,著名爱国艺人刘德华,又一次出现在大众的视野当中。来自香港的天王刘德华,是一个著名的音乐人和演员,他拳拳的爱国之情,也感动了无数的粉丝。 刘德华作为中国华语乐坛的中坚力量&…

22071班(11月18日)

1.在串口工具进行输入: echo 1 > /dev/myled0 ---->led1灯点亮 echo 0 > /dev/myled0 ---->led1灯熄灭 echo 1 > /dev/myled1 ---->led1灯点亮 echo 0 > /dev/myled1 ---->led1灯熄灭 echo 1 > /dev/myled2 ----…

【附源码】计算机毕业设计JAVA校园跑腿平台

【附源码】计算机毕业设计JAVA校园跑腿平台 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA mybati…

什么是PaaS平台

PaaS平台概述 PaaS平台通常是基于IaaS平台构建的,PaaS平台和IaaS平台最大的差别是需求即服务。所有的管理都是以服务为粒度的,在IaaS以资源管理为中心的平台上提供了更高层次的抽象。 PaaS的本质 (1)运维自动化,故障…

统计聚类法的基本步骤:

统计聚类法的基本步骤: 1>形成数据框 2>计算距离阵 计算n个样品两两间的距离D。 3>进行系统聚类 (I)构造n个类,每个类只包含一个样品; (2)合并距离最近的两类为一新类; (3)计算新类与当前各类的距离,若类个数为1,…

观测云产品更新|Pipeline 使用体验优化;支持写入用户的自定义事件;自定义查看器支持选择更多类型的数据等

观测云更新 Pipeline 使用体验优化 Pipeline 支持过滤条件配置多选 支持将任意一个 Pipeline 脚本设置为“默认 Pipeline 脚本“,若当前数据类型在匹配 Pipeline 处理的时候,未匹配到其他的 Pipeline 脚本,则数据会按照默认 Pipeline 脚本的…

vs2017编译的64位libssh2库

需求:使用sftp上传下载文件 环境:windows vs2017 参考 链接: link 链接: link 编译 环境准备 libssh2依赖于openssl和zlib,所以需要有所以需要先编译:openssl和zlib才行。openssl和zlib。openssl和zlib我是下载人家编译好的…

【MySQL基础】数据库系统之关系型数据库与非关系型数据库

目录 一、数据库系统 1. 数据库 2. 数据库应用 3. 数据库管理系统(数据库软件) 3.1关系型数据库【RDBMS】 3.2非关系型数据库【NoSQL】 4. SQL和数据库管理系统的关系 5. 关系型数据库管理系统的组成 💟 创作不易,不妨点…

DIY CY7C68013A模块为逻辑分析仪

DIY CY7C68013A模块为逻辑分析仪摘要工具软件步骤参考资料:摘要 将淘宝购买的CY7C68013A模块修改为8通道逻辑分析仪。 购买的CY7C68013A模块如下: 工具软件 Zadig:用于安装逻辑分析仪驱动。 PulseView:Sigrok逻辑分析仪应用软…

Python面向对象2-继承-

文章目录目标一. 继承的概念二. 单继承三. 多继承 [python又支持多继承了]四. 子类重写父类同名方法和属性 #TODO目标 继承的概念单继承多继承子类重写父类的同名属性和方法子类调用父类的同名属性和方法多层继承super()私有属性和私有方法 一. 继承的概念 生活中的继承&…