Gradio-Lite: 完全在您的瀏覽器中運行的無伺服器 Gradio

Hugging Face 已宣布 Gradio-Lite (@gradio/lite),一個 JavaScript 庫,允許 Gradio 應用程式完全在使用者的網頁瀏覽器中運行。透過利用 Pyodide,一個 WebAssembly 的 Python 執行時期,@gradio/lite 移除了對伺服器端基礎設施的需求,使互動式機器學習應用程式能夠無伺服器部署。

技術架構與實作

@gradio/lite 使用 Pyodide 在瀏覽器環境中直接執行 Python 程式碼。此架構使開發者能夠編寫標準的 Python 程式碼來開發 Gradio 應用程式,並且在客戶端無縫渲染。

整合步驟

  1. 匯入資源:透過 CDN (例如 jsDelivr) 包含 @gradio/lite 的 JavaScript 和 CSS 檔案。
  2. 定義容器:在 HTML 主體內建立 <gradio-lite> 標籤,以指定應用程式應該渲染的位置。theme 屬性(例如 theme="dark")可用於覆寫系統主題。
  3. 編寫 Python 程式碼:將 Gradio Python 程式碼直接放置在 <gradio-lite> 標籤內。

進階設定

@gradio/lite 支援超越單檔案腳本的複雜應用程式結構:

  • 多檔案<gradio-file> 標籤允許開發者定義多個檔案。應用程式的入口點必須標記為 entrypoint 屬性。
  • 依賴管理:可以使用 micropip 的包裝函式在瀏覽器中安裝自訂的 Python 依賴項。依賴項會使用標準的 requirements.txt 語法列在 <gradio-requirements> 標籤內。

基於瀏覽器執行的主要優點

在客戶端運行 Gradio 應用程式相較於傳統的伺服器基礎托管,提供三個主要優點:

  • 無伺服器部署:它消除了對伺服器基礎設施的需求,降低了託管成本並簡化了共享過程。
  • 低延遲:互動更快速,因為資料不需要在客戶端和伺服器之間傳輸,從而帶來更流暢的使用者體驗。
  • 隱私與安全:所有資料處理都在使用者的設備上本地進行,確保使用者資料保持私密且安全。

目前限制

儘管無伺服器執行有其好處,但 @gradio/lite 仍有兩個主要限制:

  • 初始載入時間:應用程式通常需要 5 到 15 秒才能初次載入,因為瀏覽器必須先下載並安裝 Pyodide 執行時期。
  • 套件相容性:並非所有 Python 套件都受到支援。雖然像 numpyscikit-learntransformers-js 這些熱門庫是相容的,但開發者必須確認他們特定的依賴項是否可在 Pyodide 中使用,或能透過 micropip 安裝。

Sources