我可以在Jupyter-Lab/Notebook上直接使用GitHub Copilot吗?

35

我经常在远程Jupyter服务器上做很多工作。我一直使用VSCode在这些服务器上运行笔记本,因为这是我能找到的最简单的同时使用Copilot进行开发的方式,但它变得相当繁琐,希望有更简单的解决方案。

非常感谢您能提供的任何帮助!

4个回答

14

虽然不是答案,但对于评论来说太长了。

截至2022年中期,似乎还没有实现。

Copilot使用一种名为OpenAI Codex的底层工具,其中有一个称为codex-davinci-002的模型,可以完成代码补全。 https://beta.openai.com/docs/models/codex-series-private-beta (值得注意的是,OpenAI还有一个令人困惑的模型称为text-davinci-002,它将自然语言转换为代码,这不是我们想要的)。它是免费的,但有一个等待测试的beta列表。有一个名为jupyterlab-codex的jupyterlab尝试实现这一点。鉴于搜索结果,它可能在某个时候起作用,例如,https://medium.com/codex/jupyter-notebook-can-do-that-b3185058fe76。因此,需要关注的事情是“Jupyter + Codex”,而不仅仅是“Jupyter + copilot”。

编辑 最近有几个基于GPT3的代码自动完成工具可以在Jupyter Lab中使用,但就我所知,它们并不像Copilot那样好用,甚至有点令人不安。Copilot有一个烦人的问题,就是TAB键既可以接受Copilot的建议,也可以添加空格,而PyCharm的建议则与之相冲突。在Jupyter Lab中,TAB键会显示一个选择元素的工具提示,这似乎是Tabninekite干净利落地使用了这一点,但它们无法超越变量自动完成。比如你写了def convert_centimetres_to_inches(centimetres:float) -> float:,在Copilot中,会建议3-4行正确的代码和文档字符串,但我尝试过的jupyterlab克隆版并没有这样的功能,甚至无法强制出现2.6倍数的建议。


2
有一个 Emacs 的开源实现(https://github.com/zerolfx/copilot.el),所以这是可行的。 - Att Righ
2
在GitHub上,@parththakkar对Copilot前端进行了很好的分解,https://thakkarparth007.github.io/copilot-explorer/,这可能是制作Copilot插件的良好起点。笔记本ipynb文件只是一个简单模式中的JSON,而jupyterlab扩展通常需要nodeJS,因此我同意尽管需要相当多的编码,但这是可行的。 然而,律师令人生畏、烦人且难以理解,所以在涉足这个领域之前,人们需要与GitHub签订谅解备忘录,以免在编写20-50,000行代码(其中许多是JS)后收到停止和撤回命令。 - Matteo Ferla
1
嗯,我倾向于直接这样做,但人类经验改变了我的风险容忍度。Emacs后端实际上使用了一个nodeJS服务器,因此也许可以重用一些代码,或者通过HTTP与emacs使用的该服务器通信。这可能会减少法律责任,但不会减少“流沙效应”。拥有一个“标准”完成界面可能是不错的...这个服务器可能代表了这个界面 - 你可以用其中之一替换copilot。[https://visualstudiomagazine.com/articles/2021/09/24/github-copilot-alternatives.aspx] - Att Righ
我知道的使用Jupyter Notebooks的最佳体验是在VSCode中。它非常适合本地笔记本,而且还允许远程服务器(令人烦恼的部分是您不能打开远程笔记本,而是要将本地笔记本连接到远程内核)。https://code.visualstudio.com/docs/datascience/jupyter-notebooks#_connect-to-a-remote-jupyter-server - Christian Heine
你可以使用 Starcoder 和开源替代品来代替 Copilot。 - Att Righ

1

现在有一种类似的方法。使用新版的Bing工具,可以读取Jupyter笔记本,并要求其生成代码。


2
目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

0

Jupyter笔记本也可以在PyCharm或DataShell上运行,与Copilot兼容。

其他代码补全AI也值得考虑。Tabnine可以直接在浏览器上为jupyter lab或notebook运行,可免费使用或购买更强大的付费版本。


0
你可以使用这个链接:https://github.com/bigcode-project/jupytercoder
它是一个解决方案,可以在starcoder中实现AI代码自动完成(由huggingface支持)。
您需要从hugging face个人帐户创建免费的API令牌,并从github存储库构建Chrome扩展程序(在Chrome扩展程序菜单中切换到开发者模式)。
要进行代码自动完成,请按Ctrl + Space,然后按Ctrl接受建议。
它适用于jupyter笔记本(仅限jupyter笔记本,不包括lab)。

你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community
2
我帮你稍微改进了一下(我也不是母语人士)。但是不要为你的英语道歉,只要你尽力了(而且已经相当不错了)。玩得开心。感谢接受反馈意见。 - Yunnosch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接