Page cover

Flask & FastAPI: Triển khai các mô hình AI thành RESTful API

Flask & FastAPI: Triển khai mô hình AI thành RESTful API


🚀 Mục tiêu

Giúp đưa các mô hình học máy (machine learning) hoặc học sâu (deep learning) vào ứng dụng thực tế thông qua RESTful API, cho phép các hệ thống khác (web, mobile, IoT…) truy cập mô hình một cách tiện lợi và nhanh chóng.


🔹 1. Flask: Web Framework đơn giản, linh hoạt

  • Phù hợp với các dự án nhỏ, nguyên mẫu nhanh (prototype).

  • Ưu điểm:

    • Cấu trúc gọn nhẹ, dễ hiểu, dễ triển khai.

    • Tích hợp dễ dàng với mô hình từ scikit-learn, TensorFlow, PyTorch.

  • Hạn chế:

    • Không hỗ trợ async (bất đồng bộ) mặc định, nên không tối ưu cho hiệu suất cao hoặc các ứng dụng đồng thời lớn.

🔧 Ví dụ dùng Flask để tạo API dự đoán:

from flask import Flask, request, jsonify
import joblib

app = Flask(__name__)
model = joblib.load('model.pkl')

@app.route('/predict', methods=['POST'])
def predict():
    data = request.get_json()
    prediction = model.predict([data['features']])
    return jsonify({'prediction': prediction.tolist()})

if __name__ == '__main__':
    app.run()

🔹 2. FastAPI: Framework hiện đại, hiệu suất cao

  • Thiết kế để tối ưu hiệu năng (nhanh gấp 5 lần Flask trong nhiều trường hợp).

  • Hỗ trợ async/await, lý tưởng cho hệ thống real-time hoặc xử lý đồng thời.

  • Tự động sinh tài liệu API (Swagger UI, Redoc).

  • Hỗ trợ kiểu dữ liệu tĩnh (type hints) => giúp giảm lỗi & dễ bảo trì.

🔧 Ví dụ API dự đoán dùng FastAPI:

from fastapi import FastAPI
from pydantic import BaseModel
import joblib

app = FastAPI()
model = joblib.load('model.pkl')

class InputData(BaseModel):
    features: list

@app.post("/predict")
def predict(input_data: InputData):
    prediction = model.predict([input_data.features])
    return {"prediction": prediction.tolist()}

⚖️ So sánh nhanh Flask vs FastAPI

Tiêu chí
Flask
FastAPI

Dễ học

⭐⭐⭐⭐⭐

⭐⭐⭐⭐

Hiệu suất

⭐⭐

⭐⭐⭐⭐⭐

Async/Await support

Tài liệu tự động

❌ (thêm thư viện)

✅ (tích hợp sẵn)

Dùng trong sản phẩm

Rất phù hợp với microservice


📌 Ứng dụng thực tế

  • Triển khai mô hình AI lên server, cloud, hoặc container (Docker)

  • Kết hợp với ngôn ngữ front-end, mobile app, hệ thống backend

  • Tích hợp trong pipeline MLOps cùng với Docker, Kubernetes, CI/CD


Last updated

Was this helpful?