ඔබේ නිර්මාණය ලෝකයට ගෙන යමු 🌐
සුභ පැතුම්! ඔබ පාඨමාලාවේ අවසාන අදියරට පැමිණ ඇත. 10 වන ඒකකයේදී අපි command-line වැඩසටහනක් සෑදුවා. දැන්, අපි එය තවත් පියවරක් ඉදිරියට ගෙන ගොස්, ඕනෑම කෙනෙකුට වෙබ් බ්රව්සරයක් හරහා භාවිතා කළ හැකි සරල වෙබ් යෙදුමක් (Web Application) බවට පත් කරමු.
මේ සඳහා අපි **Django** නම් ඉතා ජනප්රිය සහ බලවත් Python web framework එක භාවිතා කරමු. Django මගින් සංකීර්ණ වෙබ් යෙදුම් නිර්මාණය ඉතා පහසු කරයි. මෙම ව්යාපෘතියේදී, අපි Django හි මූලිකම කරුණු පමණක් භාවිතා කර, අපේ AI ආකෘතිය ක්රියාත්මක වන එක පිටුවක වෙබ් අඩවියක් නිර්මාණය කරමු.
ව්යාපෘති අවශ්යතා:
- පරිශීලකයාට වෙබ් පිටුවක් පෙන්විය යුතුය.
- එම පිටුවේ "අනාවැකිය ලබා ගන්න" ලෙස බොත්තමක් තිබිය යුතුය.
- බොත්තම click කළ විට, අපේ AI ආකෘතිය ක්රියාත්මක වී, අනාවැකි පළ කළ අංක ටික එම පිටුවේම පෙන්විය යුතුය.
පියවරෙන් පියවර Django வழிகாட்டி
පියවර 1: Django ස්ථාපනය කිරීම
ඔබේ Terminal (or Command Prompt) එකේ පහත විධානය ක්රියාත්මක කරන්න.
pip install djangoපියවර 2: Django ව්යාපෘතිය ආරම්භ කිරීම
ඔබේ ව්යාපෘතිය තැනීමට අවශ්ය folder එකට ගොස්, පහත විධාන එකින් එක ක්රියාත්මක කරන්න.
# 'lottery_project' නමින් Django project එකක් සාදයි
django-admin startproject lottery_project
# එම project folder එකට යයි
cd lottery_project
# 'predictor' නමින් අපේ අනාවැකි app එක සාදයි
python manage.py startapp predictor
පියවර 3: අපේ App එක Django වලට හඳුන්වා දීම
`lottery_project/settings.py` ගොනුව විවෘත කර, `INSTALLED_APPS` ලැයිස්තුවට `'predictor'` යන්න ඇතුළත් කරන්න.
INSTALLED_APPS = [
...,
'django.contrib.staticfiles',
'predictor', # <--- මේ පේළිය එකතු කරන්න
]පියවර 4: AI Logic එක ලිවීම (`views.py`)
පරිශීලකයෙක් වෙබ් පිටුවට එන විට හෝ බොත්තමක් click කරන විට ක්රියාත්මක විය යුතු Python කේතය අපි ලියන්නේ `predictor/views.py` ගොනුවේය. ඔබගේ `lottery_predictor_model.keras`, `scaler.gz`, සහ `lottery_data.csv` යන ගොනු තුන `predictor` folder එකට copy කරන්න. ඉන්පසු `predictor/views.py` ගොනුව විවෘත කර පහත කේතය ඇතුළත් කරන්න.
# predictor/views.py
from django.shortcuts import render
import pandas as pd
import numpy as np
import tensorflow as tf
import joblib
import os
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
def predict_view(request):
prediction = None
if request.method == 'POST':
try:
model_path = os.path.join(BASE_DIR, 'lottery_predictor_model.keras')
scaler_path = os.path.join(BASE_DIR, 'scaler.gz')
data_path = os.path.join(BASE_DIR, 'lottery_data.csv')
model = tf.keras.models.load_model(model_path)
scaler = joblib.load(scaler_path)
df = pd.read_csv(data_path)
SEQUENCE_LENGTH = 10
number_cols = ['number_1', 'number_2', 'number_3', 'number_4', 'bonus']
NUM_FEATURES = len(number_cols)
last_sequence_df = df.tail(SEQUENCE_LENGTH)
scaled_input = scaler.transform(last_sequence_df[number_cols])
input_for_prediction = np.reshape(scaled_input, (1, SEQUENCE_LENGTH, NUM_FEATURES))
predicted_scaled = model.predict(input_for_prediction)
predicted_numbers = scaler.inverse_transform(predicted_scaled)
final_prediction = np.round(predicted_numbers).astype(int)
prediction = sorted(final_prediction[0])
except Exception as e:
prediction = [f"Error: {e}"]
return render(request, 'predictor/index.html', {'prediction': prediction})
පියවර 5: වෙබ් පිටුව නිර්මාණය (`template`)
`predictor` folder එක තුළ `templates` නමින් අලුත් folder එකක්ද, ඒ තුළ `predictor` නමින් තවත් folder එකක්ද සාදන්න. අවසාන වශයෙන්, එම folder එක තුළ `index.html` නමින් ගොනුවක් සාදා පහත කේතය ඇතුළත් කරන්න.
<!DOCTYPE html>
<html lang="si">
<head>
<meta charset="UTF-8">
<title>AI ලොතරැයි අනාවැකි</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container text-center mt-5">
<h1>🧠 AI ලොතරැයි අනාවැකිය</h1>
<p class="lead">ඊළඟ දිනුම් ඇදීම සඳහා අනාවැකියක් ලබා ගැනීමට පහත බොත්තම ඔබන්න.</p>
<form method="post">
{% csrf_token %}
<button type="submit" class="btn btn-primary btn-lg">අනාවැකිය ලබා ගන්න</button>
</form>
{% if prediction %}
<div class="card mt-4">
<div class="card-body">
<h3 class="card-title">🔮 ඔබගේ අනාවැකිය:</h3>
<h2 class="display-4">{{ prediction|join:', ' }}</h2>
<p class="text-muted">මෙය අධ්යාපනික අරමුණු සඳහා පමණි. ජයග්රහණය සහතික නොවේ.</p>
</div>
</div>
{% endif %}
</div>
</body>
</html>
පියවර 6: URL එක සකස් කිරීම
මුලින්ම, `predictor` folder එක තුළ `urls.py` නමින් අලුත් ගොනුවක් සාදා පහත කේතය යොදන්න.
# predictor/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.predict_view, name='predict'),
]දැන්, ප්රධාන project එකේ `lottery_project/urls.py` ගොනුව විවෘත කර, අපේ app එකේ URL ටික එයට සම්බන්ධ කරන්න.
# lottery_project/urls.py
from django.contrib import admin
from django.urls import path, include # <--- include එකතු කරන්න
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('predictor.urls')), # <--- මේ පේළිය එකතු කරන්න
]පියවර 7: Web Server එක ක්රියාත්මක කිරීම!
සියල්ල සූදානම්! දැන් ඔබේ Terminal එකේ, `manage.py` ගොනුව ඇති තැන සිට, පහත විධානය ක්රියාත්මක කරන්න.
python manage.py runserverඉන්පසු, ඔබේ වෙබ් බ්රව්සරය විවෘත කර, http://127.0.0.1:8000/ යන ලිපිනයට යන්න. ඔබේ AI Web App එක ක්රියාත්මක වන ආකාරය ඔබට දැකගත හැකි වනු ඇත!