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 引擎足够聪明,可以作为你编码的助手。如果你仍在考虑是否使用它,可以尝试一下,真的香!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