第二部:《深度學習》96/100 📌用 Flask/Gradio 做模型 API 📡 把你的 AI 變成雲端服務!

更新 發佈閱讀 8 分鐘

AI時代系列(2) 機器學習三部曲: 🔹 第二部:《深度學習 —— 神經網路的革命》

96/100 第十週:📌 部署、壓縮與邊緣 AI 應用(Edge AI & Deployment)📦

96.用 Flask/Gradio 做模型 API 📡 把你的 AI 變成雲端服務!

_______________________________________

🔧 為什麼要做 API?

一個模型如果只能在本機執行,就像金子埋在地底下。你需要一個方式讓別人能「呼叫」它,這就需要用到「API」或「介面平台」。

Flask API:讓你用 HTTP POST/GET 傳輸資料,適合與 App、網站、IoT 串接。

Gradio UI:快速打造一個互動網頁,讓用戶上傳資料、看到模型結果。

________________________________________

🧱 第一步:準備好你的 AI 模型

這裡以一個簡單的 sklearn 類別分類模型為例(可換成你自己的模型):

python

# model_train.py

from sklearn.datasets import load_iris

from sklearn.linear_model import LogisticRegression

import joblib

X, y = load_iris(return_X_y=True)

clf = LogisticRegression()

clf.fit(X, y)

joblib.dump(clf, "iris_model.pkl")

這段程式碼是用來訓練並儲存 Iris 花朵分類模型的腳本。它使用 scikit-learn 內建的 Iris 資料集,以 LogisticRegression 模型進行訓練,學習如何根據花萼與花瓣的長寬來分類花的品種。訓練完成後,透過 joblib.dump() 將模型儲存成檔案 iris_model.pkl,方便後續在 Gradio 或 Flask 的應用中直接載入使用,無需重複訓練。這是一個典型的機器學習訓練→部署流程中的「模型建立與保存」步驟。

________________________________________

🚀 第二步:用 Flask 建立 API

python

# flask_api.py

from flask import Flask, request, jsonify

import joblib

import numpy as np

app = Flask(__name__)

model = joblib.load("iris_model.pkl")

@app.route('/predict', methods=['POST'])

def predict():

data = request.get_json(force=True)

input_data = np.array(data['input']).reshape(1, -1)

prediction = model.predict(input_data)

return jsonify({'prediction': int(prediction[0])})

if __name__ == '__main__':

app.run(port=5000)

使用方式:

curl -X POST http://localhost:5000/predict -H "Content-Type: application/json" -d '{"input": [5.1, 3.5, 1.4, 0.2]}'

這段程式碼使用 Flask 建立一個簡易的 RESTful API,讓你可以透過 POST 請求對訓練好的 iris_model.pkl 進行預測。API 的 /predict 路徑接收 JSON 格式的輸入,包含 4 個特徵(花萼長度、花萼寬度、花瓣長度、花瓣寬度),並將其轉換為 NumPy 陣列,餵給模型預測分類結果。

________________________________________

🖼 第三步:用 Gradio 打造互動網頁

python

# gradio_ui.py

import gradio as gr

import joblib

import numpy as np

model = joblib.load("iris_model.pkl")

def predict_species(sepal_length, sepal_width, petal_length, petal_width):

input_data = np.array([[sepal_length, sepal_width, petal_length, petal_width]])

prediction = model.predict(input_data)

return f"預測結果:第 {prediction[0]} 類"

interface = gr.Interface(

fn=predict_species,

inputs=[

gr.Number(label="花萼長度"),

gr.Number(label="花萼寬度"),

gr.Number(label="花瓣長度"),

gr.Number(label="花瓣寬度"),

],

outputs="text",

title="Iris 花朵分類模型",

description="輸入花朵的 4 項特徵,預測其所屬種類"

)

interface.launch()

執行方式:

python gradio_ui.py

將會自動開啟瀏覽器頁面。

這段程式碼利用 Gradio 快速打造出一個互動式網頁介面,讓使用者只需輸入 花萼長度、花萼寬度、花瓣長度、花瓣寬度,就能透過事先訓練好的 iris_model.pkl 模型進行分類預測。執行 python gradio_ui.py 後,Gradio 會自動啟動本地伺服器並在瀏覽器中開啟網頁,呈現一個簡單易用的輸入介面,讓模型部署與測試變得直觀而高效,適合快速原型開發與模型展示。

________________________________________

🧠 延伸思考與應用

✅ 可結合 Streamlit、FastAPI、Docker 擴充服務。

✅ 可部署到雲端(如 Heroku、Railway、AWS EC2)。

