利用CodeBERT,这个VS Code扩展可以自动生成Python文档字符串

2020-11-25 21:04 741 阅读 ID:145
机器之心
机器之心
该扩展利用可处理编程语言和自然语言的预训练模型 CodeBERT,实现快速生成 Python 文档字符串的功能。

机器之心报道,编辑:魔王。

Visual Studio Code(简称 VS Code)是一个由微软开发,同时支持 Windows、 Linux 和 macOS 等操作系统的免费代码编辑器,它支持测试,并内置了 Git 版本控制功能,同时也具有开发环境功能,例如代码补全、代码片段和代码重构等。VS Code 是程序员常用的代码编辑器之一,是一个可在所有平台上使用的开源、可扩展和轻量级的编辑器。这些品质使微软的 VS Code 大受欢迎,并成为 Python 开发的绝佳平台。

此外,VS Code 还拥有大量扩展,可以帮助提高开发效率、提升开发幸福感。今天,我们要介绍的就是一款可以生成 Python 文档字符串的 VS Code 扩展。

  • GitHub 地址:https://github.com/graykode/ai-docstring
  • 扩展地址:https://marketplace.visualstudio.com/items?itemName=graykode.ai-docstring&ssr=false

该扩展利用 AI (NLP) 技术,快速生成 Python 函数的文档字符串(docstring)。原本 Python 函数的描述必须由用户编写,而使用这款扩展之后,AI 可以查看代码并进行总结。

具体而言,该扩展使用了微软等提出的预训练模型 CodeBERT,该模型可以处理双模态数据:自然语言和编程语言。

在训练过程中,该扩展使用 GitHub 团队创建的 CodeSearchNet 语料库作为训练数据,并使用 CodeBERT 中的 Code2NL(代码到自然语言)微调任务。该扩展的推断基准如下所示:

特性

这款 VS Code 扩展具备以下特性:

  • AI 快速生成文档字符串;
  • 可以选择多种不同类型的文档字符串格式;
  • 通过 pep484 类型提示、默认值和变量名,推断参数类型;
  • 支持 args、kwargs、decorators、errors 和 parameter 类型。

其中支持的文档字符串格式包括:Google(默认)、docBlockr、Numpy、Sphinx,项目主页显示这款扩展还即将支持 PEP0257。

如何使用

这款 VS Code 扩展的使用较为简单。用户只需从容器中运行模型推断服务器,并在 VS Code 中安装扩展,即可使用。

具体步骤如下所示:

1. 从容器中运行模型推断服务器

  • 如果已有 GPU 机器:在安装 nvidia-docker 后,运行 docker run -it -d --gpus 0 -p 5000:5000 graykode/ai-docstring:gpu;
  • 如果只有 CPU:利用 Google Colab 和 ngrok 运行 flask 服务器(推荐)或者使用 docker cpu 镜像:docker run -it -d -p 5000:5000 graykode/ai-docstring:cpu。

2. 在 VS Code 中安装扩展并使用

光标必须在定义下方,以生成完全自动填充的文档字符串。

  • 使用三引号("""或''')打开文档字符串,然后按回车键;
  • 键盘快捷键:ctrl+shift+2,Mac 电脑的快捷键是 cmd+shift+2;
  • 命令:Generate Docstring;
  • 右击菜单:Generate Docstring。

项目作者

该项目的作者是来自韩国庆熙大学的计算机工程本科生 Tae-Hwan Jung。他对开源文化感兴趣,认为一个好的项目可以衍生新的行业和技术。

个人主页:https://libraries.io/github/graykode

免责声明:作者保留权利,不代表本站立场。如想了解更多和作者有关的信息可以查看页面右侧作者信息卡片。
反馈
to-top--btn