Skip to content

3️⃣ 介面設計(Interface)

🎯 Gradio Interface 基本介紹

Gradio 的核心功能之一是 gr.Interface(),它能讓你輕鬆建立 Web 介面,並支援多種輸入與輸出格式。

🔹 gr.Interface() 基本結構

gr.Interface(
    fn,        # 處理函式
    inputs,    # 使用者輸入類型
    outputs,   # 輸出結果類型
    title,     # (可選)應用標題
    description # (可選)應用描述
).launch()

關鍵參數說明:

  • fn:處理函式,定義應用的行為(例如數字計算、圖片處理等)。
  • inputs:定義輸入類型,如文字、數字、圖片等。
  • outputs:定義輸出類型,如文字、數字、圖片等。
  • title / description:可選參數,用於設定介面的標題與描述。

🎯 文字輸入與輸出

Gradio 支援基本的文字輸入與輸出,適用於簡單的聊天機器人或文字處理應用。

🔹 文字處理範例

import gradio as gr

def reverse_text(text):
    return text[::-1]

gr.Interface(fn=reverse_text, inputs="text", outputs="text", title="文字反轉應用").launch()

效果:使用者輸入 hello,Gradio 會輸出 olleh


🎯 數字輸入與計算應用

Gradio 可以處理數字輸入與數學運算。

🔹 計算平方範例

def square(num):
    return num ** 2

gr.Interface(fn=square, inputs="number", outputs="number", title="計算平方").launch()

效果:輸入 4,輸出 16


🎯 圖片處理應用

Gradio 內建圖片支援,適用於機器學習與影像處理。

🔹 圖片轉灰階

from PIL import Image

def process_image(img):
    return img.convert("L")  # 轉換為灰階

gr.Interface(fn=process_image, inputs="image", outputs="image", title="灰階圖片轉換").launch()

效果:使用者上傳圖片後,系統返回灰階版本。


🎯 多輸入與多輸出應用

Gradio 支援多種輸入輸出,適用於更複雜的應用。

🔹 計算 BMI(身體質量指數)

def bmi(weight, height):
    bmi_value = weight / (height ** 2)
    return f"你的 BMI 是 {bmi_value:.2f}"

gr.Interface(fn=bmi, inputs=["number", "number"], outputs="text", title="BMI 計算機").launch()

效果:輸入體重與身高,計算 BMI 值。


📌 總結

功能 語法
建立 Interface gr.Interface(fn, inputs, outputs).launch()
文字處理 inputs="text"outputs="text"
數字計算 inputs="number"outputs="number"
圖片處理 inputs="image"outputs="image"
多輸入/多輸出 inputs=["number", "number"]

🚀 現在你已經學會如何設計 Gradio 介面,接下來我們將學習更進階的 Blocks API,來建立更靈活的 UI! 😊