# 如何使用 GitHub Copilot 发送 Tweet(译)

news2024/12/23 17:08:25

文章目录

    • 首先,什么是 GitHub Copilot
    • 为什么我使用GitHub Copilot 发送 Tweet?
      • 理由 1
      • 理由 2
      • 理由 3
    • 它对你来说有什么价值?
    • 如何使用 Copilot 发送推文
      • 步骤一:注册 Twitter 开发者账户
      • 步骤二:在 Twitter 开发者平台创建应用程序
      • 步骤三:启用 GitHub Copilot
      • 步骤四:在编辑器中安装 Copilot 插件
      • 步骤五:安装 Tweepy
      • 步骤六:创建一个名为 sendTweet.py 的文件
      • 步骤七:让我们使用 Copilot 导入 tweepy 库
      • 步骤八:查看 Copilot 的多项建议
      • 步骤九:创建配置文件来存储你的授权
      • 步骤十:使用 Copilot 去自动补全配置文件
      • 步骤十一:在 sendTweet.py 文件中,使用 Copilot 导入配置文件
      • 步骤十二:在 sendTweet.py 文件中,传入以下参数的值:consumer_key、consumer_secret、access_token 和 access_token_secret
      • 步骤十三:在 sendTweet.py 文件中,写入推文的内容
      • 步骤十四:现在,是时候发送推文了
      • 步骤十五:打印 response 的值做完整性检查
      • 步骤十六:确认两个文件都包含了所有必须的代码
      • 步骤十七:运行代码
    • 经验总结
    • 碎碎念
    • 参考资料:

这个月,我学习了如何使用 Github Copilot 发送 tweet。这太酷了!我猜你可能会想:

  • 什么是 GitHub Copilot?

  • 为什么我想要使用 GitHub Copilot 发送 tweet?

  • 它对你来说有什么价值?

  • 如何通过 Copilot 发送 tweet?

幸运的是,我将在这篇文章中回答所有这些问题!

首先,什么是 GitHub Copilot

Copilot 是一款 AI 结对程序员,可帮助你以更少的工作更快地编写代码。如果你从未使用过它并且你正在努力想象它的行为,我会将其比作 Gmail 和 Google Docs 中的智能撰写功能。与智能撰写类似,GitHub Copilot 会预测你的下一行代码以提高你的工作效率。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

为什么我使用GitHub Copilot 发送 Tweet?

理由 1

我是一名开发人员倡导者,我的部分职责是构建演示以提高开发人员对新功能的认识。7 月,Twitter 的 DevRel 团队要求 GitHub DevRel 团队合作制作一个展示 Twitter API V2 和 GitHub Copilot 的直播。该直播的目的是展示 GitHub Copilot 可以帮助你利用 Twitter 的 API v2。我很兴奋地同意做这个直播,然后我意识到我必须使用 Tweepy,这是一个易于使用的 python 库,用于访问 Twitter API。有一个巨大而显然的问题:我不知道如何使用 Python 编写,所以它对我来说并不容易使用。我是一名训练有素的 JavaScript 开发人员。我甚至可以在 Java 或 C# 代码中找到自己的方法。但我一生从未接触过 Python。每个人都说 Python 很简单,因为它很容易阅读,这是他们在学校里学的语言。然而,我只有不到一周的时间来准备和发布演示,网上有很多陌生人在看着我。

巧合的是,我发现可以在 Copilot 上学习使用 Tweepy 访问 Twitter 的 API。虽然我很紧张,但我意识到这是一个完美的解决方案。我可以结构性的展示 GitHub Copilot 如何帮助我使用 Tweepy。这招很奏效!GitHub Copilot 在不到 30 分钟的时间里帮助我构建了演示。虽然我在游泳时打了几个小嗝,但它很奏效。

诚然,在我的角色中,我已经报名参加演示、讨论或使用不熟悉的工具进行构建,因为我相信离开我的舒适区将帮助我快速成长和学习的概念。我已经在多个项目中使用 GitHub Copilot ,它帮助我快速完成项目。一些例子包括:

  • 使用 Applitools 演示 GitHub Copilot

  • 在我的存储库中构建自动化

  • 只需在不到一天的时间内完成随机的简短申请

