用 CodeGeeX 替代 GitHub Copilot
2022年6月,GitHub Copilot 正式向大众发布。全世界的开发者都欣喜若狂,他们从测试版发行以来,就一直等待着这一天,事实证明这个等待是值得的。 Copilot 实现了帮助开发者减少工作的同时,加速他们编码过程的这一目标。近乎完美,除了一点—— Copilot 收费。
虽然付费对于绝大多数开发者都不是问题,但依然导致了许多人去寻找可以代替 Copilot 的产品。因此 CodeGeeX 来了,本文将深入 CodeGeeX 并探索他为什么会成为 Copilot 的有效替代品。
什么是 CodeGeeX
" CodeGeeX 是一个用130亿预训练参数,在超过20种编程语言上,训练的大规模多语言代码生成模型"。简单来说,CodeGeeX是一个用人工智能驱动的,帮助你快速编写代码的代码生成工具。
CodeGeeX 通过你的注释就可以帮你生成适合的代码,或者基于你前面的代码给出下一行的建议。在性能和易用性方面,CodeGeeX 和 GitHub Copilot 相当。它甚至具有一些独特的功能,使其成为一个绝佳的替代选择,我们将在下面一一介绍。
CodeGeeX 代码生成工具
CodeGeeX 代码生成工具,如今已经成为开发者群体中,口口相传的最神奇的事情之一。用户仅仅通过输入注释来描述他们想要的功能,CodeGeeX就可以通过读取注释,按行输出用户想要的代码。
CodeGeeX生成的代码也是可编辑的,如果你想要进行一些特定的修改,就可以直接进行编辑。代码生成工具同时还有候选选项,允许用户针对同样的行级代码去生成多个版本的候选代码,而你可以选择一个你想要的。就像下图所示:
下面是一个例子:我们想要用代码生成器创建一个JS的猜谜游戏,那么所有我们要做的仅仅是输入以下的注释:
// Create a number guessing game to generate a number between the range of 1 and
2.
// The game should prompt users for their username.
// Set range as function parameter and prompt the player to predict the generated
number between the given range.
// At a correct guess, the player a point and move them to stage 2 by increasing
the range limit value by 1
// At a wrong guess, the player loses a point, and the game ends
紧接着,我们要写第一个函数名或者任何你想要的函数名,生成器就会完成剩下的。
下面就是 CodeGeeX 用我们输入的注释生成的代码:
function ilegal_number(range) {
range = range || 2;
var username = prompt('What is your name?');
for (var i = 1; i <= range; i++) {
if (i === range) {
return i;
}
if (i > range) {
alert('Your number must be lower than'+ range);
break;
}
var guess = prompt('Guess'+ i + ': ');
if (guess === null) {
alert('You should input the number');
break;
}
if (guess === 'exit') {
alert('Thanks for playing!');
return null;
}
if (guess === i) {
alert('You guessed it!');
alert('You scored:'+ (i * 2));
break;
}
}
alert('You tried too many times, try again!');
alert('You scored:'+ (i * 2));
return null;
}
CodeGeeX 代码翻译工具
CodeGeeX不仅可以完整的生成代码,他还是一个优秀的代码翻译工具。这对于每一个开发者来说都是很棒的体验。
如字面意思,CodeGeeX翻译你已有的编程语言代码,成为另一个你选择的编程语言代码。目前代码翻译功能支持八种最流行的编程语言:
Python
Go
Java
JavaScript
C++
C#
PHP
TypeScript
使用过程非常简单:使用CodeGeeX代码翻译工具,选择已有代码的编程语言,在输入框写入或粘贴代码。然后选择你想要翻译成为的编程语言,最后点击:翻译。
为了测试,我们将前文CodeGeeX生成的猜谜游戏代码输入进来,并将其从 JavaScript 转成 C#
这是生成的代码:
using System;
class IlegalNumber {
static int ilegal_number(int range) {
range = range == 0? 2 : range;
string username = Console.ReadLine("What is your name?");
int i;
for (i = 1; i <= range; i++) {
if (i == range) {
return i;
}
if (i > range) {
Console.WriteLine("Your number must be lower than " + range);
break;
}
string guess = Console.ReadLine("Guess " + i + ": ");
if (guess == null) {
Console.WriteLine("You should input the number");
break;
}
if (guess == "exit") {
Console.WriteLine("Thanks for playing!");
return null;
}
if (guess == i.ToString()) {
Console.WriteLine("You guessed it!");
Console.WriteLine("You scored: " + (i * 2));
break;
}
}
Console.WriteLine("You tried too many times, try again!");
Console.WriteLine("You scored: " + (i * 2));
return null;
}
public static void Main() {
Console.WriteLine("Welcome " + username);
Console.WriteLine("1 - 2147483647");
Console.WriteLine(ilegal_number(0) == null? "exit" : ilegal_number(1));
}
}
如你所⻅, CodeGeeX 以高精度的形式,翻译了所有你的代码片段到另了一个语言。完美!
CodeGeeX vscode 插件
CodeGeeX在vscode中以插件的形式提供给所有开发者使用。最重要的是:免费,免费,免费给所有用户使用。而GitHub Copilot 目前是以月租10美元的订阅方式向开发者收费,社区多位开发者反应,申请Copilot账号审核周期长达3周以上,当下非常需要CodeGeeX即看即用的便捷性。
使用CodeGeeX 插件是不需要任何费用的,你所需的仅仅是进入VSCode插件商店进行下载就行。关注CodeGeeX微信公众号,还可获取Jetbrains IDEs插件的安装地址。
CodeGeex 的三种模式
1. 隐匿模式
此模式的工作方式与代码生成工具相同。它隐身查看代码或代码注释,为你生成下一行代码。最好的部分是它不会干扰你的代码过程,仅在你上次键入以来已有3秒钟停顿的情况下,显示建议代码,而且建议代码以占位符的形式显示,在您按 Tab 键时才实现。这里有个例子:
上述图片中,头文件
<stdio.h>
是 CodeGeeX 生产的。但在你按下 Tab 键前它仅仅以占位符的形式存在,此外, CodeGeeX 插件仅一次生成一行,更加便于编辑。
2. 交互模式
CodeGeeX 插件的交互式模式也具有代码生成的元素。载入该模式仅需要按下 Control+Enter ,你的 vscode 会分成两个版面。一个版面编写正常代码,另一个版面显示建议的代码片段。
3. 提示词 (Prompt) 模式
提示词 (Prompt) 模式是 CodeGeeX 里更高级的模式。他会给你提供代码解释,代码总结,甚至生成特定⻛格代码的功能。
使用提示词 (Prompt) 模式,你需要高亮你要解释的代码,然后按下 ALT+T 触发提示词 (Prompt) 模式。如果你选择解释,他会按行逐级解释你高亮的代码:
如果你想获取更多的关于 CodeGeeX vscode 插件的信息,欢迎关注点赞评论转发本微信公众号。
鉴于 CodeGeeX 具有的功能,再加上它是免费的,社区众多开发者一致认为 CodeGeeX 确实已经成为 GitHub Copilot 的合适替代品。它易于使用,多项支持,并且 AI 引擎足够聪明,可以作为你编码的助手。如果你仍在考虑是否使用它,可以尝试一下,真的香!
更多推荐
所有评论(0)