vscode python 自动补全_利用CodeBERT,这个VS Code扩展可以自动生成Python文档字符串...

机器之心报道

编辑:魔王

该扩展利用可处理编程语言和自然语言的预训练模型 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(代码到自然语言)微调任务。该扩展的推断基准如下所示:

471daa2607e3744ccc70ca3a0be7fe54.png

特性这款 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。

a5b2fc8c1fd59880abbeb0378d76163f.gif

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

Amazon SageMaker 1000元大礼包

ML训练成本降90%,被全球上万家公司使用,Amazon SageMaker是全托管机器学习平台,支持绝大多数机器学习框架与算法,并且用 IDE 写代码、可视化、Debug一气呵成。现在,我们准备了1000元的免费额度,开发者可以亲自上手体验,让开发高质量模型变得更加轻松。

0ed26e3cb7c11833ffbb113d575f13b2.png

© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/311731.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[蓝桥杯2016初赛]报纸页数-生活常识+思维

题目描述 X星球日报和我们地球的城市早报是一样的,都是一些单独的纸张叠在一起而已。每张纸印有4版。 比如,某张报纸包含的4页是:5,6,11,12,可以确定它应该是最上边的第2张报纸。 我们在太空中捡到了一张X星球的报纸,…

great English sentence:

great English sentence: Therefore,everyone needs to find their extra ——their unique value contribution that make them stand out in whatever is their field of emploment. 因此,每个人必须去找到独特点,这个独特点就是他们唯一的价值创造的…

2020 年 5 大 DevOps 趋势

由于高效率和较快的部署能力,DevOps 正在一步步地塑造着软件世界,并进入主流领域。而随着 DevOps 逐步成熟,它也将继续改变全球的 IT 和数字管理。为了促进各方更加了解 DevOps,并为即将到来的一切做好准备,一位名为 G…

datagridview实时更新数据_旭诺云盒|智能办公新趋势进出口数据自动提取,通关状态实时更新...

春节期间,很多公司同事都被滞留在老家无法返回公司上班,为了保证公司业务正常运转,同事之间依靠邮件、微信、QQ等工具进行文件和数据的传递,增加了很多数据整理时间。且电子口岸、单一窗口这些进出口企业频繁使用的平台&#xff0…

排名前15位的Kubernetes监控和安全工具

Kubernetes推动了竞争力的提升。如今,作为一项成熟的技术,全球各地的企业都在迅速采用基于微服务的,容器驱动的方法来交付软件。Kubernetes是行业标准。行业领导者正在帮助它如雨后春笋般发展,基于Kubernetes核心开发综合应用程序…

word List 31

word List 31 如果存在什么问题,欢迎批评指正!谢谢!

什么是python语言的动态类型机制_理解Python的Dynamic typing

Python的Dynamic typing有些类似于C语言的指针,在C中,一个变量可以指向任何地址空间,在Python中,一个变量也可以指向任何type的数据对象。变量的指向可以在程序运行过程中变化,这就是我理解的Dynamic typing。 Python是…

Asp.Net Core IdentityServer4 管理面板集成

前言IdentityServer4(以下简称 Id4) 是 Asp.Net Core 中一个非常流行的 OpenId Connect 和 OAuth 2.0 框架,可以轻松集成到 Asp.Net Core 应用中,并且与 Asp.Net Core Identity 也可以轻松集成。博客园也有大佬发布了很多关于 Id4…

数据结构---递归实现十进制装换为任意进制

数据结构—递归实现十进制装换为任意进制 代码&#xff1a; #include <stdio.h> #include <stdlib.h> #include"stack.h" stack Stack; void toAnyDigit(int n, int d) {//十进制转化为d进制if (n 0) {//递归结束的条件return;}int temp n % d;push(…

c++ string 删除字符_字符串操作的全面总结(附完整代码)

字符串操作看似简单&#xff0c;其实非常重要&#xff0c;不注意的话&#xff0c;经常出现代码运行结果和自己想要的不一致&#xff0c;甚至崩溃。本文总结了一些构建string对象方法、修改string对象的方法、string类型的操作函数、string类型的查找、string对象的比较。1 构建…

给Hangfire的webjob增加callback和动态判断返回结果功能设计

背景介绍通常业务中需要用到定时执行功能&#xff0c;我用hangfire搭建了一个调度服务&#xff0c;这个调度服务是独立于业务逻辑的&#xff0c;具体可以参考文章&#xff1a;https://github.com/yuzd/Hangfire.HttpJob/wiki也就是说只要我有了这个调度服务后&#xff0c;只要提…

C++实现双向链表

#include <iostream> using namespace std; typedef int ElemType;typedef struct DuLNode {//节点的创建ElemType data;struct DuLNode *prior, *next; } DuLNode, *DuLinkList;bool InitList(DuLinkList &L) {//初始化L new DuLNode;if (L NULL) {cout << …

word List32

word List32 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

spring aop实例讲解_Spring框架核心知识点

文章内容输出来源&#xff1a;拉勾教育Java高薪训练营前言&#xff1a;由于工作需要提升自身技术能力&#xff0c;在各方比较下&#xff0c;报名了拉勾教育的java高薪训练营&#xff0c;目前已经学了半个月啦&#xff0c;来说说自身学习的感受吧&#xff1a;课程内容有广度更有…

word List 33

word List 33 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

深入理解ASP.NET Core依赖注入

概述ASP.NET Core可以说是处处皆注入&#xff0c;本文从基础角度理解一下原生DI容器&#xff0c;及介绍下怎么使用并且如何替换官方提供的默认依赖注入容器。什么是依赖注入百度百科中对于依赖注入的定义&#xff1a;控制反转&#xff08;Inversion of Control&#xff0c;缩写…

word List 34

word List 34 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

redis api 中文文档_我的Redis学习资料库

最近经常有人问我&#xff0c;我这边学习Redis都有哪些资料&#xff0c;能不能发他们一下。作为一个习惯”慢慢啃”技术学习的人&#xff0c;我确实积累了大量资料&#xff0c;这里可以介绍给大家。注明&#xff1a;本文提供的书籍、视频、源码、文档等&#xff0c;都是非盈利性…

前后端分离架构一直没机会实战?1周完成Vue+Core WebApi移动商城实战(含源码)!...

疫情让企业受到重创&#xff01;就业形势更加严峻&#xff01;前后端分离架构成了当下最高频的招聘需求还没实战过前后端分离&#xff1f;花3分钟阅读本文&#xff0c;带你全面了解前后端分离&#xff0c;轻松面试拿高薪&#xff01;Web发展至今技术非常成熟&#xff0c;主流有…

算法---宝藏最优选择问题

贪心算法—宝藏最优选择问题 原理参考趣学算法 代码&#xff1a; #include"quickSort1.h" 快速排序代码 int quickSort1(int a[], int l, int h) {//快速排序int i l, j h, p a[l];while (i < j) {while (i<j&&a[j]>p) {//从右往左遍历查找比…