GitHub Copilot 并不能取代学习如何编程的复杂性,因为在不知道自己在做什么的情况下,你很容易无意中引入错误或不良实践。但是,如果你已经清楚要完成的任务,并对要编写的代码行背后的逻辑有深入的了解,但不熟悉语法,Copilot 可以提供帮助。

理由 2

我选择使用 Copilot 发送推文是因为我沉迷于 Twitter,而且我觉得以编程方式发送推文比通过 GET 请求检索推文更令人兴奋。

理由 3

从表面上看,以编程方式发送推文似乎并不实用。我的一个想法是,每当一个问题被标记「第一好问题」时,开源项目就可以自动在推特上发布「第一好问题」。目的是吸引新的贡献者并帮助新的贡献者找到可实现的问题。在Copilot 的帮助下,我使用 GitHub Action 构建了一个解决方案,我将在以后得文章中介绍该解决方案。

它对你来说有什么价值?

如果你对于 GitHub Copilot 如何为你工作感到好奇,这里写了很多有关各种用例的文章。对于我的简短回答,这很有趣,你将学习如何优化 Copilot 的功能以提高你的工作效率。

如何使用 Copilot 发送推文

步骤一:注册 Twitter 开发者账户

你可以在 Twitter 文档中找到有关注册 Twitter 开发者账户的信息

步骤二:在 Twitter 开发者平台创建应用程序

此步骤将帮助你生成访问 Twitter API 所需的令牌和密钥。请注意:这不是创建应用程序商店中存在的应用程序。相反,它指的是你正在构建用于通过 Twitter 的 API 与 API 进行交互的「应用程序」。保存 consumer secret、consumer key、access token 和 access token secret ,因为我们将在本教程的后面使用这些授权。

步骤三:启用 GitHub Copilot

要启用 GitHub Copilot,请导航到 https://github.com/settings/copilot 。这应该会带你进入一个带有按钮的页面,提示你启用 GitHub Copilot。请注意,如果你是学生,则可以免费访问 GitHub Copilot。

在这里插入图片描述

步骤四:在编辑器中安装 Copilot 插件

你可以安装 GitHub Copilot 的插件在 Neovim、JetBrains IDEs、Visual Studio 和 Visual Stuadio Code。在下图中,我高亮了 Github Copilot 和 Github Copilot Labs 插件。阅读之前的博客 ,了解这些插件的差异。安装插件程序后,它可能会要求你登录,因此请安装提示完成身份验证过程。

在这里插入图片描述

步骤五:安装 Tweepy

正如我提到的,tweepy 是一个 Python 库,可以轻松使用 Twitter API。Twitter 似乎很欣赏它的存在,因为 Twitter DevRel 团队建议我使用该库。要开始使用 tweepy:

  • 创建一个文件夹,用于存放该项目相关代码。

  • 在该文件夹中,运行如下命令来安装 tweepy:

    pip3 install tweepy
    
  • 如果你曾经安装过 tweepy,运行如下命令

    pip3 install tweepy --upgrade
    

步骤六:创建一个名为 sendTweet.py 的文件

我将文件 sendTweet.py 存储在名为 copilot-tweepy 的新目录中.

在这里插入图片描述

步骤七:让我们使用 Copilot 导入 tweepy 库

我写了一行注释

# import the tweepy library

这对我很有帮助,因为我不确定如何处理 Python 中的库导入,Copilot 向我展示了如何操作。在下面的屏幕截图中,它填充了一行代码:

import tweepy

在这里插入图片描述

步骤八:查看 Copilot 的多项建议

我写了一条注释,这样我就可以使用 tweepy 客户端和我的 API 授权,但是 Copilot 没有建议所需的解决方案!由于 Twitter API v2 仍然相对较新,因此它不会出现在首要建议中。

下图的截屏显示了 Copilot 提出的建议与我的目标之间的不准确。

在这里插入图片描述

默认情况下,Copilot 将提供初始建议,但你可以通过如下的方式查看更多 Copilot 的建议:

  • 将鼠标悬停在 Copilot 的建议上,它将列举出更多可选的建议

  • 使用键盘快捷键。学习更多的操作 Copilot 的快捷键,请点这里

