Jupyter AI:通过聊天生成代码、修改错误,支持各种大模型

 Jupyter Lab 的GitHub Copilot、Cursor:免费开源的智能开发插件 Jupyter AI。

e0385d5f39f67e68db3d2214531425cc.png

01

人工智能方面开发的朋友对Jupyter 应该不陌生,Jupyter官方昨天推出了Jupyter AI开源子项目,能连接各大模型,聊天就可以生产代码,添加注释,修改错误,阅读和学习本地文件。类似Idea的AI插件GitHub Copilot、Cursor。‍‍‍‍‍

使用者可以选择最适合需求的 LLM、嵌入模型和向量数据库。底层提示、链条和其他软件都是开源的,因此使用者可以准确了解数据的使用情况。

Jupyter AI 在每个 AI 生成的代码单元格中保存有关模型生成内容的元数据,使用者可以方便的一览在使用过程中AI 生成的代码。

Jupyter AI 仅在使用者明确请求时直接与 LLM 进行通信。它不会读取您的数据,也不会在未经明确同意的情况下将其传输给模型。

Jupyter AI 支持使用本地模型,意味着可以在本地部署国内开源的ChatGLM这类大模型,接入Jupyter使用,确保数据和代码安全。‍‍‍‍‍‍‍‍‍

(不过到目前为止此项功能尚未完成,还在讨论、测试中。

官方团队在Git Issues中讨论了接入本地模型的需要解决问题,感兴趣的可以阅读这个issues:‍‍‍‍‍‍‍‍‍

https://github.com/jupyterlab/jupyter-ai/issues/190)

Jupyter AI 连接的模型主要来自国外 AI21、Anthropic、AWS、Cohere、OpenAI 等各大模型厂商,目前暂时没见到国内厂家的身影。

a7cc4d9dd341f45e8210b389a107e24b.png

Jupyter AI 将生成式人工智能引入 Jupyter 笔记本,提供了解释和生成代码、修复错误、总结内容、对本地文件提问,甚至根据自然语言提示生成整个笔记本的能力。

Jupyter AI 有两个版本,版本 1.0 适用于 JupyterLab 3,版本 2.0 适用于 JupyterLab 4,都是免费开源软件。

Jupyter AI 是 Project Jupyter 的官方子项目,现已作为免费开源软件提供。根据支持所有 Project Jupyter 原则进行设计:简单易用、模块化和可扩展,同时优先考虑道德和社会责任。

项目开源地址

https://github.com/jupyterlab/jupyter-ai

安装Jupyter AI

pip install 'jupyter-ai>=1.0,<2.0' # If you use JupyterLab 3
pip install jupyter-ai             # If you use JupyterLab 4

安装 Jupyter AI 后,在使用魔法命令之前,需要对要使用的每个模型提供程序进行身份验证。文档包含了配置模型提供程序的详细说明,具体见文末地址。

Jupyter AI 提供了两种不同的方式与 LLM 交互。

  • 在 JupyterLab 中,可以使用聊天界面与 LLM 进行对话,用于辅助开发。

  • 在任何支持 notebook 或 IPython 的环境中,包括 JupyterLab、Notebook、IPython、Colab 和 Visual Studio Code,可以使用 %% ai 魔术命令调用 LLM。

02

使用

AI助手:Jupyternaut

安装完后,在Jupyter Lab界面左边会多出来一个 Jupyternaut。‍

041e60452a91918fbd98542014dc389d.png

Jupyternaut 是一个和大语言模型的对话代理。

Jupyternaut 主要通过文本进行通信,它还可以与 JupyterLab 中的文件进行交互。它可以作为通用 AI 助手回答问题,包括从笔记本中选择问题和问题,将 AI 生成的输出插入到笔记本中,学习本地文件并提出有关本地文件的问题,以及根据提示生成笔记本。

我们来试着问一个问题:“Python中元祖和列表有什么区别?”

33391057fc2a85c72541eb5730eec036.png

还有选中一段代码,然后让Jupyternaut帮你生成注释。‍‍‍‍

8b2e2ff601ce1dabb04b0eaf2a188ddd.png

选中左下角的“Replace selection”,可以用包含写好注释的代码块替换选中的代码。

7edabe2a32f33e43fa153565d37a5712.png

根据文本提示生成笔记本

Jupyter AI 的聊天界面还可以根据文本提示生成整个笔记本Notebook。

只需要运行 /generate 命令并提供文本描述。Jupyternaut 将使用 AI 大语言模型来命名Notebook并用 Markdown 和代码单元填充它。

e0169f0a49431e461e7503115f8f9817.png

Jupyter Notebook 由一个单元格组成,每个单元格可以包含代码、公式或文本。代码单元可以用来执行代码,公式单元可以用来生成图表和图形,文本单元可以用来写注释或说明。Jupyter Notebook 支持Markdown。

Jupyternaut 生成 notebook 后,会发送一个包含文件名的消息,我们可以打开该文件进行查看。

c2674430fdea0bc2a824afe213e7c781.png

学习并询问本地文件

我们可以使用「/learn」命令让 Jupyternaut 学习本地文件,随后使用「/ask」命令询问有关本地文件的问题。

例如,使用「/learn」命令,让 Jupyternaut 学习关于 Jupyter AI 文档的知识。

1f4e37753522a228151af9a11caec480.png

学习本地文件时,Jupyternaut 使用嵌入模型来转换数据,然后将输出存储在本地向量数据库中。

学习过程完成后,就可以使用/ask命令提出问题。Jupyternaut 使用检索增强生成将从其向量数据库中将相关信息附加到问题,然后使用 AI 语言模型来回答问题。

06f6733a55c439ba8bedec315047cf84.png

魔法功能

Jupyter AI 提供了可以在 notebook cells 和 IPython 命令行界面中运行的 %% ai 命令,每个 %% ai 命令都需要一个模型,通常指定为 provider‑id:model‑id。

首先,运行%load_ext jupyter_ai_magics,这将加载 magics 扩展。然后,您可以通过魔法命令使用 Jupyter AI %%ai。

可以运行%ai help以了解可以使用%ai line magic 和%%ai cell magic 命令运行的所有选项和命令。

7ccca1ae197d0157d8c94b67e75f48e2.png

可以使用-f或--format参数自定义输出的格式,包括 HTML、数学、源代码和图像。

75151cdd6dc3205ccf2c225090b87cf8.png

如果需要在提示中传递变量名或者表达式,可以将变量名称或表达式用花括号括起来的方式。

2b0a86eae7400742adc31803408c194b.png

这种方式还适用于特殊变量In和Out变量,它们包含代码单元的输入和输出。请注意,单元格输出可以包含文本和 Markdown 值。

53fd6a07862df3b29b4b6a022230ed31.png

Jupyter AI 添加了一个特殊Err变量,用于存储执行代码时发生的错误。通过将此变量插入到提示中,可以使用 AI 语言模型来解释和更正代码中的错误。

e65e4821bbca06d14ba0bc35b98c5cbd.png

官方博客地址:‍‍‍‍‍‍

https://blog.jupyter.org/generative-ai-in-jupyter-3f7174824862

文档地址:

https://jupyter-ai.readthedocs.io/

阅读推荐:

M3E 可能是最强大的开源中文嵌入模型

ChatGPT开发实战|实现英文字幕翻译为中文双语的小工具

ChatGLM 更新:LongBench—评测长文本理解能力的数据集,支持 32k 上下文的 ChatGLM2-6B-32K

ChatGPT 官方安卓版正式发布!两种下载安装详细教程

为什么你在用 ChatGPT 的提示词 Prompt 似乎效果不如人意?

教程|使用免费GPU 资源搭建专属知识库 ChatGLM2-6B + LangChain

又一家顶级的大模型开源商用了!Meta(Facebook)的 Llama 2 搅动大模型混战的格局

拥抱未来,学习 AI 技能!关注我,免费领取 AI 学习资源。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值