GitHub Copilot 快速入门

news2025/1/21 18:52:56

GitHub Copilot 是 AI 结对程序员。 可以使用 GitHub Copilot 在编辑器中获取整行或整个函数的建议。

1. 简介

让我们首先了解一些关于 GitHub Copilot 的内容。 这是 GitHub 和 OpenAI 的合作成果。 Copilot 是一种基于人类程序员编写的数十亿行代码训练的语言模型。 ,Copilot 能够生成多种语言的计算机代码。 例如,你可以输入“编写一个函数来反转二叉搜索树”,它可以自动完成。 并且它与以下 IDE 兼容:

2. 为 Visual Studio Code 安装 GitHub Copilot 扩展

若要使用 GitHub Copilot,必须先安装 Visual Studio Code 扩展。

在 Visual Studio Code 市场中,转到 GitHub Copilot 扩展页,然后单击“安装”。

此时会显示一个弹出窗口,要求打开 Visual Studio Code。 单击“打开 Visual Studio Code”。

在 Visual Studio Code 的“扩展: GitHub Copilot”选项卡中,单击“安装”。

如果以前未在 GitHub 帐户中授权 Visual Studio Code,系统会提示你在 Visual Studio Code 中登录到 GitHub。

如果以前已在 GitHub 帐户中授权 Visual Studio Code,系统将会自动授权 GitHub Copilot。

在浏览器中,GitHub 将请求 GitHub Copilot 所需的权限。 若要批准这些权限,请单击“授权 Visual Studio Code”。

在 Visual Studio Code 的“Visual Studio Code”对话框中,若要确认身份验证,请单击“打开”。

GitHub Copilot 为多种语言和各种框架提供建议,但尤其适用于 Python、JavaScript、TypeScript、Ruby、Go、C# 和 C++。 以下示例使用的是 JavaScript,但其他语言的工作方式类似。

打开 Visual Studio Code。

在 Visual Studio Code 中,创建一个新的 JavaScript (*.js) 文件。 1. 在 JavaScript 文件中,键入以下函数标头。

```javascript{:copy}
function calculateDaysBetweenDates(begin, end) {
``` GitHub Copilot 将自动以灰色文本建议整个函数正文,如下所示。 具体的建议可能会有所不同。

要接受建议,请按 Tab。

3. 数据集概述

我们选择的数据集是从 UCL 机器学习存储库下载。 它包括根据墨西哥、秘鲁和哥伦比亚国家的个人的饮食习惯和身体状况估计肥胖水平的数据(Fabio 等人,2019 年)。

我发现使用 copilot 非常简单。 正如在下面看到的,每次输入内容或到下一行时,Copilot 都会开始生成灰色代码。 大部分时间,只需点击 Tab 或 Enter,就可以自动填充代码。

下面是使用 Copilot 导入数据集并快速查看的示例。 它可以帮助我们制作漂亮的图表。 输入注释:

## nobesity is the dependent variable
## check distribution of nobesity

点击tab,然后看着它生成其余部分:

Copilot 不仅拥有编程知识。 它还具有有关世界的一般知识。 在下面的这段代码中输入:

## calculating body index (BMI)

在代码中正确实现了 BMI 公式! 不仅如此,还可以使用 Copilot 的建议绘制分布图和热图。输入:

## plot all variables

## get corr

4. 协助非英语母语人士

GitHub Copilot不仅可以理解英语,还可以理解其他语言,这对于非英语母语的开发人员来说很有帮助,因为编程语言都基于美式英语。例如,CSS的属性color就是美式英语,因此对于母语为英式英语或加拿大英语的人(在这些英语中这个单词写作“colour”)来说,“color”是陌生的拼写方法。拼写错误或语法错误会导致程序出错,浪费很多时间。

在下图中,我用西班牙语写了一条注释,其中包含一个单词“importar”,翻译成英语是“import”。但GitHub Copilot很快就按照西班牙语完成了我的注释,并按照注释的描述导入了必要的库。

此外,GitHub Copilot还可以将英语单词翻译成其他语言。MilMikDev在推特上发了一则帖子,使用GitHub Copilot将一个包含了一系列单词“answer”、“question”和“date” 的数组翻译成各种语言。

