赞
踩
CodeGeeX是一个具有130亿参数的多编程语言代码生成预训练模型,使用超过二十种编程语言训练得到。基于CodeGeeX开发的插件可以实现通过描述生成代码、补全代码、代码翻译等一系列功能。CodeGeeX同样提供可以定制的提示模式(Prompt Mode),构建专属的编程助手。Happy Coding!
VS Code插件市场搜索"codegeex"即可免费使用(需要VS Code版本不低于1.68.0),更多关于CodeGeeX信息请见我们的主页 and GitHub仓库。
如使用过程中遇到问题或有任何改进意见,欢迎发送邮件到codegeex@aminer.cn反馈!
需要保证VS Code版本 >= 1.68.0。安装插件并全局激活CodeGeeX,有以下四种使用模式:
Tab
即可插入生成结果。Ctrl+Enter
激活交互模式,CodeGeeX将生成X
个候选,并显示在右侧窗口中(X
数量可以在设置的Candidate Num
中修改)。 点击候选代码上方的use code
即可插入。Ctrl+Alt+T
激活翻译模式,CodeGeeX会把该代码翻译成匹配您当前编辑器语言的代码。点击翻译结果上方的use code
插入。您还可以在设置中选择您希望插入的时候如何处理被翻译的代码,您可以选择注释它们或者覆盖它们。Alt/Option+t
触发提示模式,会显示预定义模板列表,选择其中一个模板,即可将代码插入到模板中进行生成。 这个模式高度自定义,可以在设置中 Prompt Templates
修改或添加模板内容,为模型加入额外的提示。我们高度尊重用户代码的隐私,代码仅用来辅助编程。在您第一次使用时,我们会询问您是否同意将生成的代码用于研究用途,帮助CodeGeeX变得更好(该选项默认关闭)。
以下是CodeGeeX几种模式的详细用法:
在该模式中,CodeGeeX将在您停止输入时,从光标处开始生成(右下角CodeGeeX图标转圈表示正在生成)。生成完毕之后会以灰色显示,按Tab
即可插入生成结果。 在生成多个候选的情况下,可以使用Alt/Option+[
或 ]
在几个候选间进行切换。如果你对现有建议不满意,可以使用Alt/Option+N
去获得新的候选。可以在设置中改变Candidate Num
(增加个数会导致生成速度相对变慢)。注意:生成总是从当前光标位置开始,如果您在生成结束前移动光标位置,可能会导致一些bugs。我们正在努力使生成速度变得更快以提升用户体验。
在该模式中,按Ctrl+Enter
激活交互模式,CodeGeeX将生成X
个候选,并显示在右侧窗口中(X
数量可以在设置的Candidate Num
中修改)。 点击候选代码上方的use code
即可插入结果到为当前光标位置。
在当前的语言的文本编辑器中输入或者粘贴其他语言的代码,您用鼠标选择这些代码,然后按下Ctrl+Alt+T
激活翻译模式,您根据提示选择该代码的语言,然后CodeGeeX会帮您把该代码翻译成匹配您当前编辑器语言的代码。点击翻译结果上方的use code
即可插入。您还可以在设置中选择您希望插入的时候如何处理被翻译的代码,您可以选择注释它们或者覆盖它们。
在该模式中,您可以在输入中添加额外的提示来实现一些有趣的功能,包括并不限于代码解释、概括、以特定风格生成等。该模式的原理是利用了CodeGeeX强大的少样本生成能力。当您在输入中提供一些例子时,CodeGeeX会模仿这些例子并实现相应的功能。比如,您可以自定义模板中提供一段逐行解释代码的例子。选择您想要解释的代码,按Alt/Option+t
触发提示模式,选择您写好的模板(如explanation
),CodeGeeX就会解释您输入的代码。以下我们会详细介绍如何制作模板。
上述例子中的模板如下图所示,由[示例代码]
, <INPUT>
, [带解释的示例代码]
and [输出函数头]
。<INPUT>
表示您选中的代码将会插入的位置。 <INPUT0:1>
这一句用来保证模型解释的是同一个函数。当使用提示模式时,CodeGeeX会将您选择的代码(插入到部分)和模板代码相结合,一起作为模型的输入。
- # language: Python
-
- def sum_squares(lst):
- sum = 0
- for i in range(len(lst)):
- if i % 3 == 0:
- lst[i] = lst[i]**2
- elif i % 4 == 0:
- lst[i] = lst[i]**3
- sum += lst[i]
- return sum
-
- <INPUT>
-
- # Explain the code line by line
- def sum_squares(lst):
- # initialize sum
- sum = 0
- # loop through the list
- for i in range(len(lst)):
- # if the index is a multiple of 3
- if i % 3 == 0:
- # square the entry
- lst[i] = lst[i]**2
- # if the index is a multiple of 4
- elif i % 4 == 0:
- # cube the entry
- lst[i] = lst[i]**3
- # add the entry to the sum
- sum += lst[i]
- # return the sum
- return sum
-
- # Explain the code line by line
- <INPUT:0,1>
以下是另一个Python文档字符串生成的例子,CodeGeeX在您写新函数时会模仿该注释的格式:
- def add_binary(a, b):
- '''
- Returns the sum of two decimal numbers in binary digits.
- Parameters:
- a (int): A decimal integer
- b (int): Another decimal integer
- Returns:
- binary_sum (str): Binary string of the sum of a and b
- '''
- binary_sum = bin(a+b)[2:]
- return binary_sum
-
- <INPUT>
模板文件是高度自定义化的,您可以将自定义模板添加到插件设置中的Prompt Templates
中。 key
表示模板的名字, value
是模板文件的路径(可以是您电脑上的任一路径,.txt
, .py
, .h
, 等格式文件均可)。通过该功能,您可以让CodeGeeX生成具有特定风格或功能的代码,快尝试定义自己的专属模板吧!
目前CodeGeeX,我们有以下几个开放形式:
1)代码、模型,完全开源开放:https://models.aminer.cn/codegeex
2)在线演示 demo:
代码生成:https://models.aminer.cn/codegeex/playground
代码翻译:https://models.aminer.cn/codegeex/codeTranslator
3)提供VS code插件:
https://marketplace.visualstudio.com/items?itemName=aminer.codegeex
其他平台插件,如果感兴趣,我们可以一起合作来开发
4)提供 API 接口:
https://tianqi.aminer.cn/open/document/code_ref/codegeex_generation
https://codegeex.cn/zh-CN/invitation/cecf211cd7074724a4285babf8dcb135
---------------------
作者:Leviash
来源:CSDN
原文:https://blog.csdn.net/qq_51588894/article/details/129271632
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。