对于这种情况,我选择「打开 GitHub Copilot」选项来显示多个建议。它打开了一个新 tab ,其中包括 119 行建议。在阅读了一些 Twitter API 文档后,我了解到 tweepy.Client 是 Twitter API v2 的正确语法,因此我专门搜索了关键字 tweepy.Client。我找到了我需要的解决方案并接受了该解决方案。

在这里插入图片描述

最适合我的建议是

client = tweepy.Client(consumer_key="",
                       consumer_secret="",
                       access_token="",
                       access_token_secret="")

步骤九:创建配置文件来存储你的授权

我在与 sendTweet.py 相同的目录中创建一个名为 config.py 的文件。我使用此文件来避免向公众公开 API 授权。

步骤十:使用 Copilot 去自动补全配置文件

我在配置文件中写入了前几行

# consumer secret
CONSUMER_SECRET_KEY = ""
# consumer key

Copilot 现在可以推断我需要包含 ACCESS_TOKEN 和 ACCESS_TOKEN_SECRET。

在这里插入图片描述

我为每个键传递了正确的值。

步骤十一:在 sendTweet.py 文件中,使用 Copilot 导入配置文件

我写了一条注释# import the config file 并且接受了 Copilot 的下一行建议。

在这里插入图片描述

步骤十二:在 sendTweet.py 文件中,传入以下参数的值:consumer_key、consumer_secret、access_token 和 access_token_secret

当你填写每个值时,Copilot 会注意到该模式并自动为你填充值!

在这里插入图片描述

输入所有值后,该代码块应如下所示:

client = tweepy.Client(consumer_key=config.CONSUMER_KEY,
                       consumer_secret=config.CONSUMER_SECRET_KEY,
                       access_token=config.ACCESS_TOKEN,
                       access_token_secret=config.ACCESS_TOKEN_SECRET)

步骤十三:在 sendTweet.py 文件中,写入推文的内容

我写了一条如下的注释:

# create a  variable called tweet with a string that says 'I wrote this tweet with Copilot

Copilot 正确的理解了我的注释,所以我接收了初始的建议。

在这里插入图片描述

步骤十四:现在,是时候发送推文了

在这一不受,我必须写一个非常具体的注释,我在最初写了一条注释:

#send tweet

不幸的是,Copilot 返回了 Twitter API v1 的建议。为了优化 Copilot 提供的建议,我更新注释:

# send tweet with client.create_tweet method and text as argument. Save the result in a variable called response

这次 Copilot 给了我正确的结果

在这里插入图片描述

发送推文的行应该是这样的:

# send tweet with client.create_tweet method and text as argument. Save the result in a variable called response
response = client.create_tweet(text=tweet)

步骤十五:打印 response 的值做完整性检查

打印 response 返回值帮助我们了解推文是否发送成功或者为什么失败。

print(response)

步骤十六:确认两个文件都包含了所有必须的代码

两个文件的代码片段如下:

sendTweet.py

# import the tweepy library
import tweepy
# import the config file
import config
# create client with tweepy.Client with consumer key and consumer secret and access token as arguments
client = tweepy.Client(consumer_key=config.CONSUMER_KEY,
                       consumer_secret=config.CONSUMER_SECRET_KEY,
                       access_token=config.ACCESS_TOKEN,
                       access_token_secret=config.ACCESS_TOKEN_SECRET)

# create a  variable called tweet with a string that says 'I wrote this tweet with Copilot'
tweet = 'I wrote this tweet with Copilot'

# send tweet with client.create_tweet method and text as argument. Save the result in a variable called response
response = client.create_tweet(text=tweet)


print(response)

config.py

# consumer secret 
CONSUMER_SECRET_KEY = "YOUR SECRET KEY GOES HERE"
# consumer key
CONSUMER_KEY = "YOUR KEY GOES HERE"
# access token
ACCESS_TOKEN = "YOUR TOKEN GOES HERE"
# access token secret
ACCESS_TOKEN_SECRET = "YOUR TOKEN SECRET GOES HERE"

步骤十七:运行代码

在我的终端,我运行了命令:python3 sendTweet.py。为了检查是否成功,我前往 Twitter 找到了这条推文。

在这里插入图片描述

经验总结

从 Copilot 获得最佳结果的关键是:

  • 写清晰和具体的注释

  • 一旦 Copilot 能够识别代码中的连续模式,就可以利用它

  • 检查 Copilot 提供的替代建议

