跳到主要内容

🐍 Python 代码执行

概述

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

为了维护用户隐私和灵活性,Open WebUI 镜像了 PyPI 包,避免了直接的外部网络请求。这种方法还支持在没有互联网访问的环境中使用 Pyodide。

Open WebUI 前端包含一个由 Pyodide 提供支持的、自包含的 WASM (WebAssembly) Python 环境,该环境可以执行由 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 文档以了解该环境的功能和限制。
  • 尝试不同的库和脚本,探索 Open WebUI 中 Python 代码执行的可能性。

Pyodide 文档

代码示例

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

import pandas as pd

# Create a sample DataFrame
data = {'Name': ['John', 'Anna', 'Peter'],
'Age': [28, 24, 35]}
df = pd.DataFrame(data)

# Print the DataFrame
print(df)

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

扩展支持的库列表

想突破现有界限吗?要扩展支持的库列表,请遵循以下步骤:

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