CodeGeex全能的智能编程助手

大家好我是在看,记录普通人学习探索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全套资料、提示词。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【代码随想录08】232. 用栈实现队列 225. 用队列实现栈

目录 232. 用栈实现队列题目描述参考代码 225. 用队列实现栈题目描述参考代码 232. 用栈实现队列 题目描述 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类&#xff1a…

leetcode2312卖木头块

其实不难&#xff0c;主要是你得一眼看出来这个问题缩小规模然后就可以用DP来做了 using ll long long; class Solution { public:long long sellingWood(int m, int n, vector<vector<int>>& prices) {ll f[m10][n10];ll p[m10][n10];memset(p,0,sizeof p)…

JS封装本地缓存的设置,读取,移除,清空方法及使用示例

我封装了一个JS通用的缓存管理对象&#xff0c;可以提供缓存的设置&#xff0c;读取&#xff0c;移除&#xff0c;清空操作&#xff0c;使用也很方便&#xff0c;封装方法的代码在最下方。 Q: 为什么不直接用原生的缓存方法&#xff0c;要封装&#xff1f; A1:原生的缓存管理…

【随机化约束控制 解的概率_2024.01.19】

约束控制 //constraint_mode() constraint c {length inside {[1:32]};} p.c.constraint.mode(0);//0关闭&#xff0c;1打开&#xff0c;默认打开//rand_mode p.length.rand_mode(0);//随机进行关闭 p.length42;//randomiza()with{} assert(c.randmize()with{data<10;});//…

Python中HTTP代理的配置和使用

在Python中&#xff0c;HTTP代理是一种常用的技术&#xff0c;用于控制和修改HTTP请求和响应。通过使用HTTP代理&#xff0c;我们可以更好地控制网络请求的行为&#xff0c;提高安全性、隐私性和效率。下面我们将详细介绍如何在Python中配置和使用HTTP代理。 一、配置HTTP代理…

Linux编写简易shell

思路&#xff1a;​ ​ ​ 所以要写一个shell&#xff0c;需要循环以下过程:​ 获取命令行解析命令行建立一个子进程&#xff08;fork&#xff09;替换子进程&#xff08;execvp&#xff09;父进程等待子进程退出&#xff08;wait&#xff09; 实现代码&#xff1a;​ #inc…

Linux———sort命令总结详解(狠狠爱住)

目录 sort命令&#xff1a; 命令参数及描述&#xff1a; 示例&#xff1a; 使用-b参数&#xff0c;忽略行首空白字符&#xff0c;按照第一列进行排序&#xff1a; -d 选项是 sort 命令中一个非常有用的选项&#xff0c;它可以按照字典顺序进行排序&#xff0c;同时忽略非字…

UI开发布局-HarmonyOS应用UI开发布局

UI页面的构建不用再像Android开发过程中在.xml文件中书写&#xff0c;可直接在页面上使用声明式UI的方式按照布局进行排列&#xff0c;构建应用的页面。 如下代码使用Row、Column构建一个页面布局&#xff0c;在页面布局中添加组件Text、Button&#xff0c;共同构成页面&#…

sd-wan跨境专线ip是固定的吗?

SD-WAN&#xff08;软件定义广域网&#xff09;是一种网络技术&#xff0c;它可以通过集中的管理和控制来提供更好的网络性能和可靠性。跨境专线是指连接不同国家之间的网络连接。 固定IP是指在网络中分配给特定设备的永久性 IP 地址&#xff0c;与动态 IP&#xff08;每次连接…

python tkinter 最简洁的计算器按钮排列

代码如下&#xff0c;只要再加上按键绑定事件函数&#xff0c;计算器既可使用了。 import tkinter as tk from tkinter.ttk import Separator,Buttonif __name__ __main__:Buttons [[%,CE,C,←],[1/x,x,√x,],[7, 8, 9, x],[4, 5, 6, -],[1, 2, 3, ],[, 0, ., ]]root tk.T…

