Skip to main content

🐍 Python 代码执行

概览​

Open WebUI 支持在浏览器中进行客户端 Python 代码执行。它利用 Pyodide 在聊天界面的代码块中运行脚本。此功能使大语言模型(LLM)能够生成 Python 脚本,并利用 Pyodide 支持的一系列库直接在浏览器中执行。

为了保护用户隐私并提高灵活性,Open WebUI 镜像了 PyPI 软件包,避免了直接的外部网络请求。这种方法还使得在没有互联网访问的环境中也能使用 Pyodide。

Open WebUI 前端包含一个自包含的 WASM(WebAssembly)Python 环境,由 Pyodide 提供支持,可以执行 LLM 生成的基础 Python 脚本。该环境旨在易于使用,无需任何额外的设置或安装。

支持的库​

Pyodide 代码执行被配置为仅加载在 scripts/prepare-pyodide.js 中配置并添加到 CodeBlock.svelte 中的包。Open WebUI 当前支持以下 Pyodide 包:

  • micropip
  • packaging
  • requests
  • beautifulsoup4
  • numpy
  • pandas
  • matplotlib
  • scikit-learn
  • scipy
  • regex

这些库可用于执行各种任务,如数据处理、机器学习和网页抓取。如果您想运行的包没有包含在 Open WebUI 附带的 Pyodide 中,则该包将无法使用。

调用 Python 代码执行​

要执行 Python 代码,只需在聊天中要求 LLM 为您编写 Python 脚本。一旦 LLM 生成了代码,代码块的右上角就会出现一个 运行 (Run) 按钮。点击此按钮将使用 Pyodide 执行代码。为了在代码块底部显示结果,请确保代码中至少包含一个 print 语句。

Python 代码执行使用技巧​

  • 在编写 Python 代码时,请记住代码将在 Pyodide 环境中执行。您可以在请求代码时通过提及“Pyodide 环境”来告知 LLM。
  • 研究 Pyodide 文档 以了解该环境的功能 and 限制。
  • 尝试使用不同的库和脚本,探索 Open WebUI 中 Python 代码执行的可能性。

Pyodide 文档​

代码示例​

这是一个可以使用 Pyodide 执行的简单 Python 脚本示例:

import pandas as pd

# 创建一个示例 DataFrame
data = {'Name': ['John', 'Anna', 'Peter'],
'Age': [28, 24, 35]}
df = pd.DataFrame(data)

# 打印 DataFrame
print(df)

此脚本将使用 pandas 创建一个示例 DataFrame,并将其打印在聊天代码块下方。

扩展支持的库列表​

想要挑战更多可能性?要扩展支持的库列表,请遵循以下步骤:

  1. Fork Pyodide 仓库 以创建您自己的版本。
  2. 从 Pyodide 现有的包列表中选择新包,或者探索 Open WebUI 当前缺失的高质量包。
  3. 将新包集成到您 fork 的仓库中,以解锁更多可能性。