5. 创建查找数据的字典

GitHub开发者关系副总裁Martin Woodward与我们分享了下面这个技巧。GitHub Copilot很擅长创建查找数据的字典。你可以试试看,通过一条注释让GitHub Copilot创建包含两个字母的 ISO 国家代码,它就会启动补齐国家名称。你只需要编写一条注释和前几行代码,GitHub Copilot就可以生成所需的结果。

6. 测试代码

在整个软件开发的生命周期中,编写测试是至关重要的一个步骤,但有时却很乏味。GitHub Copilot拥有出色的模式识别及模式补全(pattern completion)功能,因此可以加快编写单元测试、回归测试等。

有关如何使用GitHub Copilot进行测试的更多信息,请参见下列资源:

  • 使用GitHub Copilot实现自动化测试:https://applitools.com/blog/using-github-copilot-to-automate-tests/

  • 使用GitHub简化测试:https://github.com/blackgirlbytes

  • 利用 AI 和 GitHub Copilot 编写更好的测试:https://about.codecov.io/blog/writing-better-tests-with-ai-and-github-copilot/

7. 利用正则表达式匹配模式

GitHub Copilot可以帮助你更快地编写正则表达式。你只需编写一条注释或一个函数名,GitHub Copilot即可给出提示。

GitHub Copilot可以帮助你删除字符串中的空格。

8. 准备技术面试

我发现很多开发人员,包括我自己,都在利用GitHub Copilot来准备面试。

具体方法如下:

  • 首先,我会设法自己解决问题,不依赖GitHub Copilot的帮助。

  • 如果在解决问题的过程中卡壳或感到灰心丧气,我就会激活GitHub Copilot,并利用它来寻找更好的解决问题的思路。

  • 接着,我会删除 GitHub Copilot 生成的代码,禁用GitHub Copilot,然后根据新获得的信息,再次尝试寻找解决方案。

每当遇到挫折想放弃时,我就会通过这种方法坚持学习。即使没有导师或同伴指导我,我也不会放弃,因为我随时都可以获得新思路。GitHub Copilot就是我的数字导师。但是,请注意,不要在面试期间激活 GitHub Copilot(这是作弊)。

9. 发送推文

当然,你可以直接通过推特应用程序发送推文,但我更喜欢通过IDE发送推文。在最近的一次直播中,我需要演示在GitHub Copilot中使用Python调用Twitter API v2,不过我很少使用Python。但在我写了几条注释之后,GitHub Copilot就生成了我需要的代码,拯救了我!

10. 退出 Vim

刚接触 Vim 的开发人员经常遇到的一个问题是:如何退出Vim。如今 Visual Studio Code、JetBrains 和 Neovim都支持GitHub Copilot,因此你可以通过GitHub Copilot退出Vim。

11. 通过Copilot Labs浏览新代码库

GitHub Copilot Labs是GitHub Copilot的一个补充扩展,由GitHub Next团队开发,是一个实验性质的边栏,可以帮助开发人员将代码从一种编程语言翻译成另一种,而且还会逐步解释每一段代码。

理解新的代码库很难,GitHub Copilot Labs的这两个功能可以提供一定的帮助。通过将代码翻译成开发人员更熟悉的语言并使用“解释”功能来说明代码,这样开发人员就可以更好地理解复杂的代码块。

12. 进一步的分析

让我们尝试使用 lambda 函数来编码一些分类变量。 Copilot 可以为此生成几乎准确的代码。 但是必须进行一些调整,例如将“Yes”更改为“yes”。 这里我不能确定这是 Copilot 本身的问题还是我给出的说明的问题,因为是训练的原因可能是很多人的代码写的不太相同吧,也可能需要指定字符串应该如何格式化。

Copilot 是对性别特别敏感。 在任何单元格中输入“性别”,就不再提供任何建议! 这肯定是为了所谓的P.C,所以 Copilot 工作时,需要避免使用“性别”等这些比较敏感的词。

现在,来分析一下肥胖人群与 high_cal、fam_his 的关系:

