本教程是社区贡献,不受 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 容器,这也应该有效。
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 up -d
您现在应该能够通过以下 URL 访问两个服务:
服务 | URL |
---|---|
Open-WebUI | http://localhost:3000 |
Jupyter | http://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_INTERPRETER | True |
CODE_EXECUTION_ENGINE | jupyter |
CODE_EXECUTION_JUPYTER_URL | http://host.docker.internal:8888 |
CODE_EXECUTION_JUPYTER_AUTH | token |
CODE_EXECUTION_JUPYTER_AUTH_TOKEN | 123456 |
CODE_EXECUTION_JUPYTER_TIMEOUT | 60 |
CODE_INTERPRETER_ENGINE | jupyter |
CODE_INTERPRETER_JUPYTER_URL | http://host.docker.internal:8888 |
CODE_INTERPRETER_JUPYTER_AUTH | token |
CODE_INTERPRETER_JUPYTER_AUTH_TOKEN | 123456 |
CODE_INTERPRETER_JUPYTER_TIMEOUT | 60 |
步骤 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?如果是,请联系我们。我很想听听您如何使用它,这样我就可以继续向本教程添加您使用此功能的 其他出色方式的示例!