Flask বা অন্য ফ্রেমওয়ার্ক ব্যবহার করে মডেল API তৈরি করা

Model Deployment এবং Serialization - এক্সজিবুস্ট (XGBoost) - Latest Technologies

437

Flask ব্যবহার করে মডেল API তৈরি করার প্রক্রিয়া অত্যন্ত সহজ এবং দ্রুত। Flask একটি হালকা, মাইক্রো-ফ্রেমওয়ার্ক যা Python-এ তৈরি করা API গুলোকে দ্রুত ডেপ্লয় করার জন্য জনপ্রিয়। এখানে Flask ব্যবহার করে কিভাবে একটি মডেল API তৈরি করা যায়, তার ধাপগুলো উদাহরণসহ তুলে ধরা হলো:

ধাপ ১: পরিবেশ সেটআপ

প্রথমে, আপনার সিস্টেমে Flask এবং অন্যান্য প্রয়োজনীয় প্যাকেজ ইনস্টল করুন:

pip install flask scikit-learn numpy pandas

ধাপ ২: মডেল প্রশিক্ষণ (Model Training)

প্রথমে একটি সিম্পল মডেল প্রশিক্ষণ করা যাক (উদাহরণস্বরূপ, একটি Logistic Regression মডেল):

# model.py
import pickle
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

# ডেটা লোড করা
data = load_iris()
X = data.data
y = data.target

# ডেটা স্প্লিট করা
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# মডেল প্রশিক্ষণ করা
model = LogisticRegression()
model.fit(X_train, y_train)

# মডেল সেভ করা
with open('model.pkl', 'wb') as file:
    pickle.dump(model, file)

ধাপ ৩: Flask API তৈরি করা

এবার Flask ব্যবহার করে একটি API তৈরি করা যাক যা মডেলটিকে লোড করবে এবং নতুন ডেটার উপর প্রেডিকশন করবে:

# app.py
from flask import Flask, request, jsonify
import pickle
import numpy as np

# Flask অ্যাপ তৈরি করা
app = Flask(__name__)

# মডেল লোড করা
with open('model.pkl', 'rb') as file:
    model = pickle.load(file)

# API এন্ডপয়েন্ট তৈরি করা
@app.route('/predict', methods=['POST'])
def predict():
    # ইনপুট ডেটা JSON থেকে পাওয়া
    data = request.get_json(force=True)
    # ডেটা প্রিপ্রোসেস করা (একটি numpy array হিসেবে নেওয়া)
    features = np.array(data['features']).reshape(1, -1)
    # প্রেডিকশন করা
    prediction = model.predict(features)
    # ফলাফল JSON আকারে ফেরত দেয়া
    return jsonify({'prediction': int(prediction[0])})

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

ধাপ ৪: API চালু করা

এবার অ্যাপটি চালু করতে নিচের কমান্ডটি রান করুন:

python app.py

ধাপ ৫: API টেস্ট করা

আপনার API এখন চালু রয়েছে। এটি টেস্ট করতে একটি HTTP ক্লায়েন্ট (যেমন Postman) বা curl ব্যবহার করতে পারেন:

curl দিয়ে টেস্ট:

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

উদাহরণ ব্যাখ্যা:

  1. Flask অ্যাপ: Flask ক্লাস ব্যবহার করে একটি অ্যাপ তৈরি করা হয়েছে।
  2. API এন্ডপয়েন্ট: /predict নামে একটি POST এন্ডপয়েন্ট তৈরি করা হয়েছে যা ইনপুট ডেটা গ্রহণ করে এবং প্রেডিকশন ফেরত দেয়।
  3. মডেল লোড: প্রশিক্ষণকৃত মডেলটি pickle ফাইল থেকে লোড করা হয়েছে।
  4. ডেটা প্রোসেসিং: ইনপুট ডেটা JSON ফরম্যাটে পাঠানো হয় এবং সেটি numpy array হিসেবে প্রোসেস করা হয়।
  5. প্রেডিকশন রেসপন্স: প্রেডিকশনকে JSON রেসপন্স আকারে ফেরত দেয়া হয়।

বিকল্প ফ্রেমওয়ার্ক

Flask ছাড়াও, কিছু অন্যান্য ফ্রেমওয়ার্ক যা API তৈরিতে ব্যবহার করা যায়:

  • FastAPI: Flask এর তুলনায় আরো দ্রুত এবং স্বয়ংক্রিয় ডকুমেন্টেশন সাপোর্ট করে।
  • Django REST Framework: বড় স্কেল API এবং আরও জটিল প্রজেক্টের জন্য উপযুক্ত।
  • Tornado: একাধিক অ্যাসিঙ্ক্রোনাস কনকশন পরিচালনা করার জন্য ভালো।

আপনি চাইলে FastAPI দিয়েও API তৈরি করতে পারেন, যেটি আরও দ্রুত এবং সহজ:

pip install fastapi uvicorn
# fastapi_app.py
from fastapi import FastAPI
import pickle
import numpy as np

app = FastAPI()

# মডেল লোড করা
with open('model.pkl', 'rb') as file:
    model = pickle.load(file)

@app.post('/predict')
def predict(features: list):
    features = np.array(features).reshape(1, -1)
    prediction = model.predict(features)
    return {'prediction': int(prediction[0])}

# অ্যাপ চালু করা
# `uvicorn fastapi_app:app --reload` দিয়ে চালাতে হবে

এই প্রক্রিয়ায় আপনি সহজেই Flask বা FastAPI ব্যবহার করে একটি মডেল API তৈরি করতে পারবেন।

Promotion

Are you sure to start over?

Loading...