“ Jupyter Lab 的GitHub Copilot、Cursor:免费开源的智能开发插件 Jupyter AI。”
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 等各大模型厂商,目前暂时没见到国内厂家的身影。
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 交互。
02
—
使用
AI助手:Jupyternaut
安装完后,在Jupyter Lab界面左边会多出来一个 Jupyternaut。
Jupyternaut 是一个和大语言模型的对话代理。
Jupyternaut 主要通过文本进行通信,它还可以与 JupyterLab 中的文件进行交互。它可以作为通用 AI 助手回答问题,包括从笔记本中选择问题和问题,将 AI 生成的输出插入到笔记本中,学习本地文件并提出有关本地文件的问题,以及根据提示生成笔记本。
我们来试着问一个问题:“Python中元祖和列表有什么区别?”
还有选中一段代码,然后让Jupyternaut帮你生成注释。
选中左下角的“Replace selection”,可以用包含写好注释的代码块替换选中的代码。
根据文本提示生成笔记本
Jupyter AI 的聊天界面还可以根据文本提示生成整个笔记本Notebook。
只需要运行 /generate 命令并提供文本描述。Jupyternaut 将使用 AI 大语言模型来命名Notebook并用 Markdown 和代码单元填充它。
Jupyter Notebook 由一个单元格组成,每个单元格可以包含代码、公式或文本。代码单元可以用来执行代码,公式单元可以用来生成图表和图形,文本单元可以用来写注释或说明。Jupyter Notebook 支持Markdown。
Jupyternaut 生成 notebook 后,会发送一个包含文件名的消息,我们可以打开该文件进行查看。
学习并询问本地文件
我们可以使用「/learn」命令让 Jupyternaut 学习本地文件,随后使用「/ask」命令询问有关本地文件的问题。
例如,使用「/learn」命令,让 Jupyternaut 学习关于 Jupyter AI 文档的知识。
学习本地文件时,Jupyternaut 使用嵌入模型来转换数据,然后将输出存储在本地向量数据库中。
学习过程完成后,就可以使用/ask命令提出问题。Jupyternaut 使用检索增强生成将从其向量数据库中将相关信息附加到问题,然后使用 AI 语言模型来回答问题。
魔法功能
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 命令运行的所有选项和命令。
可以使用-f或--format参数自定义输出的格式,包括 HTML、数学、源代码和图像。
如果需要在提示中传递变量名或者表达式,可以将变量名称或表达式用花括号括起来的方式。
这种方式还适用于特殊变量In和Out变量,它们包含代码单元的输入和输出。请注意,单元格输出可以包含文本和 Markdown 值。
Jupyter AI 添加了一个特殊Err变量,用于存储执行代码时发生的错误。通过将此变量插入到提示中,可以使用 AI 语言模型来解释和更正代码中的错误。
官方博客地址:
https://blog.jupyter.org/generative-ai-in-jupyter-3f7174824862
文档地址:
https://jupyter-ai.readthedocs.io/
阅读推荐:
ChatGLM 更新:LongBench—评测长文本理解能力的数据集,支持 32k 上下文的 ChatGLM2-6B-32K
为什么你在用 ChatGPT 的提示词 Prompt 似乎效果不如人意?