《企业实战分享 · CodeGeeX 初体验》

news2024/11/14 18:06:26

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗
🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数,欢迎多多交流。👍

文章目录

    • 写在前面的话
      • 技术简介
      • 安装使用
    • 功能介绍
      • 代码生成和智能不全
      • 为选中代码生成注释
      • 代码翻译其他语言
      • 智能问答功能
      • 其他功能说明
    • 产品比对
    • 总结陈词

CSDN.gif

写在前面的话

提起 Github Copilot,相信很多人都听说过甚至使用过,作为 Github 研发的一款先进的编程辅助插件,它可以在我们日常编写代码的过程中,根据代码的上下文内容、注释等信息自动推断生成高质量的代码,很大程度上提升我们的代码编写效率。而自从去年8月 Github Copilot 公测结束开始收费后,很多同类型且面向个人免费的智能辅助插件就如雨后春笋般纷纷冒了出来。
作为白嫖党,可以选择 Github Copilot 的免费平替,例如:Amazon CodeWhisperer、Codeium、CodeGeeX,本篇博文主要分享一下 CodeGeeX。


技术简介

技术简介
CodeGeeX 是清华和智谱AI联合打造的多语言代码生成模型,它可以实现代码的生成与补全、自动添加注释、代码翻译以及智能问答等功能,能够帮助开发者显著提高工作效率。CodeGeeX支持多种主流的编程语言,并适配多种主流IDE。
官网:codegeex.cn/zh-CN
GitHub地址:github.com/THUDM/CodeGeeX2
CodeGeeX 作为一款国产AI编程工具,目前对于个人开发者完全免费,你可以像使用 ChatGPT 和 Copilot 一样,让它协助你完成项目的开发。由于是国内开发,所以我们可以直接使用它,而不需要额外连接VPN。
作为辅助编程工具,肯定是不能完全代替人,目前对于复杂的场景,AI工具也会提供一些错误的答案,但还是能大大减少我们去搜索引擎中检索信息的时间,具体效果大家可以自行去体验。

注意:首次使用 Ask CodeGeeX 需要登录账号,点击 Login your CodeGeeX… 按钮跳转到登录页面。


安装使用

由于日常开发都使用 IDEA,这边也介绍 IDEA 中的安装使用,其他 IDE 大同小异。
最低版本要求:IDEA 2021.1
很简单,插件库里面搜CodeGeex,安装一下,重启即可。
企业微信截图_17219636859155.png
安装后,侧边栏会多一个 CodeGeex(就在Maven附近),效果如下图:
image.png

【模型选项】
在IDEA的CodeGeeX插件中,扦设置项,可以针对代码补全的模型,选择Pro版或Lite版的模型。 Lite版的响应
速度更快,Pro版则在代码补全的准确性上,有大幅提升。
image.png

Tips:个人没发现什么差别。


功能介绍

代码生成和智能不全

只需写出注释后按回车,CodeGeeX 会自动帮你续写相应的功能代码,之后按下 Tab 键即可填充代码。
操作示例大概是:
Step1、输入一段注释,如下:

// 获取随机数,1-100

Step2、按下回车键,下方将显示推荐的代码
image.png
Step3、按Tab键直接采用,也可以忽略他的提示,自己编写

【点评】
1、有时候依靠注释,给出的提示不是那么准确,即可能不适用你的业务逻辑,请自行选择;
2、官网介绍,还具备不靠注释,生成单行代码和多行代码,但个人感觉不太准备,经常给一些乱七八糟的东西;

为选中代码生成注释

在编辑器中选中一段代码,点击鼠标右键。在右键菜单"CodeGeeX Tool”中,点击下一级菜单“生成注释”,
即可生成注释。此时,右下角CodeGeeX图标转圈表示正在生成。
image.png
生成效果如下图:
image.png

【点评】
1、生成的注释有的会比较乱,并且可能是中文注释,解释太冗余;
2、不要点右侧的插入,会一大堆报错;

代码翻译其他语言

在CodeGeeX的侧边栏中,击"Translation’标签,进入翻译界面。
操作效果如下图:
image.png

【点评】
1、平时需要的翻译场景不多,生成的代码还可以,还没有深入尝试;

智能问答功能

右侧直接提问对话,类似 ChatGpt,就不展开赘述了。

【点评】
1、生成代码质量和专业性可能稍逊 ChatGpt,不过速度快而且免费,还有什么好说的。

其他功能说明

还支持解释代码段、自动修复BUG、生成单元测试、附带工具箱等功能,操作都很简单,就不赘述了,有兴趣的直接体验一下,或者参考官网手册。


产品比对

【关于 Copilot】
生成的一段优缺点对比,可以参考一下。
其实总结一下就一句话:Copilot 质量更高但要钱,CodeGeeX稍逊但是可以白嫖。