✅ 可加入 JWT 驗證、上傳圖片、語音、CSV 檔案等功能。

________________________________________

🎓 結語

無論是用 Flask 打造後端 API,或是用 Gradio 製作直觀介面,都能讓你的 AI 模型從本地跑測試,躍升為真正的「雲端智慧服務」!記住,模型不是開發的終點,而是應用的起點。


留言
avatar-img
留言分享你的想法!
avatar-img
Hansen W的沙龍
16會員
391內容數
AIHANS沙龍是一個結合AI技術實戰、產業策略與自我成長的知識平台,主題涵蓋機器學習、生成式AI、創業經驗、財務規劃及哲學思辨。這裡不只提供系統化學習資源與實作案例,更強調理性思維與行動力的結合。無論你是AI初學者、創業者,還是追求人生升維的行者,都能在這裡找到前進的方向與志同道合的夥伴。
Hansen W的沙龍的其他內容
2025/09/22
模型壓縮需在成本、效能與精度間取平衡。常用技術有量化、剪枝、蒸餾與輕量架構。評估指標包括 FLOPs、參數量、模型大小與延遲。Edge AI 更重視低 FLOPs,以確保即時性與低能耗。
2025/09/22
模型壓縮需在成本、效能與精度間取平衡。常用技術有量化、剪枝、蒸餾與輕量架構。評估指標包括 FLOPs、參數量、模型大小與延遲。Edge AI 更重視低 FLOPs,以確保即時性與低能耗。
2025/09/22
Edge AI 將模型部署於裝置端,具即時性、低功耗與隱私保護優勢。IoT 應用涵蓋智慧製造、車載、家電與醫療。部署需量化、剪枝與輕量架構,工具如 TFLite、Edge Impulse、Jetson、TinyML。
2025/09/22
Edge AI 將模型部署於裝置端,具即時性、低功耗與隱私保護優勢。IoT 應用涵蓋智慧製造、車載、家電與醫療。部署需量化、剪枝與輕量架構,工具如 TFLite、Edge Impulse、Jetson、TinyML。
2025/09/22
量化將浮點轉整數,降低模型大小與能耗;剪枝移除不重要權重,減少運算量。兩者結合能顯著壓縮模型並加速推論,適合邊緣與行動部署,同時透過 QAT、混合精度維持準確率。
2025/09/22
量化將浮點轉整數,降低模型大小與能耗;剪枝移除不重要權重,減少運算量。兩者結合能顯著壓縮模型並加速推論,適合邊緣與行動部署,同時透過 QAT、混合精度維持準確率。
看更多
你可能也想看
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
本文介紹了人工智慧(AI)及機器學習(ML)的基本概念和關係,探討了數據在機器學習中的重要性,以及深度學習和生成式人工智慧的應用。
Thumbnail
本文介紹了人工智慧(AI)及機器學習(ML)的基本概念和關係,探討了數據在機器學習中的重要性,以及深度學習和生成式人工智慧的應用。
Thumbnail
本文要探討AI的任務與實戰場景。AI技術已深入生活各層面,從違約預測到都市交通管理。AI任務主要有三類:數值型資料處理、自然語言處理(NLP)和電腦影像辨識。時間序列資料和強化學習方法(如AlphaGo)也引起廣泛關注。AI演算法和方法因應不同學派和技術發展而多樣化,了解這些基礎有助選擇適合研究方向
Thumbnail
本文要探討AI的任務與實戰場景。AI技術已深入生活各層面,從違約預測到都市交通管理。AI任務主要有三類:數值型資料處理、自然語言處理(NLP)和電腦影像辨識。時間序列資料和強化學習方法(如AlphaGo)也引起廣泛關注。AI演算法和方法因應不同學派和技術發展而多樣化,了解這些基礎有助選擇適合研究方向
Thumbnail
科技發達,AI智能也越來越發達。 蠢孩子,我每篇小說的圖片都是用AI製作的唷!!
Thumbnail
科技發達,AI智能也越來越發達。 蠢孩子,我每篇小說的圖片都是用AI製作的唷!!
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 77 ,我們在給定句子 「 Transformers possess surprising emerging features 」的情
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 77 ,我們在給定句子 「 Transformers possess surprising emerging features 」的情
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 76 ,我們在給定句子 「 Transformers possess surprising emerging features 」的情
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 76 ,我們在給定句子 「 Transformers possess surprising emerging features 」的情
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 75 ,我們在給定句子 「 Transformers possess surprising emerging features 」的情
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 75 ,我們在給定句子 「 Transformers possess surprising emerging features 」的情
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News