CodeGeex全能的智能编程助手

news2024/11/17 5:59:27

大家好我是在看,记录普通人学习探索AI之路。

一、介绍

CodeGeeX,一款由清华大学知识工程实验室研发的基于大型模型的全能智能编程辅助工具,能够实现包括代码生成与补全、自动注释添加、代码翻译以及智能问答等多种功能。经过对包含前后端工程师、算法工程师、学生和研究者在内的上百名用户进行问卷调查后发现,有高达83.4%的受访者表示,使用CodeGeeX插件能够有效提升他们的编程效率。

CodeGeeX支持Python、Java、C++、JavaScript、Go等数十种常见编程语言,支持VSCode及

IntelliJ IDEA、PyCharm、GoLand等JetBrains IDE。

二、安装

在VSCode插件下载页面,搜索CodeGeex插件并安装

三、功能

一)代码补全

有两种模式可以进行代码补全,分别是自动模式和交互模式

1、自动模式

当用户停止编写代码时,插件会收集编辑器中的代码、注释、当前语言等,发送给CodeGeek,触发代码生成,VSCode底部CodeGeeX图标转圈表示正在生成,生成完毕之后会以灰色显示,按TAb键即可插入在当前光标处插入生成结果。

代码生成中:

代码生成完成:

1)采纳候选代码

按下Tab键可以采纳AI生成的候选代码,会继续自动生成后面的代码,如果采纳,就继续按Tab键,否则自己写代码。

最终完整的代码需要按多次Tab键生成,CodeGeex是一步步顺着代码的思路生成,不是和ChatGPT一次生成全部代码,这个和使用场景有关,这个我感觉在VSCode中写代码,这种方式体验挺好的。

2)切换候选代码

按Alt/Option-+[或]在候选者之间进行切换。

VSCode左下角的配置"按钮打开设置面板,可修改候选数量Candidate Num,默认是1,候选数过多会减慢生成速度

3)重新生成候选代码

如果你不满意当前的建议,可以按A1t/option+\获得新的候选代码。

2、交互模式

按ctrl+Enter进入交互模式,可以在右侧窗口中选择生成结果,并点击"使用代码",代码就会插入到鼠标处。

二)代码翻译

选中一段代码,然后点击Ctrl+Alt+T进入翻译模式,根据提示选择要翻译的目标语言,CodeGeeX将自动识别当前编辑器中代码的语言,并进行翻译,点击翻译结果上方的insert即可将翻译结果插入文件。

备注:您可以在设置中选择插入时如何处理被翻译的代码一一注释或者覆盖。

三)代码注释

选择您想要解释的代码,右键选择CodeGeex:Add Comment

(可设置快捷键)即可在当前代码中直接生成注释。

四)代码扩展

通过智能问答机器人可以实现其它扩展功能,左边菜单找到CodeGeex插件,点击"login"按钮登录即可与机器人聊天。

1、对话聊天

直接在聊天框中输入问题回车即可,可以是类似ChatGPT的任何问题,比如知识科普、代码生成、代码分析等。

2、代码生成

直接在聊天框中问想要生成的代码。

3、解释代码

选中代码,然后聊天框中输入/,选择/explain回车,可以通过这个功能提升阅读源码的效率。

4、代码注释

选中代码,然后聊天框中输入/,选择/comment回车,这里和上面的代码注释类似,不过这里是通过在聊天框实现的,并且这里生成的注释可以选择是英文还是中文。

5、修复代码

选中代码,然后聊天框中输入/,选择/fixbug回车

我故意代码写错,让它修复下代码,提供了对比视图,左边是修改后的代码,右边是原始代码,可惜修复得不对,这方面还有待优化。

四、优缺点

优点:

1)插件可免费使用

2)国内可直接访问

3)模型代码开源

4)支持多种语言

5)支持多种编辑器

6)支持多种操作系统

7)功能齐全,包含代码补全、代码生成、代码翻译、代码注释、单元测试、代码解释等常见工作

场景

缺点:

1)复杂代码支持不佳

  想学习更多AI技能,比如说利用AI提高生产力,或者做一些副业都可以联系我,入局AI 共同成长。关注公众号发送【ChatGPT资料】领取ChatGPT全套资料、提示词。

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

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

相关文章

入门设计者不容错过!5款网页原型设计工具推荐!

即时设计 即时设计是一种支持团队合作的原型设计工具,不限于设备和人群的使用,浏览器可以打开和使用。在即时设计中,您可以从0到1创建一个Web页面原型,具有钢笔、矩形、矢量编辑、轮廓、文本、色彩填充等设计功能,足以…

鸿蒙原生应用/元服务实战-AGC团队账户