CodeGeeX的优缺点:
优点:
速度快:能够快速生成代码片段,提高开发效率。
易于上手:对于初学者来说,使用Code GeeX可以更快地掌握编程技能。
多语言支持:支持多种编程语言,适用范围广泛。
缺点:
生成代码的质量参差不齐,有时候需要人工调整。
对于复杂逻辑的代码生成能力有限,可能无法满足一些特定需求。

Copilot的优缺点:
优点:
智能程度高:通过学习大量代码库,Copilot能够提供高质量的代码建议。
实时性强:在编写代码的过程中,能够实时为开发者提供代码补全和建议。
社区支持:GitHub上有庞大的开发者社区,可以共享和交流代码片段。
缺点:
对于特定领域的代码建议可能不准确。
依赖于大量的数据训练,可能存在数据偏差导致的问题。

Tips:其实说这么多,就是贵。

【关于 ChatGpt】
有人要问 ChatGpt 不是也能做这些事情,范围还更广,那使用 CodeGeeX 有什么优势?
1、可以插件形式整合到 IDEA,操作更方便;
2、不需要翻墙或付费就可以使用;
3、ChatGpt 适合更大范围的通用类问答形式,CodeGeeX 专门用于代码层面(惭愧);
但这边经过测试,无论ChatGpt 还是 Copilot,一些回应质量还是高于 CodeGeeX 的,下面一个问话对比,很明显 ChatGpt 对提问者本意的揣测以及生成回答的详细程度,是更具备优势的。

【CodeGeeX 的回答】
企业微信截图_17219659371866.png

【ChatGpt 的回答】
企业微信截图_17219659019848.png


总结陈词

整体对于白嫖党,还是挺不错的,对于日常经常与IDEA开发的程序猿,增加这么多功能何乐而不为呢。
虽然质量可能不是最好,但免费而且不用翻墙,还想怎么样呢,哈哈。
如果生成的全部是能用的,程序猿价值不是更低了,还是要人为把控一下。

Tips:那么,AI最终是否取代程序猿?
💗 后续会逐步分享企业实际开发中的实战经验,有需要交流的可以联系博主。

CSDN_END.gif

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

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

相关文章

企业级视频拍摄与编辑SDK的全面解决方案

视频已成为企业传播信息、展示品牌、连接用户的重要桥梁,如何高效、专业地制作高质量视频内容,成为众多企业面临的共同挑战。美摄科技,作为视音频技术领域的创新先锋,以其强大的视频拍摄与编辑SDK,为企业量身打造了一站…

react中简单的配置路由

1.安装react-router-dom npm install react-router-dom 2.新建文件 src下新建page文件夹,该文件夹下新建login和index文件夹用于存放登录页面和首页,再在对应文件夹下分别新建入口文件index.js; src下新建router文件用于存放路由配置文件…

【Android】Activity生命周期与五种启动模式

文章目录 生命周期返回栈Activity状态生命周期方法 启动模式standard模式singleTask模式singleTop模式singleInstance模式singleInstancePerTask模式配置方式 生命周期 返回栈 每个Activity的状态由它在Activity栈(又叫“回退栈back stack”)中的位置决…

Web Worker 详细介绍

Web Worker 详细介绍 如果我们有一些处理密集型的任务,但是不想让它们在主线程上运行(那样会使浏览器/UI变慢),这时候我们可能会希望 JavaScript 可以以多线程的方式操作。 虽然 JavaScript 是单线程了,但是在浏览器…

超声波眼镜清洗机哪款好用又实惠?4款高评分眼镜清洗机机型深度测评

眼镜党都知道超声波清洗机吧,每次眼镜脏了,去眼镜店清洗,店员用的就是超声波清洗机。利用超声波的原理,这种清洗机可以深入物品内部进行清洁,效果非常出色。相比手工清洗,超声波清洗机能在清洁过程中保护镜…

远程项目调试-informer2020

informer2020 Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting(原文)Informer 是一个基于Transformer的模型,是为了应对长依赖关系而开发的。本文的主要主题是序列预测。序列预测可以在任何具有不断变化的数据的地方…

做短视频素材哪里找?去哪里下载?自媒体下载素材网站分享

自媒体视频创作:高质量素材网站大公开! 大家好,我是一名热情的短视频创作者。今天,我要与大家分享一些寻找优质视频素材的秘诀。无论是新手还是老手,这些建议都能帮助你的视频在众多平台中脱颖而出,吸引更…

系统移植(四)u-boot移植 ② basic版本

文章目录 一、u-boot移植&#xff08;一&#xff09;生成u-boot源码1. 配置交叉编译器&#xff0c;修改u-boot源码目录下的MAKEFILE文件4. 执行make <board_name>_defconfig命令&#xff0c;配置u-boot源码5. make menuconfig---图形化界面配置6. 根据DK1板子的设备树文件…

