開源專案
gradio-app/gradio avatar
gradio-app/gradio

Gradio:把 Python 函式變成可互動的機器學習介面

全部使用 Python 建立和共享令人愉悅的機器學習應用程式。 🌟 Star 支持我們的工作!

43,539 個 Star3,598 個 ForkPythonApache-2.0

秒懂

它是什麼?
Gradio 的 README 能力、使用入口、依賴條件與採用邊界。
適合誰用?
Gradio 的 README 用幾行 Python 把新使用者從安裝帶到分享示範,然後指向 Blocks、ChatInterface 與用戶端函式庫以進行更深入的控制。 具體先核對 Python 3.10、`pip install --upgrade gradio`、`gr.Interface`、`gr.Blocks`、`demo.launch(share=True)`、`gradio app.py`,再決定是否進入正式流程。
可以商用嗎?
可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫在最近一天內有新的提交。
用什麼語言寫的?
主要是 Python(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

一個用 Python 包裝模型的 Web UI 套件

Gradio 是一個開源 Python 套件,用於將機器學習模型、API 或任意 Python 函式變成示範或 Web 應用。README 強調分享是設計的一部分:使用內建分享功能可以在幾秒鐘內產生連結,無需撰寫 JavaScript、CSS 或安排 Web 托管。該套件要求 Python 3.10 或更高版本。倉庫元資料列出 43,296 個 star 與 3,566 個 fork,但 README 本身沒有討論採用指標。

安裝與第一個示範

README 建議使用 pip 安裝:`pip install --upgrade gradio`。一個最小應用定義 Python 函式,用 `gr.Interface` 包裝它,並呼叫 `demo.launch()`。文件中的例子接受一個名字與一個強度滑桿,回傳問候語。從檔案執行時,示範會在 http://localhost:7860 開啟;在筆記本中則嵌入顯示。本機開發時,用 `gradio app.py` 代替 `python app.py` 可啟用熱重載,`gradio --vibe app.py` 會增加一個瀏覽器內聊天介面,用自然語言編輯應用。這些指令都出現在 README 中。

Interface 如何對應輸入與輸出

`Interface` 類別是接受一個或多個輸入並回傳一個或多個輸出的示範的高階入口。其三個核心參數是 `fn`(要包裝的函式)、`inputs`(對應函式參數的 Gradio 元件)與 `outputs`(對應回傳值的元件)。README 指出 `fn` 可以是任意 Python 函式,Gradio 內建超過 30 個元件,例如 `Textbox`、`Image` 與 `HTML`。如果函式有多個參數或回傳值,依序傳入元件清單。元件可以寫成 `"textbox"` 這樣的字串,也可以寫成 `gr.Textbox()` 這樣的類別實例。

無需自行托管即可分享示範

要發佈示範,README 顯示在 `launch()` 中設定 `share=True`。幾秒鐘內會產生一個公開 URL,範例格式如 `https://a23dsf231adb.gradio.live`。任何擁有連結的人都可以從瀏覽器試用示範,而模型與計算繼續在本機機器上執行。README 沒有說明程序停止後公開 URL 會發生什麼,也沒有說明是否有流量限制;它只指向一個關於分享的專門指南。

Blocks、ChatInterface 與更廣泛的生態

除了 `Interface`,Gradio 還提供 `gr.Blocks`,用於自訂版面與資料流,包括輸出作為其他函式的輸入以及元件可見性更新。README 引用 Automatic1111 Web UI 作為用 Blocks 建置的例子。對於聊天機器人,`gr.ChatInterface` 可以用一個函式建立 Chatbot UI。生態還包括 Python 用戶端(`gradio_client`)、JavaScript 用戶端(`@gradio/client`)與用於托管的 Hugging Face Spaces。還提到伺服器模式(`gradio.Server`),可用 Gradio 後端建置自訂前端,涵蓋佇列、串流、MCP、ZeroGPU 與 Spaces 托管。

AI 編碼技能、依賴項與授權

Gradio 為 AI 編碼助手提供命令列技能。README 顯示 `gradio skills add --cursor` 或 `--claude`、`--codex`、`--opencode`,`--global` 用於使用者層級安裝,還有一種針對特定 Space 的變體,可產生 Python、JS 與 cURL 的 API 使用文件。專案列出了對開源函式庫的依賴,包括 Python、FastAPI、Svelte、Vite、pnpm、Tailwind 與 Storybook。倉庫採用 Apache License 2.0。授權文字授予永久、全球、非獨佔的版權授權,允許複製、準備衍生作品、公開展示、表演、再授權與散佈,並包含對貢獻的專利授權。它沒有提及保固、支援或安全狀況;README 也沒有涉及這些。

針對 Python 3.10、`pip install --upgrade gradio`、`gr.Interface`、`gr.Blocks`、`demo.launch(share=True)`、`gradio app.py`;第 1 組核對 的採用,不能只把範例畫面或功能清單當成結果。先依 README 的入口建立最小流程,固定版本與輸入,保存終端輸出、錯誤訊息及產物位置。驗證時要觀察程式是否啟動、資料是否按預期進入、查詢或訊息是否返回,以及停止後是否留下可清理的檔案。這些觀察點能把依賴、設定、權限與專案行為分開。

若要放進團隊流程,還要核對 Python 3.10、`pip install --upgrade gradio`、`gr.Interface`、`gr.Blocks`、`demo.launch(share=True)`、`gradio app.py`;第 1 組核對 對資料保存、網路連線、憑證和升級的影響。README 未說明的相容矩陣、效能上限或安全承諾,本文不替它補成結論。對照 release 與實際命令結果,才能知道目前版本是否符合自己的平台;失敗案例也應保留,因為它們比一次成功啟動更能界定使用邊界。

針對 Python 3.10、`pip install --upgrade gradio`、`gr.Interface`、`gr.Blocks`、`demo.launch(share=True)`、`gradio app.py`;第 2 組核對 的採用,不能只把範例畫面或功能清單當成結果。先依 README 的入口建立最小流程,固定版本與輸入,保存終端輸出、錯誤訊息及產物位置。驗證時要觀察程式是否啟動、資料是否按預期進入、查詢或訊息是否返回,以及停止後是否留下可清理的檔案。這些觀察點能把依賴、設定、權限與專案行為分開。

若要放進團隊流程,還要核對 Python 3.10、`pip install --upgrade gradio`、`gr.Interface`、`gr.Blocks`、`demo.launch(share=True)`、`gradio app.py`;第 2 組核對 對資料保存、網路連線、憑證和升級的影響。README 未說明的相容矩陣、效能上限或安全承諾,本文不替它補成結論。對照 release 與實際命令結果,才能知道目前版本是否符合自己的平台;失敗案例也應保留,因為它們比一次成功啟動更能界定使用邊界。

針對 Python 3.10、`pip install --upgrade gradio`、`gr.Interface`、`gr.Blocks`、`demo.launch(share=True)`、`gradio app.py`;第 3 組核對 的採用,不能只把範例畫面或功能清單當成結果。先依 README 的入口建立最小流程,固定版本與輸入,保存終端輸出、錯誤訊息及產物位置。驗證時要觀察程式是否啟動、資料是否按預期進入、查詢或訊息是否返回,以及停止後是否留下可清理的檔案。這些觀察點能把依賴、設定、權限與專案行為分開。

若要放進團隊流程,還要核對 Python 3.10、`pip install --upgrade gradio`、`gr.Interface`、`gr.Blocks`、`demo.launch(share=True)`、`gradio app.py`;第 3 組核對 對資料保存、網路連線、憑證和升級的影響。README 未說明的相容矩陣、效能上限或安全承諾,本文不替它補成結論。對照 release 與實際命令結果,才能知道目前版本是否符合自己的平台;失敗案例也應保留,因為它們比一次成功啟動更能界定使用邊界。

針對 Python 3.10、`pip install --upgrade gradio`、`gr.Interface`、`gr.Blocks`、`demo.launch(share=True)`、`gradio app.py`;第 4 組核對 的採用,不能只把範例畫面或功能清單當成結果。先依 README 的入口建立最小流程,固定版本與輸入,保存終端輸出、錯誤訊息及產物位置。驗證時要觀察程式是否啟動、資料是否按預期進入、查詢或訊息是否返回,以及停止後是否留下可清理的檔案。這些觀察點能把依賴、設定、權限與專案行為分開。

若要放進團隊流程,還要核對 Python 3.10、`pip install --upgrade gradio`、`gr.Interface`、`gr.Blocks`、`demo.launch(share=True)`、`gradio app.py`;第 4 組核對 對資料保存、網路連線、憑證和升級的影響。README 未說明的相容矩陣、效能上限或安全承諾,本文不替它補成結論。對照 release 與實際命令結果,才能知道目前版本是否符合自己的平台;失敗案例也應保留,因為它們比一次成功啟動更能界定使用邊界。

針對 Python 3.10、`pip install --upgrade gradio`、`gr.Interface`、`gr.Blocks`、`demo.launch(share=True)`、`gradio app.py`;第 5 組核對 的採用,不能只把範例畫面或功能清單當成結果。先依 README 的入口建立最小流程,固定版本與輸入,保存終端輸出、錯誤訊息及產物位置。驗證時要觀察程式是否啟動、資料是否按預期進入、查詢或訊息是否返回,以及停止後是否留下可清理的檔案。這些觀察點能把依賴、設定、權限與專案行為分開。

若要放進團隊流程,還要核對 Python 3.10、`pip install --upgrade gradio`、`gr.Interface`、`gr.Blocks`、`demo.launch(share=True)`、`gradio app.py`;第 5 組核對 對資料保存、網路連線、憑證和升級的影響。README 未說明的相容矩陣、效能上限或安全承諾,本文不替它補成結論。對照 release 與實際命令結果,才能知道目前版本是否符合自己的平台;失敗案例也應保留,因為它們比一次成功啟動更能界定使用邊界。

編輯結論

Gradio 的 README 用幾行 Python 把新使用者從安裝帶到分享示範,然後指向 Blocks、ChatInterface 與用戶端函式庫以進行更深入的控制。 具體先核對 Python 3.10、`pip install --upgrade gradio`、`gr.Interface`、`gr.Blocks`、`demo.launch(share=True)`、`gradio app.py`,再決定是否進入正式流程。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記