碎碎念

最近开始学着写 C++ 的代码,亲测在 Copilot 的帮助下,更容易上手写 C++。希望今年剩下的日子,也要继续保持学习的劲头呀!

  • 那些能改变我们一生的道理,都不是别人教会的。

  • 真正的读书,不是翻越纸张,而是被书改变。

  • 我永远喜欢那些优秀又谦逊的人,他们明明拥有着吊打所有人的能力,却毫无优越感,对人温和得像傍晚的风,工作上坚定有主见,与人相处时又温柔自谦。是的,让自己优秀也许是天赋和努力,但能让周围人舒服那就是善良和有同理心,两者兼有,真的太难得了!

参考资料:

  • How to Send a Tweet with GitHub Copilot

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

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

相关文章

如何评估以及优化谷歌ads

在广告投放一段时间后,应该对广告的效果有所了解。如果您的目标是增加销量和网站流量,米贸搜谷歌推广建议请考虑以下问题: 1.哪些关键字为广告带来的点击最多? 2.客户进行搜索时使用的是何种设备?他们来自何处&#xf…

vue知识点————插槽 slot

slot 插槽 在父组件中引用的子组件 在父组件中写入百度 可在子组件slot插槽中展示出 父组件 <template><div id"app"><child url"https://www.baidu.com">百度</child></div> </template><script> import chil…

达梦控制台还原报错“管道失败”

达梦数据库控制台还原报错“管道失败” 环境 主机操作系统&#xff1a;windows10 profession 达梦数据库版本&#xff1a;达梦7 问题背景 全新安装达梦7数据库后&#xff0c;创建数据库实例&#xff0c;需要恢复往期bat备份。在控制台配置指定搜索目录后&#xff0c;获取备份时…

功率放大器在扫描显微镜中的应用有什么

功率放大器在扫描显微镜中起到了至关重要的作用。扫描显微镜是一种高分辨率的显微镜技术&#xff0c;它能够以极高的精度观察和研究样品的表面形貌和结构特征。而功率放大器则能够提供所需的信号增益&#xff0c;使得扫描显微镜能够获得更加清晰、细致的图像。 功率放大器可以帮…

TLS协议深度解析:挖掘现代网络安全防御的底层技术

正常简单的通讯 1、服务器生成一对密钥&#xff0c;公钥A、私钥A 2、浏览器请求服务器时&#xff0c;服务器把公钥A传给浏览器 3、浏览器随机生成一个对称加密的密码S&#xff0c;用公钥A加密后传给服务器 4、服务器接收后&#xff0c;用私钥A解密&#xff0c;得到密钥S 5、浏…

学习心得08:OpenGL

我是想学习一下如何编程&#xff0c;这本书大多介绍的是原理。这两个完全是一回事。所以我又买了另外一本看看。

【Apollo学习笔记】——规划模块TASK之PIECEWISE_JERK_NONLINEAR_SPEED_OPTIMIZER(二)

文章目录 TASK系列解析文章OptimizeByNLP1.get_nlp_info()定义问题规模2.get_bounds_info()定义约束边界约束3.get_starting_point()定义初值4.eval_f()求解目标函数5.eval_grad_f()求解梯度6.eval_g()求解约束函数7.eval_jac_g()求解约束雅可比矩阵8.eval_h()求解黑塞矩阵9. f…

2023年9月CDGA/CDGP数据治理认证考试报名,找弘博创新

据DAMA中国官方网站消息&#xff0c;2023年度第三期DAMA中国CDGA和CDGP认证考试定于2023年9月23日举行。 报名通道现已开启&#xff0c;相关事宜通知如下&#xff1a; 考试科目: 数据治理工程师(CertifiedDataGovernanceAssociate,CDGA) 数据治理专家(CertifiedDataGovernanc…

四年级上册思维导图怎么绘制?简单漂亮绘制方法分享

四年级上册思维导图怎么绘制&#xff1f;思维导图是一种非常实用的工具&#xff0c;它可以帮助我们将复杂的想法和信息以图形化的方式呈现出来&#xff0c;让我们更加清晰地理解问题&#xff0c;并且更加容易地进行思考和决策。如果你需要绘制思维导图的话&#xff0c;那么今天…

抖店开通后要做的基础搭建,店铺快速起店的关键,建议认真看完

