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! 😊