Flask বা Django এর মাধ্যমে একটি ওয়েব অ্যাপ্লিকেশন তৈরি করে H2O মডেল ইন্টিগ্রেট করা যেতে পারে, যাতে ব্যবহারকারীরা ওয়েব ইন্টারফেসের মাধ্যমে মডেল থেকে পূর্বাভাস (prediction) পেতে পারেন। H2O.ai এর মডেলগুলো Python লাইব্রেরি হিসাবে উপলব্ধ, যা Flask এবং Django এর মতো ওয়েব ফ্রেমওয়ার্কের সঙ্গে সহজেই ইন্টিগ্রেট করা যায়।
এখানে Flask এবং Django এর মাধ্যমে H2O মডেল ইন্টিগ্রেট করার দুটি পদ্ধতি দেওয়া হলো।
১. Flask এর সাথে H2O মডেল ইন্টিগ্রেশন
১.১. Flask ইনস্টলেশন
প্রথমে Flask এবং H2O প্যাকেজ ইনস্টল করতে হবে:
pip install Flask h2o
১.২. H2O মডেল ট্রেনিং এবং সেভ করা
একটি H2O মডেল তৈরি করে সেভ করুন:
import h2o
from h2o.estimators import H2ORandomForestEstimator
# H2O সার্ভার চালু করা
h2o.init()
# ডেটা লোড করা
data = h2o.import_file("path/to/your/data.csv")
# ট্রেনিং এবং টেস্ট ডেটা বিভক্ত করা
train, test = data.split_frame(ratios=[.8])
# মডেল তৈরি করা
model = H2ORandomForestEstimator(ntrees=50, max_depth=20)
model.train(x=["column1", "column2", "column3"], y="target_column", training_frame=train)
# মডেল সেভ করা
model_path = h2o.save_model(model, path="model", force=True)
১.৩. Flask অ্যাপ্লিকেশন তৈরি করা
এখন Flask অ্যাপ্লিকেশন তৈরি করুন যেখানে H2O মডেলটি ব্যবহার করা হবে। এখানে একটি রাউট তৈরি করা হচ্ছে যা POST রিকোয়েস্টের মাধ্যমে ডেটা নিবে এবং মডেলের পূর্বাভাস প্রদান করবে।
from flask import Flask, request, jsonify
import h2o
from h2o.estimators import H2ORandomForestEstimator
app = Flask(__name__)
# H2O সার্ভার চালু করা
h2o.init()
# মডেল লোড করা
model = h2o.load_model("model/your_model")
@app.route("/predict", methods=["POST"])
def predict():
# JSON থেকে ইনপুট ডেটা নিন
data = request.get_json()
# ইনপুট ডেটা হ2ও ফরম্যাটে পরিবর্তন
input_data = h2o.H2OFrame(data)
# মডেলের মাধ্যমে পূর্বাভাস করা
predictions = model.predict(input_data)
# ফলাফল JSON আউটপুট হিসেবে ফিরিয়ে দেওয়া
return jsonify(predictions.as_data_frame().to_dict(orient="records")[0])
if __name__ == "__main__":
app.run(debug=True)
১.৪. Flask অ্যাপ চালানো
python app.py
এটি ওয়েব সার্ভার শুরু করবে, এবং আপনি POST রিকোয়েস্ট পাঠিয়ে পূর্বাভাস পেতে পারবেন। উদাহরণস্বরূপ, curl ব্যবহার করে বা Postman দিয়ে POST রিকোয়েস্ট পাঠাতে পারবেন।
২. Django এর সাথে H2O মডেল ইন্টিগ্রেশন
২.১. Django ইনস্টলেশন
প্রথমে Django এবং H2O প্যাকেজ ইনস্টল করুন:
pip install Django h2o
২.২. Django অ্যাপ্লিকেশন তৈরি করা
এটি একটি সাধারণ Django অ্যাপ্লিকেশন, যেখানে POST রিকোয়েস্টের মাধ্যমে ইনপুট ডেটা গ্রহণ করে H2O মডেল থেকে পূর্বাভাস দেওয়া হবে।
Django অ্যাপ্লিকেশন তৈরি করুন:
django-admin startproject h2o_predictor cd h2o_predictor python manage.py startapp predictorH2O মডেল লোড এবং রাউট তৈরি করা:
Django অ্যাপ্লিকেশনে
views.pyফাইলে নিচের কোডটি লিখুন:from django.http import JsonResponse from django.views.decorators.csrf import csrf_exempt import h2o from h2o.estimators import H2ORandomForestEstimator import json # H2O সার্ভার চালু করা h2o.init() # মডেল লোড করা model = h2o.load_model("model/your_model") @csrf_exempt def predict(request): if request.method == 'POST': # JSON থেকে ইনপুট ডেটা নিন data = json.loads(request.body) # ইনপুট ডেটা H2O ফরম্যাটে পরিবর্তন input_data = h2o.H2OFrame(data) # মডেলের মাধ্যমে পূর্বাভাস করা predictions = model.predict(input_data) # ফলাফল JSON আউটপুট হিসেবে ফিরিয়ে দেওয়া return JsonResponse(predictions.as_data_frame().to_dict(orient="records")[0])URL রাউট তৈরি করা:
urls.pyফাইলে রাউট যোগ করুন:from django.urls import path from . import views urlpatterns = [ path('predict/', views.predict, name='predict'), ]Django সার্ভার চালানো:
python manage.py runserver
২.৩. Django অ্যাপে পূর্বাভাসের জন্য রিকোয়েস্ট পাঠানো
আপনি এখন POST রিকোয়েস্ট পাঠিয়ে পূর্বাভাস পেতে পারবেন:
curl -X POST -H "Content-Type: application/json" -d '{"column1": 5.1, "column2": 3.5, "column3": 1.4}' http://127.0.0.1:8000/predict/
সারাংশ
- Flask এবং Django উভয়ই H2O মডেল ইন্টিগ্রেট করতে সক্ষম, যেখানে H2O মডেলটি Python লাইব্রেরি হিসেবে ব্যবহৃত হয় এবং ওয়েব ফ্রেমওয়ার্কের মাধ্যমে ডেটা পাস করা হয়।
- Flask সহজ এবং দ্রুত ইনস্টল ও সেটআপ করা যায়, এবং সাধারণত ছোট প্রকল্পের জন্য ব্যবহৃত হয়।
- Django আরও বড় এবং স্কেলযোগ্য অ্যাপ্লিকেশন তৈরি করার জন্য উপযুক্ত, যেখানে অনেকগুলো রাউট এবং ফিচার থাকতে পারে।
- এইভাবে আপনি আপনার H2O মডেলকে ওয়েব অ্যাপ্লিকেশনের মাধ্যমে ব্যবহারকারীদের কাছে অ্যাক্সেসযোগ্য করতে পারেন।
Read more