Gradio-Lite: 完全在您的瀏覽器中運行的無伺服器 Gradio
Hugging Face 已宣布 Gradio-Lite (@gradio/lite),一個 JavaScript 庫,允許 Gradio 應用程式完全在使用者的網頁瀏覽器中運行。透過利用 Pyodide,一個 WebAssembly 的 Python 執行時期,@gradio/lite 移除了對伺服器端基礎設施的需求,使互動式機器學習應用程式能夠無伺服器部署。
技術架構與實作
@gradio/lite 使用 Pyodide 在瀏覽器環境中直接執行 Python 程式碼。此架構使開發者能夠編寫標準的 Python 程式碼來開發 Gradio 應用程式,並且在客戶端無縫渲染。
整合步驟
- 匯入資源:透過 CDN (例如 jsDelivr) 包含
@gradio/lite的 JavaScript 和 CSS 檔案。 - 定義容器:在 HTML 主體內建立
<gradio-lite>標籤,以指定應用程式應該渲染的位置。theme屬性(例如theme="dark")可用於覆寫系統主題。 - 編寫 Python 程式碼:將 Gradio Python 程式碼直接放置在
<gradio-lite>標籤內。
進階設定
@gradio/lite 支援超越單檔案腳本的複雜應用程式結構:
- 多檔案:
<gradio-file>標籤允許開發者定義多個檔案。應用程式的入口點必須標記為entrypoint屬性。 - 依賴管理:可以使用
micropip的包裝函式在瀏覽器中安裝自訂的 Python 依賴項。依賴項會使用標準的requirements.txt語法列在<gradio-requirements>標籤內。
基於瀏覽器執行的主要優點
在客戶端運行 Gradio 應用程式相較於傳統的伺服器基礎托管,提供三個主要優點:
- 無伺服器部署:它消除了對伺服器基礎設施的需求,降低了託管成本並簡化了共享過程。
- 低延遲:互動更快速,因為資料不需要在客戶端和伺服器之間傳輸,從而帶來更流暢的使用者體驗。
- 隱私與安全:所有資料處理都在使用者的設備上本地進行,確保使用者資料保持私密且安全。
目前限制
儘管無伺服器執行有其好處,但 @gradio/lite 仍有兩個主要限制:
- 初始載入時間:應用程式通常需要 5 到 15 秒才能初次載入,因為瀏覽器必須先下載並安裝 Pyodide 執行時期。
- 套件相容性:並非所有 Python 套件都受到支援。雖然像
numpy、scikit-learn和transformers-js這些熱門庫是相容的,但開發者必須確認他們特定的依賴項是否可在 Pyodide 中使用,或能透過micropip安裝。