Skip to main content
warning

本教程是社区贡献,不受 Open WebUI 团队支持。它仅作为如何为您的特定用例自定义 Open WebUI 的演示。想要贡献?查看贡献教程。

[!WARNING] 本文档基于当前版本 (0.5.16) 创建,并持续更新中。

Jupyter Notebook 集成

从 v0.5.11 开始,Open-WebUI 发布了一个名为 代码解释器中的 Jupyter Notebook 支持 的新功能。此功能允许您将 Open-WebUI 与 Jupyter 集成。在后续版本中已经对此功能进行了几项改进,因此请仔细查看发布说明。

本教程将引导您了解设置两个服务之间连接的基础知识。

什么是 Jupyter Notebooks

Jupyter Notebook 是一个开源 Web 应用程序,允许用户创建和共享包含实时代码、方程式、可视化和叙述性文本的文档。它在数据科学、科学计算和教育中特别受欢迎,因为它使用户能够在一个文档中结合可执行代码(Python、R 或 Julia 等语言)与解释性文本、图像和交互式可视化。Jupyter Notebooks 对于数据分析和探索特别有用,因为它们允许用户以小的、可管理的块执行代码,同时记录他们的思考过程和发现。这种格式使得实验、调试代码以及创建全面的、可共享的报告变得容易,这些报告既展示了分析过程又展示了结果。

有关更多信息,请访问 Jupyter 网站:Project Jupyter

步骤 0:配置摘要

以下是我们将通过本教程设置的目标配置。

代码执行配置

步骤 1:启动 OUI 和 Jupyter

为了实现这一点,我使用 docker-compose 启动了一个包含两个服务以及我的 LLMs 的堆栈,但如果分别运行每个 docker 容器,这也应该有效。

docker-compose.yml
version: "3.8"

services:
open-webui:
image: ghcr.io/open-webui/open-webui:latest
container_name: open-webui
ports:
- "3000:8080"
volumes:
- open-webui:/app/backend/data

jupyter:
image: jupyter/minimal-notebook:latest
container_name: jupyter-notebook
ports:
- "8888:8888"
volumes:
- jupyter_data:/home/jovyan/work
environment:
- JUPYTER_ENABLE_LAB=yes
- JUPYTER_TOKEN=123456

volumes:
open-webui:
jupyter_data:

您可以通过在保存 docker-compose 文件的目录中运行以下命令来启动上述堆栈:

运行 docker-compose
docker-compose up -d

您现在应该能够通过以下 URL 访问两个服务:

服务URL
Open-WebUIhttp://localhost:3000
Jupyterhttp://localhost:8888

访问 Jupyter 服务时,您需要上面定义的 JUPYTER_TOKEN。在本教程中,我选择了一个虚拟令牌值 123456

代码执行配置

步骤 2:为 Jupyter 配置代码执行

现在我们已经运行了 Open-WebUI 和 Jupyter,我们需要在管理面板 -> 设置 -> 代码执行下配置 Open-WebUI 的代码执行以使用 Jupyter。由于 Open-WebUI 不断发布和改进此功能,我建议始终查看 configs.py 文件 中可能的配置以获取最新和最好的功能。截至 v0.5.16,这包括以下内容:

Open-WebUI 环境变量
ENABLE_CODE_INTERPRETERTrue
CODE_EXECUTION_ENGINEjupyter
CODE_EXECUTION_JUPYTER_URLhttp://host.docker.internal:8888
CODE_EXECUTION_JUPYTER_AUTHtoken
CODE_EXECUTION_JUPYTER_AUTH_TOKEN123456
CODE_EXECUTION_JUPYTER_TIMEOUT60
CODE_INTERPRETER_ENGINEjupyter
CODE_INTERPRETER_JUPYTER_URLhttp://host.docker.internal:8888
CODE_INTERPRETER_JUPYTER_AUTHtoken
CODE_INTERPRETER_JUPYTER_AUTH_TOKEN123456
CODE_INTERPRETER_JUPYTER_TIMEOUT60

步骤 3:测试连接

首先,让我们确认 Jupyter 目录中有什么。如下图所示,我们只有一个空的 work 文件夹。

代码执行配置

创建 CSV

让我们运行第一个提示。确保您已选择 代码执行 按钮。

提示:使用假数据创建两个 CSV 文件。第一个 CSV 应该使用原生 python 创建,第二个 CSV 应该使用 pandas 库创建。将 CSV 命名为 data1.csv 和 data2.csv

代码执行配置

我们可以看到 CSV 已创建,现在可以在 Jupyter 中访问。

代码执行配置

创建可视化

让我们运行第二个提示。同样,确保您已选择 代码执行 按钮。

提示:使用 matplotlib 和 seaborn 在 python 中创建几个可视化并将它们保存到 jupyter

代码执行配置

我们可以看到可视化已创建,现在可以在 Jupyter 中访问。

代码执行配置

创建笔记本

让我们一起运行最后一个提示。在这个提示中,我们将仅使用提示创建一个全新的笔记本。

提示:编写 python 代码来读取和写入 json 文件,并将其保存到我名为 notebook.ipynb 的笔记本中

代码执行配置

我们可以看到可视化已创建,现在可以在 Jupyter 中访问。

代码执行配置

关于工作流程的注意事项

在测试此功能时,我多次注意到 Open-WebUI 不会自动将在 Open-WebUI 中生成的代码或输出保存到我的 Jupyter 实例中。为了强制输出我创建的文件/项目,我经常遵循这个两步工作流程,首先创建我想要的代码工件,然后要求它将其保存到我的 Jupyter 实例中。

代码执行配置

您如何使用此功能?

您是否正在使用代码执行功能和/或 Jupyter?如果是,请联系我们。我很想听听您如何使用它,这样我就可以继续向本教程添加您使用此功能的其他出色方式的示例!