笔记本智能
Notebook Intelligence(NBI)是JupyterLab的人工智能编码助手和可扩展的人工智能框架。它添加了聊天、内联编辑、自动完成和一个可以驱动笔记本电脑的代理——由GitHub Copilot支持,GitHub Copiloth是一个OpenAI兼容或LiteLLM兼容的端点,本地 奥拉玛 模型或Anthropic的Claude Code CLI。
NBI是免费和开源的。将其连接到您选择的免费或付费LLM提供商——GitHub Copilot、任何兼容OpenAI或LiteLLM的端点、Ollama(本地)或Anthropic Claude(通过Claude Code CLI)。供应商费用(如适用)直接支付给供应商。
目录
- 克劳德模式 - 代理模式 - 使用内联聊天生成代码 - 自动完成 - 聊天界面 - 细胞输出动作 - 笔记本工具栏生成
- 配置文件 -
- MCP配置示例
需求
- Python 3.10+
- JupyterLab 4.x
- Node.js——只需要 克劳德模式 (Claude Code CLI)以及通过以下方式启动的MCP服务器
npx. - 建议使用新的virtualenv或conda-env,这样NBI就不会与系统Python冲突。
快速开始
pip install notebook-intelligence
jupyter lab # restart JupyterLab if it was already running重新启动后:
- 单击左侧边栏中的NBI图标打开聊天面板。
- 打开NBI设置(聊天面板中的齿轮图标,或 _设置→ 笔记本智能设置_).
- 登录您的提供商——对于GitHub Copilot,请单击 _登录_;对于与OpenAI或LiteLLM-兼容的端点,粘贴API密钥;对于Ollama,指向你的本地守护进程。要使用Claude,请启用Claude模式(见下文)。
- 在聊天室面板中键入信息,然后按Enter键。
如果面板为空或登录不起作用,请参阅 故障排除.
概念
您将在这些文档中看到一个简短的术语表。
- 大语言模型提供商 --运行模型的服务。NBI附带了四个提供商适配器:GitHub Copilot、OpenAI兼容、LiteLLM兼容和Ollama。Anthropic Claude可通过以下方式获得 克劳德模式,而不是顶级供应商。
- 聊天参与者 一
@mention-聊天面板中的能干角色(@workspace,@mcp, …).参与者将请求路由到特定的工具表面。 - 默认模式与克劳德模式 — _默认_ 使用配置的LLM提供程序进行聊天、内联聊天和自动完成。 _克劳德模式_ 将Claude Code CLI用于聊天面板(获得其工具、技能、MCP服务器和自定义命令),并通过Anthropic API使用Claude模型进行在线聊天和自动完成。需要打开Claude Code CLI
PATH. - 克劳德代码与人类API --the _无烟煤API_ (
api.anthropic.com)是HTTPS端点NBI直接调用,用于在线聊天和克劳德模式下的自动完成。 _克劳德代码_ 是Anthropic的本地CLI代理,NBI为聊天面板提供服务;它与Anthropic本身对话。 - 主控程序 — 模型上下文协议LLM调用外部工具(读取文件、点击API、运行脚本)的一种方法。
- 规则集 --markdown文件在
~/.jupyter/nbi/rules/它们被注入到系统提示符中,以强制执行约定、编码标准或域规则。
功能亮点
克劳德模式
NBI提供了一种专用模式 克劳德代码 整合。在 克劳德模式,NBI将Claude Code CLI用于聊天面板,并使用Claude模型(通过Anthropic API)用于在线聊天和自动完成建议。这将Claude Code的工具、技能、MCP服务器和自定义命令引入JupyterLab。
通过NBI设置对话框(聊天面板中的齿轮图标,或 _设置→ 笔记本智能设置_).切换 _启用克劳德模式_那么:
- 聊天模式 --用于聊天面板和在线聊天的Claude模型。
- 自动完成模型 --用于自动完成建议的克劳德模型。
- 聊天代理设置源 --用户、项目或两者镜像 Claude Code的设置.
- 聊天代理工具 --要激活哪个工具集。 _Claude代码工具_ 总是开着的。 _Jupyter UI工具_ 是NBI自己的(创作笔记本、运行单元格等)。
- API密钥 和 基础URL --指向Anthropic或自托管端点。
如果Claude Code CLI已打开 PATH,NBI会自动启动它。要覆盖该位置,请设置 NBI_CLAUDE_CLI_PATH 启动JupyterLab之前的环境变量。
续会上次克劳德会议
当克劳德模式打开时,聊天侧边栏在齿轮旁边显示一个历史图标。单击它以列出为当前工作目录记录的Claude Code会话(与Claude Code CLI存储在下的转录相同 ~/.claude/projects/).选择会话通过以下方式重新连接 resume,因此您发送的下一条消息将继续使用完整的先前上下文。
Claude代码启动器磁贴
启用Claude模式且Claude CLI可用时,JupyterLab启动器(打开新选项卡的面板)显示 克劳德代码 与标准内核启动器并排放置。点击它会打开一个会话选择器——在过去的成绩单中搜索,并在新的终端中恢复一个,或者在文件浏览器的活动子目录中启动一个新的会话。会话ID可以从选择器复制,以便粘贴到 claude --resume 命令。
代理模式
在代理模式下,内置的AI代理以交互方式为您创建、编辑和执行笔记本。它可以检测细胞中的问题并修复它们。
使用内联聊天生成代码
使用单元格工具栏上的闪烁图标或键盘快捷键显示内联聊天弹出窗口。
Ctrl+G / Cmd+G 打开popover。 Ctrl+Enter / Cmd+Enter 接受建议。 Esc 关闭它。接受快捷方式会覆盖JupyterLab的默认值 _运行单元_ 绑定 只有当popover打开时 --在popover之外, Ctrl+Enter / Cmd+Enter 仍在运行活动单元。
自动完成
键入时会显示自动完成建议。 Tab 接受。NBI提供自动完成的代码单元格和Python文件编辑器。
聊天界面
您可以在聊天提示旁边粘贴或附加图像——当活动模型支持视觉时,图像会作为输入进入模型。
细胞输出动作
右键单击单元格输出(或将鼠标悬停在工具栏上),将其作为上下文直接发送到聊天中:
- 解释单元格错误 --在凸起的单元格上显示“排除输出错误”条目;打开附有回溯的聊天回合。
- 询问电池输出 --将输出作为后续问题的结构化上下文附加。包括视觉模型的图像。
- 显示输出工具栏 --每个输出上方的浮动工具栏具有快速 解释 / 问 / 故障排除 行动。
每个用户都可以从设置(另存为 enable_explain_error, enable_output_followup, enable_output_toolbar 在 config.json,默认打开),管理员可通过以下方式锁定 NBI_EXPLAIN_ERROR_POLICY / NBI_OUTPUT_FOLLOWUP_POLICY / NBI_OUTPUT_TOOLBAR_POLICY.
笔记本工具栏生成
活动笔记本在工具栏上显示一个闪闪发光的图标。单击它打开一个弹出窗口,将生成请求范围限定到特定的笔记本电脑——这对于不希望聊天侧边栏竞争上下文的多笔记本会话非常方便。
配置
从NBI设置配置您的提供商、型号和API密钥-聊天面板中的齿轮图标 /settings 聊天命令或JupyterLab命令面板。有关背景信息,请参阅 提供商博客文章.
配置文件
NBI将配置保存在 ~/.jupyter/nbi/config.json。它还支持全环境基础配置 /share/jupyter/nbi/config.json --组织可以在那里发布默认配置,用户更改将另存为覆盖。
这些配置文件存储提供者、模型和MCP配置。 自定义LLM提供程序的API密钥也以明文存储在此处 --永不承诺 ~/.jupyter/nbi/config.json git、共享或跨用户同步。如果钥匙泄漏,请立即在提供者处旋转。
手动编辑 config.json 需要重新启动JupyterLab才能生效。通过“设置”对话框进行的编辑将实时获取。管理策略
组织管理员可以锁定大多数设置面板开关。两种形状:
布尔策略 使用 *_POLICY 后缀,并接受三个值: user-choice (默认情况下,用户可以自由切换), force-on (锁定启用), force-off (锁定禁用)。强制时,面板控件将被禁用,并显示“已被管理员锁定”工具提示,任何客户端写入都将被忽略。
| Env var | 锁定的“设置”面板控件 |
|---|---|
NBI_EXPLAIN_ERROR_POLICY | “解释单元格错误” |
NBI_OUTPUT_FOLLOWUP_POLICY | “询问电池输出” |
NBI_OUTPUT_TOOLBAR_POLICY | “显示输出工具栏” |
NBI_CLAUDE_MODE_POLICY | “启用克劳德模式” |
NBI_CLAUDE_CONTINUE_CONVERSATION_POLICY | “记住对话历史记录” |
NBI_CLAUDE_CODE_TOOLS_POLICY | “克劳德代码工具” |
NBI_CLAUDE_JUPYTER_UI_TOOLS_POLICY | “Jupyter UI工具” |
NBI_CLAUDE_SETTING_SOURCE_USER_POLICY | 设置来源:用户 |
NBI_CLAUDE_SETTING_SOURCE_PROJECT_POLICY | 设置来源:Project |
NBI_STORE_GITHUB_ACCESS_TOKEN_POLICY | “记住我的GitHub Copilot访问令牌” |
NBI_SKILLS_MANAGEMENT_POLICY | 技能选项卡(强制关闭将其隐藏,并403 API;还禁用管理技能调节器) |
NBI_CLAUDE_MCP_MANAGEMENT_POLICY | 克劳德模式MCP服务器选项卡(强制关闭会隐藏它和403 /claude-mcp/*;独立于非Claude MCP服务器选项卡) |
NBI_CLAUDE_PLUGINS_MANAGEMENT_POLICY | Claude模式插件选项卡(强制关闭会隐藏它和403 /plugins/*) |
前三个也有匹配的traitlets NotebookIntelligence (explain_error_policy, output_followup_policy, output_toolbar_policy);根据需要以相同的形状添加其他元素:
c.NotebookIntelligence.claude_mode_policy = "force-on"
c.NotebookIntelligence.claude_jupyter_ui_tools_policy = "force-off"每个用户的首选项(单元格输出功能的默认设置为打开)实时生效 config.json 作为 enable_explain_error, enable_output_followup, enable_output_toolbar.
值存在锁 对于非布尔值设置:将env-var设置为非空值会将控件固定为该值并禁用它。empty/uset=用户选择。
| Env var | 引脚 |
|---|---|
NBI_CHAT_MODEL_PROVIDER | 概述→ 聊天模式→ 供应商 |
NBI_CHAT_MODEL_ID | 概述→ 聊天模式→ 型号 |
NBI_INLINE_COMPLETION_MODEL_PROVIDER | 概述→ 自动完成模型→ 供应商 |
NBI_INLINE_COMPLETION_MODEL_ID | 概述→ 自动完成模型→ 型号 |
NBI_CLAUDE_CHAT_MODEL | 克劳德→ 聊天模式 |
NBI_CLAUDE_INLINE_COMPLETION_MODEL | 克劳德→ 自动完成模型 |
ANTHROPIC_API_KEY | 克劳德→ API密钥(输入为锁定+空白;SDK直接读取env) |
ANTHROPIC_BASE_URL | 克劳德→ 基本URL |
提供商ID: github-copilot, openai-compatible, litellm-compatible, ollama, noneThe *_MODEL_ID value是所选提供者公开的任何内容(例如。 gpt-4o, llama3:latest).Claude模型ID是来自Anthropic API的文字ID(例如。 claude-opus-4-7, claude-sonnet-4-6);空字符串=“默认(推荐)”; NBI_CLAUDE_INLINE_COMPLETION_MODEL 也接受 none (Claude模式下没有内联完成)或 inherit (使用“常规”选项卡“自动完成模型”)。
记住GitHub Copilot登录
NBI可以记住你的GitHub Copilot登录名,这样你就不必在JupyterLab或系统重启后再次登录。
\[!小心\] 如果启用此功能,NBI将加密令牌并将其存储在~/.jupyter/nbi/user-data.json。切勿共享此文件。除非您设置,否则加密将使用默认密码NBI_GH_ACCESS_TOKEN_PASSWORD设置自定义值--在共享或多租户系统上,在启用此选项之前设置自定义密码。
NBI_GH_ACCESS_TOKEN_PASSWORD=my_custom_password要启用,请检查 _记住我的GitHub Copilot访问令牌_ 在“设置”对话框中。
如果存储的令牌无法通过身份验证(过期、吊销、密码不匹配),NBI会提示您重新登录。
内置工具
这些工具在代理模式和启用MCP的聊天中可用。
| 工具 | 它做什么 |
|---|---|
笔记本编辑 (nbi-notebook-edit) | 通过JupyterLab笔记本编辑器编辑笔记本。 |
笔记本执行 (nbi-notebook-execute) | 在JupyterLab UI中运行笔记本。 |
Python文件编辑 (nbi-python-file-edit) | 通过JupyterLab文件编辑器编辑Python文件。 |
文件编辑 (nbi-file-edit) | 编辑Jupyter根目录中的文件。 |
文件读取 (nbi-file-read) | 读取Jupyter根目录中的文件。 |
命令执行 (nbi-command-execute) | 使用Agent UI中的嵌入式终端或JupyterLab终端执行shell命令。 |
在多租户部署中, nbi-command-execute 和 nbi-file-edit 作为用户有效地执行任意代码。看 docs/admin-guide.md 以获取禁用它们的指导。
模型上下文协议(MCP)支持
NBI与 主控程序 服务器。它支持stdio和Streamable HTTP传输。 支持MCP服务器工具;资源和提示尚不支持。
通过编辑添加MCP服务器 ~/.jupyter/nbi/mcp.json.一个全环境基础文件,位于 /share/jupyter/nbi/mcp.json 也得到了支持。
\[!注意\] MCP需要具有工具调用功能的LLM模型。NBI中的所有GitHub Copilot模型都支持这一点。对于其他提供者,选择一个支持工具调用的模型。
\[!小心\] 大多数MCP服务器与JupyterLab在同一台机器上运行,可以进行不可逆的更改或访问私有数据。仅安装来自可信来源的MCP服务器。
MCP配置示例
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/mbektas/mcp-test"
]
}
}
}对于stdio服务器,您可以在下面传递额外的环境变量 env:
"mcpServers": {
"servername": {
"command": "",
"args": [],
"env": {
"ENV_VAR_NAME": "ENV_VAR_VALUE"
}
}
}对于Streamable HTTP服务器,您还可以指定请求标头:
"mcpServers": {
"remoteservername": {
"url": "http://127.0.0.1:8080/mcp",
"headers": {
"Authorization": "Bearer mysecrettoken"
}
}
}要临时禁用已配置的服务器而不将其删除,请设置 "disabled": true:
"mcpServers": {
"servername2": {
"command": "",
"args": [],
"disabled": true
}
}规则集
NBI的规则集系统允许您定义自动注入AI提示的指导方针和最佳实践,以实现一致的编码标准、项目约定或领域知识。规则是中的markdown文件 ~/.jupyter/nbi/rules/ 并且可以按文件模式、内核、目录或聊天模式进行范围设置。
一个双线示例:
---
priority: 10
---
- Always use type hints in Python functions.
- Add docstrings to all public functions.有关完整详细信息(frontmatter参考、特定模式规则、自动重新加载),请参阅 docs/rulesets.md.
克劳德技能
启用克劳德模式后,设置面板将显示 技能 用于管理Claude可以调用的技能的选项卡。技能存储在 ~/.claude/skills/ (用户)或 /.claude/skills/ (项目)。您可以创建和编辑技能内联、复制、重命名、删除(撤消)或从公共GitHub仓库导入。
对于组织范围内的部署,NBI可以安装并保持一组精心策划的技能与指向的YAML清单同步 NBI_SKILLS_MANIFEST。管理技能在UI中是只读的,并按计划刷新。
有关完整详细信息,请参阅 docs/skills.md.
聊天反馈
通过设置对AI响应启用竖起大拇指/向下大拇指反馈:
c.NotebookIntelligence.enable_chat_feedback = True…或通过CLI:
jupyter lab --NotebookIntelligence.enable_chat_feedback=true反馈触发进程中 telemetry 活动。默认情况下,没有任何东西离开流程——请参阅 管理员指南 了解如何将其连接到您的可观察性堆栈中。
文档
docs/admin-guide.md--部署、环境变量、安全模型、气隙、多租户。docs/skills.md--克劳德技能管理和组织清单协调器。docs/rulesets.md--规则集前沿和发现。docs/troubleshooting.md--可粘贴复制修复的常见问题。PRIVACY.md--NBI向哪个提供商发送什么以及出口分配列表。SECURITY.md--如何报告漏洞。CHANGELOG.md--释放历史。CONTRIBUTING.md--从源头构建NBI。如果您只想使用NBI,请跳过此步骤。
延伸阅读
路线图
NBI 4.x是稳定的。新功能以次要版本发布(4.5、4.6、…);突破性的变化将保留给下一个主要版本(5.x),并将在 更新日志.
许可证
根据以下许可 GPL-3.0.
