跳到主要内容

🐍 Python 代码执行

概述

Open WebUI 支持在浏览器中客户端执行 Python 代码,通过 Pyodide 在聊天中的代码块内运行脚本。这一功能使得大型语言模型(LLMs)能够生成可以直接在浏览器中执行的 Python 脚本,并利用 Pyodide 支持的各种库。

为了保护用户隐私并提供灵活性,Open WebUI 镜像了 PyPI 包,避免直接进行外部网络请求。这种方法还允许在没有互联网连接的环境中使用 Pyodide。

Open WebUI 前端包含一个自包含的 WASM(WebAssembly)Python 环境,由 Pyodide 提供支持,可以执行 LLMs 生成的基本 Python 脚本。此环境设计得非常易于使用,无需额外设置或安装。

支持的库

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

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

这些库可用于执行各种任务,如数据处理、机器学习和网页抓取。如果你希望使用的包未包含在我们提供的 Pyodide 版本中,则无法使用该包。

调用 Python 代码执行

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

使用 Python 代码执行的技巧

  • 编写 Python 代码时,请记住代码将在 Pyodide 环境中执行。你可以在请求代码时提到“Pyodide 环境”来告知 LLM。
  • 查阅 Pyodide 文档以了解该环境的功能和限制。
  • 尝试不同的库和脚本,探索在 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 the Pyodide repository(分叉 Pyodide 仓库)以创建自己的版本。
  2. 选择新包,可以从现有的 Pyodide 包中选择,或者探索 Open WebUI 当前缺少的高质量包。
  3. 将新包集成到你分叉的仓库中,解锁更多可能性。