RK3568平台 LT9211转接芯片调试笔记

一.简介 龙讯LT9211是一个高性能转换器&#xff0c;支持MIPI LVDS TTL两两之间转换。 使用此款芯片大部分为MIPI与LVDS进行互相转换。 下图为LT9211的典型应用图&#xff1a; 二.LT9211原理图 三.车载显示器和摄像头系统 四.调试LT9211输出 MIPI数据 &#xff08;1&#xf…

红队打靶练习:NULLBYTE: 1

目录 信息收集 1、arp 2、nmap 3、nikto 4、whatweb 目录探测 1、dirsearch 2、gobuster WEB web信息收集 图片信息收集 hydra爆破 sql注入 闭合 爆库 爆表 爆列 爆字段 hashcat SSH登录 提权 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan…

Unity-场景

创建场景 创建新的场景后&#xff1a; 文件 -> 生成设置 -> Build中的场景 -> 将项目中需要使用的场景拖进去 SceneTest public class SceneTest : MonoBehaviour {// Start is called before the first frame updatevoid Start(){// 两个类&#xff1a; 场景类、场…

配置zabbix平台对数据库以及主从状态的监控

引言&#xff1a;明人不说暗话&#xff0c;今天分享下配置zabbix平台对数据库以及主从状态的监控 准备好zabbix监控平台&#xff08;zabbix-server端&#xff09;例10.12.153.235 db1客户端&#xff08;zabbix-agent&#xff09;例10.12.153.73 1.安装Zabbix存储库 # rpm -Uv…

策略路由与NQA联动示例

某公司网络使用SwitchA做汇聚层交换机&#xff0c;接入层交换机LSW做用户网关&#xff0c;LSW和SwitchA之间路由可达。汇聚层交换机SwitchA通过两条链路连接到两个核心交换机上&#xff0c;一条是高速链路&#xff0c;网关为10.1.20.1/24&#xff1b;另外一条是低速链路&#x…

算法 动态分析 及Java例题讲解

动态规划 动态规划&#xff08;英语&#xff1a;Dynamic programming&#xff0c;简称 DP&#xff09;&#xff0c;是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的&#xff0c;通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适…

「 网络安全常用术语解读 」杀链Kill Chain详解

1. 简介 早在2009年&#xff0c;Lockheed Martin公司就提出了杀链(Kill Chain)理论&#xff0c;现在也称之为攻击者杀链(Attacker Kill Chain)。杀链其实就是攻击者进行网络攻击时所采取的步骤。杀链模型包括7个步骤&#xff1a;1侦察 -> 2武器化 -> 3交付 -> 4利用 …

【Python】PyCharm设置控制台输出的行数限制

在使用PyCharm的时候&#xff0c;如果在控制台输出的信息过多室&#xff0c;控制台仅会保留一部分的输出信息。想要改变这个限制&#xff0c;设置方法如下&#xff1a; 进入到PyCharm的安装目录下&#xff0c;我的是C:\Develop\PyCharm202303\PyCharm 2023.3进入bin找到文件id…

鸿蒙开发(六)布局概述

迄今为止&#xff0c;我还没有正式提到布局的概念。但其实我之前的demo里面&#xff0c;已经默认使用到了一种布局&#xff0c;那就是线性布局&#xff08;Row、Column&#xff09;&#xff0c;这也是DevEco创建项目默认页面里面默认采用的布局。那么本篇&#xff0c;带着大家一…

【C语言】ipoib模块 - ipoib_send_rss函数

一、ipoib_send_rss函数定义 int ipoib_send_rss(struct net_device *dev, struct sk_buff *skb,struct ib_ah *address, u32 dqpn) {struct ipoib_dev_priv *priv ipoib_priv(dev);struct ipoib_tx_buf *tx_req;struct ipoib_send_ring *send_ring;u16 queue_index;int hlen…