多人及内外结合去开发运营鸿蒙原生应用元服务时,需要用到团队账户,AGC提供了强大的团队角色与权限分工能力。 团队帐号是开发者联盟为实名开发者提供的多个成员帐号登录与权限管理服务。当前团队帐号支持成员参与应用市场(付费推广、应用内付…

openGauss:准备知识1【IP地址/SSH协议/PuTTY安装和使用】

最近研究在openEuler 22.03 LTS上使用openGauss数据库。如果想要远端访问服务器,那么就先要了解IP地址、SSH协议等内容。 IP代表“Internet Protocol”,是一种网络协议,它定义了计算机在网络上的地址和数据传输方式。简言之,可以…

Unity XR 设置VR设备手柄按键按下事件

一、Unity设置 1、导入XR Interaction Toolkit插件,导入示例资源(如下图)。 2、设置新版XR输入事件 ①打开XRI Default Input Action 面板。 ②设置左手柄上的按键就点击Action Maps 列表下的 XRI LeftHand Interaction选项,设置…

基于HFSS的微带线特性阻抗仿真-与基于FDTD的计算电磁学方法对比(Matlab)

基于HFSS的微带线特性阻抗仿真-与基于FDTD的计算电磁学方法对比(Matlab) 工程下载: HFSS的微带线特性阻抗仿真工程文件(注意版本:HFSS2023R2): https://download.csdn.net/download/weixin_445…

npm pnpm yarn 报错或常见问题处理集锦

各种卡死,报错问题处理汇总 1. npm 安装 卡死了怎么办,npm # 切换源 npm config set registry https://registry.npmmirror.com # 查看源 npm config get registry2. pnpm安装 卡死了怎么办 方法1:切换源 npx pnpm config set registry h…

从QObject类及非QObject类实现多继承,需把QObject放在继承链最前面

在开发中,有时需要实现多继承,如下定义了一个抽象类作为接口: // 接收CAN数据接口类#ifndef _RECVCANDATA_INTERFACE_H #define _RECVCANDATA_INTERFACE_H#include"cansocketlinux.h" class CRecvCanDataInterface {public: // vi…

C++ 设计模式之备忘录模式

【声明】本题目来源于卡码网(题目页面 (kamacoder.com)) 【提示:如果不想看文字介绍,可以直接跳转到C编码部分】 【设计模式大纲】 【简介】 -- 什么是备忘录模式 (第17种模式) 备忘录模式(Meme…

KubeSphere 核心实战之一【在kubesphere平台上部署mysql】(实操篇 1/4)

文章目录 1、登录kubesphere平台2、kubesphere部署应用分析2.1、工作负载2.2、服务2.3、应用路由2.4、任务2.5、存储与配置2.6、部署应用三要素 3、部署mysql3.1、mysql容器启动实例3.2、mysql部署分析3.3、创建mysql的配置3.4、创建mysql的数据卷pvc3.5、创建mysql工作负载3.6…

力扣第236题——二叉树的最近公共祖先 (C语言题解)

题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以…

C#MQTT编程07--MQTT服务器和客户端(wpf版)

1、前言 上篇完成了winform版的mqtt服务器和客户端,实现了订阅和发布,效果666,长这样 这节要做的wpf版,长这样,效果也是帅BBBB帅,wpf技术是cs程序软件的福音。 wpf的基础知识和案例项目可以看我的另一个专…

定义域【高数笔记】

【定义域】 1,{知识点} 对于一个函数,f(x),"f"是起到两个作用,第一,是对自变量的范围的约束,第二,是对运算的约束,同一个"f" 就有同一个约束效果 2,…

TPU编程竞赛系列|第八届集创赛“算能杯“报名开启!

近日,第八届全国大学生集成电路创新创业大赛正式开幕,"算能杯"以 基于TPU处理器的边缘计算系统设计 为赛题,围绕算能提供的多款TPU硬件,展开软硬件协同设计,创新开发算法及探索新兴应用。我们诚邀全国高校的…

表的增删改查 进阶(二)

🎥 个人主页:Dikz12🔥个人专栏:MySql📕格言:那些在暗处执拗生长的花,终有一日会馥郁传香欢迎大家👍点赞✍评论⭐收藏 目录 3.新增 4.查询 聚合查询 聚合函数 GROUP BY子句 HA…

php反序列化之pop链构造(基于重庆橙子科技靶场)

常见魔术方法的触发 __construct() //创建类对象时调用 __destruct() //对象被销毁时触发 __call() //在对象中调用不可访问的方法时触发 __callStatic() //在静态方式中调用不可访问的方法时触发 __get() //调用类中不存在变量时触发(找有连续箭头的…

Git学习笔记(第3章):Git常用命令

目录 3.1 设置用户签名 3.2 初始化本地库 3.3 查看本地库状态 3.4 添加暂存区 3.5 提交本地库 3.6 历史版本 3.7 修改文件 3.8 版本穿梭 小结 命令 作用 git config --global user.name 用户名 设置用户签名 git config --global user.email 邮箱 设置用户签名 …

机器学习顶会ICLR 2024录用论文合集,包含时间序列、图大模型、agent等热门主题

朋友们,ICLR 2024这周放榜了!据统计,本届会议共收到了7262篇论文,整体接收率约为31%,与去年(31.8%)基本持平。其中Spotlight论文比例为5%,Oral论文比例为1.2%。 不知道各位看完有什…

排序链表(LeetCode 148)

文章目录 1.问题描述2.难度等级3.热门指数4.解题思路参考文献 1.问题描述 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 示例 1: 输入:head [4,2,1,3] 输出:[1,2,3,4]示例 2: 输入&#xff…

经典计算机网络面试题

1.说说HTTP常用的状态码及其含义? 状态码 类别 1xx 信息性状态码 2xx 成功状态码 3xx 重定向状态码 4xx 客户端错误状态码 5xx 服务端错误状态码 日常开发中的状态码: 状态码 含义 101 切换请求协议 200 请求成功 301 永久性重定向&…

网络:FTP

1. FTP 文件传输协议,FTP是用来传输文件的协议。使用FTP实现远程文件传输的同时,还可以保证数据传输的可靠性和高效性。 2. 特点 明文传输。 作用:可以从服务器上下载文件,或将本地文件上传到服务器。 3. FTP原理 FTP有控制层面…