Flask বা FastAPI-এর মতো ফ্রেমওয়ার্ক ব্যবহার করে একটি মডেল API তৈরি করলে, মডেলটিকে ওয়েব-অ্যাক্সেসযোগ্য করা যায়, যাতে ব্যবহারকারীরা বা অন্যান্য সিস্টেম মডেলটিকে ইন্টারফেসের মাধ্যমে ব্যবহার করতে পারে। নিচে Flask এবং FastAPI ব্যবহার করে মডেল API তৈরি করার ধাপগুলো আলোচনা করা হলো।
১. Flask ব্যবহার করে মডেল API তৈরি করা
এখানে আমরা Flask ব্যবহার করে একটি API তৈরি করব, যা JSON ইনপুট গ্রহণ করে এবং মডেলের পূর্বাভাস JSON আকারে রিটার্ন করবে।
ধাপ ১: প্রয়োজনীয় লাইব্রেরি ইনস্টল করা
pip install flask numpy tensorflow
ধাপ ২: মডেল লোড করা এবং Flask অ্যাপ তৈরি করা
from flask import Flask, request, jsonify
import numpy as np
from tensorflow.keras.models import load_model
# Flask অ্যাপ ইনিশিয়ালাইজ করা
app = Flask(__name__)
# মডেল লোড করা (এখানে 'my_model.h5' নামে সংরক্ষিত মডেল)
model = load_model("my_model.h5")
# পূর্বাভাস ফাংশন তৈরি করা
@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) # মডেল পূর্বাভাস
output = prediction[0].tolist() # ফলাফল JSON-এ রূপান্তর
return jsonify({"prediction": output})
# Flask অ্যাপ চালু করা
if __name__ == "__main__":
app.run(debug=True)
এখানে /predict এন্ডপয়েন্ট তৈরি করা হয়েছে, যা POST রিকোয়েস্ট গ্রহণ করে এবং মডেল থেকে পূর্বাভাস রিটার্ন করে।
ধাপ ৩: API পরীক্ষা করা
curl -X POST -H "Content-Type: application/json" -d '{"input": [1, 2, 3, 4]}' http://127.0.0.1:5000/predict
এটি JSON ইনপুট ব্যবহার করে API কল করবে এবং মডেলের পূর্বাভাস JSON আকারে প্রদান করবে।
২. FastAPI ব্যবহার করে মডেল API তৈরি করা
FastAPI একটি দ্রুত ও আধুনিক ফ্রেমওয়ার্ক, যা API তৈরি করার জন্য ব্যবহার করা হয়। এটি Flask-এর তুলনায় আরও দ্রুত এবং কিছু উন্নত ফিচার সরবরাহ করে।
ধাপ ১: প্রয়োজনীয় লাইব্রেরি ইনস্টল করা
pip install fastapi uvicorn numpy tensorflow
ধাপ ২: মডেল লোড করা এবং FastAPI অ্যাপ তৈরি করা
from fastapi import FastAPI
from pydantic import BaseModel
import numpy as np
from tensorflow.keras.models import load_model
# FastAPI অ্যাপ ইনিশিয়ালাইজ করা
app = FastAPI()
# মডেল লোড করা
model = load_model("my_model.h5")
# ইনপুট ডেটার জন্য BaseModel ক্লাস তৈরি করা
class InputData(BaseModel):
input: list
# পূর্বাভাস এন্ডপয়েন্ট তৈরি করা
@app.post("/predict")
async def predict(data: InputData):
input_data = np.array(data.input).reshape(1, -1) # ইনপুট ডেটা প্রসেসিং
prediction = model.predict(input_data) # মডেল পূর্বাভাস
output = prediction[0].tolist() # ফলাফল JSON-এ রূপান্তর
return {"prediction": output}
ধাপ ৩: FastAPI চালানো
uvicorn filename:app --reload
এখানে filename দিয়ে আপনার ফাইলের নাম দিন, যেমন main.py হলে uvicorn main:app --reload লিখতে হবে।
API পরীক্ষা করা
curl -X POST -H "Content-Type: application/json" -d '{"input": [1, 2, 3, 4]}' http://127.0.0.1:8000/predict
এই রিকোয়েস্টটি ইনপুট হিসাবে [1, 2, 3, 4] পাঠাবে এবং মডেলের পূর্বাভাস JSON আকারে রিটার্ন করবে।
সংক্ষেপে
Flask এবং FastAPI-তে মডেল API তৈরি করার ধাপ:
- মডেল লোড করা:
load_modelব্যবহার করে মডেল লোড করা। - এন্ডপয়েন্ট তৈরি করা: Flask-এ
@app.routeবা FastAPI-তে@app.postদিয়ে পূর্বাভাস এন্ডপয়েন্ট তৈরি। - ইনপুট ও আউটপুট: ইনপুট JSON থেকে ডেটা নিয়ে প্রসেস করা এবং আউটপুট JSON-এ রিটার্ন করা।
- API চালানো ও পরীক্ষা করা: Flask বা FastAPI রান করে এবং API পরীক্ষা করা।
এইভাবে Flask বা FastAPI ব্যবহার করে মডেল API তৈরি এবং ডেপ্লয় করা সম্ভব, যা আপনার মডেলকে প্রোডাকশনে ব্যবহারের জন্য প্রস্তুত করবে।
Read more