## sum of high_cal and fam_his across different obesity groups

Copilot 提供了我们需要的代码。 它还为我们提供了代码来绘制这些结果。 这类似于下面的代码段。

我们日常的EDA工作都可以方便的完成,所以在最后我尝试了一些不太正式的东西:

## best way to plot BMI and age and obesity group

可以看到一个非常丰富多彩且可解释的散点图(见上图)。 这表明写一个信息量不大的评论,仍然可以给我们准确的结果。

13. 使用总结

Copilot可以生成有用的短代码片段。 它还可以生成几行高质量的代码。 虽然它并不完美但它确实帮助我从某个地方开始。每天都使用 Copilot的确可以节省时间。 因为我们不再需要花费太多时间来寻找诸如“如何在多个列上使用 .agg”之类的的答案,我们只要写好注释就好,那么我们需要它花钱吗?

参考文献

GitHub Copilot 快速入门 - GitHub Enterprise Cloud Docs

百度安全验证 

百度安全验证 

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

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

相关文章

【WSN定位】基于RSSI的加权质心定位算法-Matlab代码

文章目录 1. 原始质心定位算法2. 基于RSSI的加权质心定位算法基本思想3. 基于RSSI的加权质心定位算法流程图4. 部分代码展示5. 运行结果展示6. 资源获取 1. 原始质心定位算法 可参考质心定位算法 2. 基于RSSI的加权质心定位算法基本思想 传统的质心算法在求解过程中只是将未…

网络协议-加密和HTTPs证书

