6️⃣ 部署與分享
🎯 為什麼要部署 Gradio 應用?
Gradio 讓我們輕鬆建立 AI 應用,但如果要 讓更多人使用,我們需要將應用部署到網路上。
🔹 部署 Gradio 的方式
✅ 內建分享功能(share=True
)
✅ Hugging Face Spaces(適合開源應用)
✅ Flask / FastAPI 整合(適合自訂部署)
✅ 雲端平台(如 Google Cloud, AWS, Vercel, Render)
🎯 1. 使用 share=True
快速分享
如果你只是想快速讓其他人測試你的 Gradio 應用,launch(share=True)
是最簡單的方法。
🔹 直接產生公開網址
import gradio as gr
def greet(name):
return f"Hello, {name}!"
gr.Interface(fn=greet, inputs="text", outputs="text").launch(share=True)
✅ 執行後會產生一個網址(如 https://1234.gradio.app
),可以分享給任何人。
⚠️ 限制:這種方式適合 短期測試,網址可能在 72 小時後失效。
🎯 2. 部署到 Hugging Face Spaces
Hugging Face Spaces 提供 免費 Gradio 部署,適合開源 AI 專案。
🔹 建立 app.py
import gradio as gr
def greet(name):
return f"Hello, {name}!"
demo = gr.Interface(fn=greet, inputs="text", outputs="text")
demo.launch()
🔹 建立 requirements.txt
🔹 上傳至 Hugging Face Spaces
- 建立 Hugging Face 帳號
- 建立新 Space,選擇 Gradio 應用
- 上傳
app.py
和requirements.txt
- 部署後,即可獲得永久網址!
✅ 適合長期公開應用,不需要伺服器維護
🎯 3. 整合 Flask / FastAPI
如果需要更進階的 API 或後端整合,可以用 Flask 或 FastAPI。
🔹 Flask 整合範例
from flask import Flask
import gradio as gr
app = Flask(__name__)
def greet(name):
return f"Hello, {name}!"
gui = gr.Interface(fn=greet, inputs="text", outputs="text")
@app.route('/')
def gradio_app():
return gui.launch(server_name="0.0.0.0", server_port=7860, share=False)
if __name__ == "__main__":
app.run()
✅ 適合需要後端 API 支援的應用,如資料庫操作或身份驗證。
🎯 4. 使用 Vercel / Render 部署
如果想讓 Gradio 應用有獨立網址,可以使用 Vercel 或 Render。
🔹 Render 部署方式
- 在 Render 建立新 Web Service
- 選擇 Python 應用,連結 GitHub Repo
- 在 Start Command 欄位輸入:
- 部署後,Render 會提供一個固定網址!
✅ 適合免費長期運行,方便用戶訪問。
📌 總結
方式 | 適合對象 | 優勢 |
---|---|---|
share=True | 個人測試 | 簡單快速,無需額外設定 |
Hugging Face Spaces | 開源應用 | 免費、易於分享,可長期存活 |
Flask / FastAPI 整合 | 需要後端 API | 支援資料庫與使用者驗證 |
Vercel / Render | 長期公開應用 | 提供固定網址,適合正式應用 |
🚀 現在你已經學會如何部署 Gradio 應用,趕快應用到你的專案上吧! 😊