跳至主要内容

🐍 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 文檔,以了解該環境的功能和限制。
  • 嘗試使用不同的函式庫和腳本,以探索 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. 分叉 Pyodide 存儲庫 以建立您的自定版本。
  2. 從 Pyodide 的現有套件列表中挑選新的套件,或探索 Open WebUI 目前缺少的高品質套件。
  3. 將新的套件集成到您的分叉存儲庫中,解鎖更多可能性。