我是王路飞。 你是不是以为开通抖店之后&#xff0c;就没啥事了&#xff0c;可以直接选品上架了&#xff1f; 错了&#xff01; 在你选品上架之前&#xff0c;还有一步非常关键&#xff0c;就是店铺的基础搭建。 如果一些基础功能你没开通、设置没做好的话&#xff0c;是会…

C高级 第二天 shell指令

写一个1.sh脚本&#xff0c;将以下内容放到脚本中&#xff1a; 在家目录下创建目录文件&#xff0c;dir 在dir下创建dir1和dir2 把当前目录下的所有文件拷贝到dir1中 把当前目录下的的所有脚本文件拷贝到dir2中 把dir2打包并压缩为dir2.tar.xz 再把dir2.tar.xz移动到dir1…

buuctf web 前5题

目录 一、[极客大挑战 2019]EasySQL 总结&#xff1a; 二、[极客大挑战 2019]Havefun 总结&#xff1a; 三、[HCTF 2018]WarmUp 总论&#xff1a; 四、[ACTF2020 新生赛]Include 总结&#xff1a; 五、[ACTF2020 新生赛]Exec 总结&#xff1a; 一、[极客大挑战 2019]…

leetcode897. 递增顺序搜索树(java)

递增顺序搜索树 题目描述中序遍历代码演示 递归专题 题目描述 难度 - 简单 LC - 897. 递增顺序搜索树 给你一棵二叉搜索树的 root &#xff0c;请你 按中序遍历 将其重新排列为一棵递增顺序搜索树&#xff0c;使树中最左边的节点成为树的根节点&#xff0c;并且每个节点没有左子…

[.NET学习笔记] - Thread.Sleep与Task.Delay在生产中应用的性能测试

场景 有个Service类&#xff0c;自己在内部实现生产者/消费者模式。即多个指令输入该服务后对象后&#xff0c;Service内部有专门的消费线程执行传入的指令。每个指令的执行间隔为1秒。这里有两部分组成&#xff0c; 工作线程的载体。new Thread与Task.Run。执行等待的方法。…

大学生如何进行有效的时间管理?用待办清单APP高效管理个人时间

大学生的课外时间比较多&#xff0c;为了避免珍贵的时间被浪费&#xff0c;个人时间管理成为必不可少的技能。合理利用时间不仅能提高学习效率&#xff0c;还能充分发展自己的兴趣爱好和个人能力。那么&#xff0c;大学生如何实现有效的时间管理呢&#xff1f; 要实现有效的时…

GPT与BERT模型

NLP任务的核心逻辑是“猜概率”的游戏。BERT和GPT都是基于预训练语言模型的思想&#xff0c;通过大量语料训练得到语言模型。两种模型都是基于Transformer模型。 Bert 类似于Transformer的Encoder部分&#xff0c;GPT类似于Transformer的Decoder部分。两者最明显的在结构上的差…

【Matlab】Matlab实现数据的动态显示方法

Matlab实现数据的动态显示方法 主要为大家详细介绍了Matlab使用Plot函数实现数据动态显示方法&#xff0c;具有一定的参考价值&#xff0c;感兴趣的小伙伴们可 以参考一下 对于真实系统或者仿真平台&#xff0c;数据是增量式的产生的。Matlab除了强大的矩阵运算外&#xff0c;还…

PHP实践:用Yconf配置扩展为项目插上性能的翅膀

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月CSDN上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师…

发布自定义node包,实现自定义脚本命令

比方说yarn&#xff0c;cnpm&#xff0c;vite等命令&#xff0c;无需执行node xxxx&#xff0c;可以自定义执行并完成一些操作 创建一个文件夹如下 在index.js中输入 #!/usr/bin/env node console.log(hello world);在package.json中添加 {...,"bin": {"pack…

USB——硬件控制器分类(OHCI UHCI EHCI xHCI)))

文章目录 OHCIUHCIEHCIxHCIKHCI HCI&#xff1a;Host Controller Interface 主机控制器接口 OHCI、UHCI都是USB1.1的接口标准 EHCI是对应USB2.0的接口标准 xHCI是USB3.0的接口标准 OHCI 全称为 Open Host Controller Interface&#xff0c;这是一种 USB 控制器标准&#…