Skip to content

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

gradio

🔹 上傳至 Hugging Face Spaces

  1. 建立 Hugging Face 帳號
  2. 建立新 Space,選擇 Gradio 應用
  3. 上傳 app.pyrequirements.txt
  4. 部署後,即可獲得永久網址!

適合長期公開應用,不需要伺服器維護


🎯 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 部署方式

  1. Render 建立新 Web Service
  2. 選擇 Python 應用,連結 GitHub Repo
  3. Start Command 欄位輸入:
    python app.py
    
  4. 部署後,Render 會提供一個固定網址!

適合免費長期運行,方便用戶訪問。


📌 總結

方式 適合對象 優勢
share=True 個人測試 簡單快速,無需額外設定
Hugging Face Spaces 開源應用 免費、易於分享,可長期存活
Flask / FastAPI 整合 需要後端 API 支援資料庫與使用者驗證
Vercel / Render 長期公開應用 提供固定網址,適合正式應用

🚀 現在你已經學會如何部署 Gradio 應用,趕快應用到你的專案上吧! 😊