Codeium是啥玩意?

简单来说,Codeium是一款个人用户免费AI辅助编程工具,其三大主要功能是代码补全聊天搜索,其受众是广大的developers,以及爱问问题的好奇心宝宝(后面会提到)。目前Codeium已经支持超过70种编程语言以及40多种编辑器。

在这里插入图片描述
在VS中也是能轻松找到Codeium,但由于众所周知的原因,目前还不能直接在VS中使用该插件。
在这里插入图片描述
但好在Codeium支持网页版试用部分功能,可以在官网link找到试用入口。

为啥是它?

其实目前已有不少的AI编程助手(如Github Copilot、Tabnine、Replit Ghostwriter…),那么Codeium有哪些优势呢?在官网上,Codeium团队已经给出了答案,其分别从Features and price、Latency和Suggestion quality这三个角度进行评估,并最终得出综合得分。

Features & Price

在这里插入图片描述
在这里插入图片描述
其实对于个人用户来说,我并不关心它会不会拿我的代码去训练模型(当然对于企业用户这是需要重点考虑的),只要这款工具支持我喜欢的语言和IDE,我就可以将它加入候选集,如果它还是免费的,那它真的太香了!(不是Copilot用不起,而是白嫖更有性价比)此外,Codeium独特的Chat功能也为其增色不少。

Latency

在这里插入图片描述
在代码生成延迟这项,所有的工具都在合理的延迟内给出了建议,而实际的体验可能更多地会受到代码生成质量的影响。

Quality

在这里插入图片描述
为了减少偏见,该项实验从其它三家产品的主页上挑选了代码生成的例子,最终结果显示Copilot和Codeium算是旗鼓相当的对手。

Overall Assessment

在这里插入图片描述
从整体来看,Codeium由于价格优势明显,在其他方面无明显劣势的情况下轻松取胜。当然我们也可以认为Features and price、Latency和Suggestion quality这三个算是Codeium的优势指标,在这样的实验设定下可能是不公平的。

使用感受如何?

由于无法安装插件的缘故,我选择了网页支持的代码补全和Chat功能进行分享。

Autocomplete

目前网页上只支持这五种语言的体验。
在这里插入图片描述
首先我尝试让它用Python写一个二分查找的函数。
我只需要打出def binary,它就已经预判到了我的需求,此时如果按下Tab键,那么就会采纳这段代码。
在这里插入图片描述
而如果这段提示代码不是我们想要的(比如,二分查找的递归写法),那么我们可以使用Alt+ [Alt+ ] 键来在不同的补全建议中进行筛选。如果对所有的建议都不满意,那么我们可以选择给出更明确的需求(如完整函数名和参数),抑或挑选一个和期望gap最小的版本进行再加工。
在这里插入图片描述
但更让人惊讶的是,在我接受了这个函数后,我只是简单键入了一个p,它也能明白我是想要测试这个函数的功能。(Amazing啊!看来测试的思想已经深入emm机器之心)
在这里插入图片描述
接着我又想看看它面向对象了解的如何。这回我选择用注释的方式告诉它我的需求。
在这里插入图片描述
同样地,我并不需要键入完整的话,它就识别出,我想要定义一个people类,以及people最常见的属性是name和age这样的信息。一旦我接受了这个建议,接下来它就会顺理成章地生成一个有模有样的people类,这的确大大加快了开发速度。
在这里插入图片描述
最后我还想考考它测试的知识。虽然在我几经尝试后生成的代码仍有瑕疵,但已经可以看出3A原则有被使用到。
在这里插入图片描述
从我个人使用体验而言,给出一个好的注释作为提示对于代码自动生成至关重要,而不一样的关键词生成的效果可能也会略有不同(如return、define、give…),可能将来如何给出更平滑的提示反而会比写代码本身更加具有技术性。

Chat

如果熟悉ChatGPT的用户,肯定不会对这个功能陌生,因为它可以算是ChatGPT的平替。不知道有多少人和我有过一样的苦恼,觉得注册海外手机号是件很麻烦的事,更不用说还得充值上几dollar。而Codeium就免去了这样的烦恼,直接网页就可以使用,甚至都不需要注册账号登录账号。官网的介绍里Chat主要有这样几种用法:生成代码、解释代码、重构以及将代码用另一种语言改写。
在这里插入图片描述
在实际使用中,我并不会去刻意区分这几种功能,而是遇到问题就问,比如我对XPath的用法不了解:
在这里插入图片描述
它会给出介绍以及具体的例子帮助理解。同时,我还可以针对该问题继续提问:
在这里插入图片描述
到这里差不多我的问题就能得到解决了,如果不能,还可以继续多提问几轮。当然,Chat功能并不仅仅局限于Coding领域,你也可以问它别的问题,比如:
在这里插入图片描述
Chat是一个很实用的功能,但在日常使用中我也发现了一些问题:

  1. 生成的回复并不完全可靠,需要进行甄别。例如下面这个例子:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    它几乎在一本正经地胡说八道,有时候给出的结论是前后矛盾的,如果你回复不认可,那么它会立刻修改回复。倘若你继续发难,那么它仍会继续为了迎合而修改答案。这时候不禁感叹一句,人和机器的差异就在于,人不是一味迎合而不加思考的!
  2. 生成的代码回复长度受限,如果代码太长将生成不完整的代码片段。
  3. 网页上没有滚动条,对话长了以后不太方便。
  4. 目前只支持文本输入。

Search

在这里插入图片描述
简单理解一下,Search功能可以让用户以自然语言的方式来搜索代码库,如类、函数、变量等等。

总结一下

由于只使用了网页版的Codeium,功能上是受限的,但由于其免费和使用方便,整体的体验感还不错(毕竟免费的还要啥自行车啊)在日常中使用最多的Chat功能可以看成ChatGPT的平替,会提需求+注意甄别,倒也算是developer的一件称手的兵器。

Logo

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

更多推荐