ISP 代理提供商:互联网安全的关键参与者

简介&#xff1a;互联网安全的演变态势 互联网改变了我们互动、工作和开展业务的方式&#xff0c;但也带来了与安全性和可访问性相关的重大挑战。在这个数字时代&#xff0c;互联网服务提供商 (ISP) 代理提供商在解决这些问题方面发挥着关键作用。他们提供的基本服务不仅可以增…

PDF解锁网站

https://smallpdf.com/cn/unlock-pdfhttps://smallpdf.com/cn/unlock-pdfhttps://www.freemypdf.comhttps://www.freemypdf.com

LVGL使用上一个不方便的问题记录

slider这个控件&#xff0c;应该画在蓝色框的里面&#xff0c;源码实现将中心画在蓝色框上&#xff0c;导致总会有两边超出的情况出现&#xff0c;真想修改源码&#xff0c;作者不知道咋想的&#xff1f;&#xff1f;&#xff1f;

vue3 Router 点击index中的按钮,查看相应的详情信息,并且传递id,及其路由的定义方法。

1、路由的定义 结构如下: 2、路由定义代码&#xff1a; {path: tabs,name: TabsDemo,component: () > import(/views/demo/feat/tabs/index.vue),meta: {title: t(routes.demo.feat.tabs),hideChildrenInMenu: true,},children: [{path: detail/:id,name: TabDetail,compon…

封装和桥接Unity 协程体系

简介 协程&#xff08;Coroutine&#xff09;在C#中是一种特殊的函数&#xff0c;它允许开发者编写可以暂停执行并在未来某个时刻恢复执行的代码块。协程通常用于实现异步操作&#xff0c;如延时执行、等待某个事件发生、或者分段执行复杂的任务。在Unity游戏引擎中&#xff0c…

Cuda编程模型中常见的错误检测方法

Cuda编程模型中常见的错误检测方法 1 CUDA错误检测简介2 直接嵌入检测函数2.1 检测函数介绍2.2 使用示例 3 封装在.cuh头文件中嵌入3.1 创建 error.cuh 头文件3.2 在 CUDA 程序中包含 error.cuh 并调用 CHECK 宏3.3 使用示例 1 CUDA错误检测简介 CUDA编程模型中的错误检测是确…

【C++】选择结构案例-三只小猪称体重

案例问题 假设有三只小猪A、B、C&#xff0c;在输入三者体重后希望能输出他们各自的体重并测出谁最重 思路 先让A与B相比较&#xff0c;如果A重&#xff0c;则让A和C相比较&#xff0c;如果A重则输出A最重&#xff0c;否则输出C最重 在最开始的条件&#xff08;AB相比较&am…

JQuery简单实现ul li点击菜单项被选中的菜单项保持高亮状态(导航ul li点击切换样式)

效果&#xff1a; JS&#xff1a; $(function () {//遍历list&#xff08;一般为ul li&#xff09;$("#menu a").each(function () {//给当前项添加点击事件&#xff08;点击后切换样式&#xff09;$(this).bind(click,function () {// 移除其他所有项的active类$(&…

Sokit(TCP/UDP调试工具)

下载&#xff1a;http://www.winwin7.com/soft/56522.html#xiazai Sokit中文版是一款免费开源的TCP / UDP 测试&#xff08;调试&#xff09;工具&#xff0c;它主要可以用于接收和发送TCP/UDP数据包&#xff0c;让你更深的了解网络状况&#xff0c;能够有效地接收、发送、转…

Linux中的进程1

进程的概念 程序&#xff1a;二进制文件 进程&#xff1a;启动的程序 所有的数据都在内存中 需要占据更多的系统资源 cpu&#xff0c;物理内存&#xff08;RAM&#xff09; 并行和并发 并发&#xff1a;在操作系统中&#xff0c;是指一个时间段中有几个程序都处于已启动…

干货讲解 | 在线教育行业如何搭建帮助中心

引言 随着互联网技术的飞速发展&#xff0c;在线教育已成为教育领域不可或缺的一部分&#xff0c;它打破了传统教育的时空限制&#xff0c;让知识传播更加高效、便捷。然而&#xff0c;在享受在线教育带来的便利时&#xff0c;用户也面临着操作复杂、功能理解不透彻、遇到问题…

Java语言程序设计——篇七(2)

&#x1f33f;&#x1f33f;&#x1f33f;跟随博主脚步&#xff0c;从这里开始→博主主页&#x1f33f;&#x1f33f;&#x1f33f; 封装性与多态 封装性与访问修饰符类的访问权限类成员的访问权限 &#x1f320;防止类扩展和方法覆盖实战演练 抽象类实战演练 对象转换实战演练…