FastAPI से ML Model को Web API बनाना

इस ब्लॉग में हम सीखेंगे कि FastAPI का उपयोग करके Machine Learning Model को कैसे Web API में convert किया जा सकता है। इससे आप अपने ML model को production-ready deploy कर सकते हैं और किसी भी application या client से उसे call कर सकते हैं।

🚀 FastAPI से ML Model को Web API बनाना

Machine Learning models को train करने के बाद सबसे बड़ी challenge होती है उन्हें production में deploy करना ताकि अन्य applications या users उनका use कर सकें। FastAPI Python का एक high-performance web framework है जो APIs बनाने के लिए lightweight और fast solution देता है। इस ब्लॉग में हम step-by-step सीखेंगे कि FastAPI से ML model को Web API कैसे बनाएं।

🔹 FastAPI क्या है?

FastAPI एक modern web framework है जो Python 3.7+ पर चलता है और API बनाने के लिए design किया गया है। यह asynchronous support और automatic documentation (Swagger, Redoc) देता है।

  • High performance (Node.js और Go के बराबर speed)
  • Built-in validation (Pydantic का use)
  • Swagger UI support
  • Easy deployment with Docker

📂 Prerequisites

FastAPI से ML model को deploy करने के लिए आपको चाहिए:

  • Python 3.7+
  • Trained ML model (Pickle या Joblib file)
  • FastAPI और Uvicorn library
  • Basic understanding of REST APIs

⚡ Installation

pip install fastapi uvicorn
pip install scikit-learn pandas joblib
    

📝 Step 1: ML Model को Save करना

सबसे पहले, एक simple ML model train करके उसे save करें:

from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
import joblib

data = load_iris()
X, y = data.data, data.target

model = RandomForestClassifier()
model.fit(X, y)

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

📝 Step 2: FastAPI App बनाना

अब FastAPI app create करें और model load करें।

from fastapi import FastAPI
import joblib
import numpy as np
from pydantic import BaseModel

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

# Initialize FastAPI app
app = FastAPI(title="Iris ML API")

# Input schema
class InputData(BaseModel):
    sepal_length: float
    sepal_width: float
    petal_length: float
    petal_width: float

@app.post("/predict")
def predict(data: InputData):
    features = np.array([[data.sepal_length, data.sepal_width, data.petal_length, data.petal_width]])
    prediction = model.predict(features)
    return {"prediction": int(prediction[0])}
    

📝 Step 3: Run Server

API server run करने के लिए command:

uvicorn main:app --reload
    

अब आप http://127.0.0.1:8000/docs पर Swagger UI में अपनी API test कर सकते हैं।

📌 Example Request

POST /predict
{
  "sepal_length": 5.1,
  "sepal_width": 3.5,
  "petal_length": 1.4,
  "petal_width": 0.2
}
    

🚀 MLOps Deployment में FastAPI का महत्व

FastAPI ML models को production में serve करने के लिए perfect choice है:

  • Fast और lightweight
  • Docker के साथ आसानी से integrate
  • Built-in API docs
  • Scalable और cloud-ready

🏆 निष्कर्ष

FastAPI एक modern और आसान framework है जो ML models को Web API में बदलने में मदद करता है। इसके साथ Docker use करके आप अपने models को production-ready बना सकते हैं और किसी भी platform पर deploy कर सकते हैं।