目录 对称加密和非对称加密 加密解密 加密方法/解密方法 对称加密/非对称加密 非对称加密(秘钥对) 思考 解决信任问题 证书体系 算法如何验证证书就是Alibaba 实际的证书体系 ​编辑 常见算法介绍 DES(Data Encryption Standard&…

量子力学、波函数与量子计算:揭开宇宙微观奥秘的神奇之门

在一个遥远的星球,生活着一群拥有超自然力量的智慧生物。他们能够随心所欲地让物体在空间瞬移,甚至能够预测未来。有一天,一位地球科学家意外穿越到了这个星球。经过一番了解,科学家惊奇地发现,他们所掌握的这种神奇力…

ai智能文章改写软件-ai智能文案自动生成

AI同义转换,掀起内容创作新革命! 如今,在数字化时代,内容创作日益受到重视,越来越多的人致力于网站排名优化、内容创意提升以及用户体验改善。然而,吸引用户阅读和提供有价值的信息并不那么容易。因此&…

云原生个人线路 K8s本地集群搭建(实操)

声明:此文章为博主个人学习记录,仅供学习和交流,如有侵权请联系博主。 kubernetes本地集群部署 三种方式 minikube 集群模拟器 裸机 kindminikube Docker客户端部署 裸机 环境 虚拟机 VMware 三台centos7 每台2g内存 2cpu 30g硬盘 k8s-mas…

Keil5 MDK新建项目工程

本文重点介绍基于Keil5 MDK实现新建一个完整的工程,第一次新建比较繁琐,建好后续工程可以直接复用 一、新建工程框架 1.新建一个文件夹,命名为Template 2.点击 MDK 的菜单: Project –>New Uvision Project ,然后将目录定位…

( “树” 之 前中后序遍历) 145. 二叉树的后序遍历 ——【Leetcode每日一题】

基础概念:前中后序遍历 1/ \2 3/ \ \ 4 5 6层次遍历顺序:[1 2 3 4 5 6]前序遍历顺序:[1 2 4 5 3 6]中序遍历顺序:[4 2 5 1 3 6]后序遍历顺序:[4 5 2 6 3 1] 层次遍历使用 BFS 实现,利用的就是 BFS…

Git从远程仓库克隆仓库后推送到指定分支

git克隆到本地仓库 在得到一个git仓库地址后,首先要配置本地仓库,配置远程仓库地址才可以远程拉取项目。 本地配置的一般流程: git init初始化一个空白git仓库 2. 配置在自己额用户名和邮箱 配置个人信息时方便再团队合作时能知道是谁再何…

2023 CCBN广电展顺利召开,ATEN宏正携广电专属系列解决方案亮相

4月19日-4月21日,第二十九届中国国际广播电视信息网络展览会(CCBN2023)于北京市石景山区首钢会展中心盛大开幕。本届CCBN广电展以“大视听向未来”为主题,内容涵盖广播电视、网络视听、电影、信息化视听、视听消费电子、通信、IT等多个领域创新科技和行业…

MySQL高级第十三篇:MySQL事物日志(redo日志-undo日志执行流程)

MySQL高级第十三篇:MySQL事物日志(redo日志-undo日志执行流程) 一、概述二、redo 日志1. 为什么需要 redo日志?2. redo 日志的特点3. redo log 整体流程4. redo log 的刷盘策略? 三、undo 日志1. 什么是 undo 日志&…

1026. 节点与其祖先之间的最大差值(4-19日

题目:给定二叉树的根节点 root,找出存在于 不同 节点 A 和 B 之间的最大值 V,其中 V |A.val - B.val|,且 A 是 B 的祖先。 (如果 A 的任何子节点之一为 B,或者 A 的任何子节点是 B 的祖先,那么…

context 浅析

在缺少直接调用关系的两个函数之间传递数据,一般都会考虑使用 context,而 context 也被用来存储整个请求链路的公参信息,用户 uid、链路 traceID、特定的业务参数等。函数第一个参数类型设置为 context.Context 也是 Go 的默认写法&#xff0…

2 常见模块库(3)

2.9 积分模块(2) External reset: 在什么条件下进行外部重置操作描述一下每个选项: Rising:当重置信号从非正的值(0或负值)变为正值时,重置积分器的状态。 Falling:当重置信号从正…

Java每日一练(20230419)

目录 1. 二叉树的最大深度 🌟 2. 二叉树的层序遍历 🌟🌟 3. 最短回文串 🌟🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Jav…

双向带头循环链表的实现

双向带头循环链表 双向带头循环链表结构讲解期望实现功能创建链表和头节点作用头插和头删头插头删 尾插与尾删尾插尾删 pos 删除和插入插入删除 打印和查找 整体代码 这个数据结构可以算是YYDS的存在了。 我们前面讲过的单链表,尾删和尾插需要遍历数组,极…

是时候该换掉你的axios了

axios是一个基于Promise的HTTP客户端,每周的npm下载量4000W,如果回到在10年前,promise式的请求工具是一个很大的创新,它解决了请求繁琐的问题,在那个性能要求不那么高的年代可谓是一骑绝尘。但随着时间的推移&#xff…

【网络】UDP协议 TCP协议

🥁作者: 华丞臧. 📕​​​​专栏:【网络】 各位读者老爷如果觉得博主写的不错,请诸位多多支持(点赞收藏关注)。如果有错误的地方,欢迎在评论区指出。 推荐一款刷题网站 👉 LeetCode刷题网站 文章…

Centos7安装Elasticsearch6.4.3和Kibana6.4.3

一、下载好安装文件上传到/usr/local 二、安装Java环境 1)、解压jdk tar -zxvf jdk-8u181-linux-x64.tar.gz2)、 配置Java环境变量 vim /etc/profile 3)、profile末尾添加 export JAVA_HOME/usr/local/jdk1.8.0_181 export PATH$JAVA_HO…

【2023 · CANN训练营第一季】昇腾AI入门课(Pytorch)---昇腾AI入门课(PyTorch)微认证考试

1、下列不属于昇腾计算服务层的是() 2、AscendCL的优势包括() 3、使用AscendCL开发应用的基本流程,以下正确的是? 4、关于AscendCL初始化,以下说法不正确的是? 5、以下关于ATC工具说法正确的是 6、模型转换工具的名称是&#xf…

深入实战探究 Vue 2.7 Composition API 的强大之处

最近几年公司开发一直使用的是 Vue2.6,对于逻辑复用使用的是 Mixin 方式,但随着项目体量的增加,带了一些问题,特别是:数据混乱问题:实例上的数据属性从当前模板文件中无法查取到,存在多个 Mixin…