අපේ AI ආකෘතියට දොරක් 🚪
මේ දක්වා, අපේ AI ආකෘතිය සහ අනාවැකි ලබා ගැනීමේ ක්රියාවලිය පැවතියේ Jupyter Notebook එකක් තුළයි. එය අපට, එනම් නිර්මාණකරුවාට, ඉතා පහසු වුවත්, සාමාන්ය පරිශීලකයෙකුට එය භාවිතා කිරීම අපහසුයි. අපේ ව්යාපෘතිය සැබවින්ම ප්රයෝජනවත් වීමට නම්, කේත ගැන නොදන්නා කෙනෙකුට වුවද අනාවැකියක් ලබා ගත හැකි ක්රමයක් අප සෑදිය යුතුයි.
මේ සඳහා අපි **පරිශීලක අතුරු මුහුණතක් (User Interface - UI)** නිර්මාණය කරමු. මෙම ඒකකයේදී, අපි ඉතා සරල නමුත් ප්රබල **Command-Line Interface (CLI)** එකක් ගොඩනගමු. CLI එකක් යනු, පරිශීලකයාට text විධාන (commands) මගින් පරිගණකය සමඟ සෘජුවම සන්නිවේදනය කිරීමට ඉඩ සලසන අතුරු මුහුණතකි.
පියවර 1: අවශ්ය ගොනු එක තැනකට ගැනීම
අපේ CLI වැඩසටහන සෑදීමට, අපට මේ දක්වා නිර්මාණය කළ ප්රධාන කොටස් තුනක් අවශ්ය වේ:
- පුහුණු කළ ආකෘතිය: `lottery_predictor_model.keras` ලෙස 8 වන ඒකකයේදී අප save කළ ගොනුව.
- Scaler Object එක: දත්ත normalize කිරීමට භාවිතා කළ scaler එක. වැදගත්: අලුත් දත්ත normalize කිරීමට, අපි පුහුණු කිරීමේදී භාවිතා කළ **එම scaler එකම** භාවිතා කළ යුතුය.
- දත්ත ගොනුව: අවසන් දිනුම් ඇදීම් 10 ලබා ගැනීමට `lottery_data.csv` ගොනුව.
අපි මුලින්ම, පුහුණු කිරීමේදී භාවිතා කළ scaler එක ගොනුවක් ලෙස save කරගත යුතුයි. මේ සඳහා අපි `joblib` නම් library එක භාවිතා කරමු. (එය ස්ථාපනය වී නොමැතිනම්, `pip install joblib` මගින් ස්ථාපනය කරගන්න).
# ඔබගේ පුහුණු කිරීමේ Notebook එකේ, scaler එක fit කළාට පසුව මෙම කේතය යොදන්න.
import joblib
# scaler එක 'scaler.gz' නමින් ගොනුවකට save කිරීම
joblib.dump(scaler, 'scaler.gz')
පියවර 2: Command-Line Script එක (`predict.py`)
දැන්, ඔබගේ ව්යාපෘති folder එකේ `predict.py` නමින් අලුත් Python ගොනුවක් සාදා, පහත සම්පූර්ණ කේතය එහි ඇතුළත් කරන්න. මෙම කේතය, අවශ්ය ගොනු load කරගෙන, දත්ත සකස් කර, අනාවැකිය ලබා දී, ප්රතිඵලය පෙන්වීමේ සම්පූර්ණ ක්රියාවලියම සිදු කරයි.
import pandas as pd
import numpy as np
import tensorflow as tf
import joblib
import warnings
warnings.filterwarnings('ignore') # අනවශ්ය warnings පෙන්වීම නැවැත්වීමට
# --- නියතයන් (Constants) ---
MODEL_PATH = 'lottery_predictor_model.keras'
SCALER_PATH = 'scaler.gz'
DATA_PATH = 'lottery_data.csv'
SEQUENCE_LENGTH = 10
# ඔබගේ දත්ත වලට අදාළව number columns ගණන වෙනස් කරන්න
NUM_FEATURES = 5
number_cols = ['number_1', 'number_2', 'number_3', 'number_4', 'bonus']
def make_prediction():
try:
print("--- අනාවැකි ලබා ගැනීමේ ක්රියාවලිය ආරම්භ විය ---")
# 1. ආකෘතිය සහ scaler load කිරීම
print(f"'{MODEL_PATH}' වෙතින් ආකෘතිය load කරමින්...")
model = tf.keras.models.load_model(MODEL_PATH)
print(f"'{SCALER_PATH}' වෙතින් scaler load කරමින්...")
scaler = joblib.load(SCALER_PATH)
# 2. ආදාන දත්ත ලබා ගැනීම
print(f"'{DATA_PATH}' වෙතින් දත්ත ලබා ගනිමින්...")
df = pd.read_csv(DATA_PATH)
if len(df) < SEQUENCE_LENGTH:
print(f"Error: දත්ත ගොනුවේ අවම වශයෙන් දිනුම් ඇදීම් {SEQUENCE_LENGTH}ක් වත් තිබිය යුතුය.")
return
last_sequence_df = df.tail(SEQUENCE_LENGTH)
# 3. දත්ත සූදානම් කිරීම
print("අනාවැකිය සඳහා දත්ත සූදානම් කරමින්...")
scaled_input = scaler.transform(last_sequence_df[number_cols])
input_for_prediction = np.reshape(scaled_input, (1, SEQUENCE_LENGTH, NUM_FEATURES))
# 4. අනාවැකිය ලබා ගැනීම
print("AI ආකෘතියෙන් අනාවැකිය ලබා ගනිමින්...")
predicted_scaled_output = model.predict(input_for_prediction)
# 5. ප්රතිඵලය සැබෑ අංක බවට පත් කිරීම
predicted_numbers = scaler.inverse_transform(predicted_scaled_output)
final_prediction = np.round(predicted_numbers).astype(int)
# 6. ප්රතිඵලය පෙන්වීම
print("\\n" + "="*40)
print(" 🔮 AI අනාවැකිය 🔮")
print("="*40)
print(f"ඊළඟ දිනුම් ඇදීම සඳහා විය හැකි අංක:")
print(f"➡️ {sorted(final_prediction[0])}")
print("="*40)
print("\\nසටහන: මෙය අධ්යාපනික අරමුණු සඳහා පමණි.")
print("ජයග්රහණය සහතික නොවේ.")
except FileNotFoundError as e:
print(f"\\nError: ගොනුවක් සොයාගත නොහැක - {e.filename}")
print("කරුණාකර `predict.py`, `lottery_predictor_model.keras`, `scaler.gz`, සහ `lottery_data.csv` යන සියලුම ගොනු එකම folder එකක ඇති බවට වග බලා ගන්න.")
except Exception as e:
print(f"An unexpected error occurred: {e}")
if __name__ == "__main__":
make_prediction()
Script එක ක්රියාත්මක කරන ආකාරය
දැන්, `predict.py`, `lottery_predictor_model.keras`, `scaler.gz`, සහ `lottery_data.csv` යන ගොනු හතරම එකම folder එකක ඇති බවට වග බලා ගන්න. ඉන්පසු, පහත පියවර අනුගමනය කරන්න:
- ඔබේ පරිගණකයේ Command Prompt (Windows) හෝ Terminal (macOS/Linux) විවෘත කරන්න.
- `cd` විධානය භාවිතා කර, ඔබගේ ව්යාපෘති ගොනු ඇති folder එකට යන්න. (උදා: `cd Desktop/Lottery_Project`)
- පහත විධානය type කර Enter යතුර ඔබන්න:
python predict.py
සියල්ල නිවැරදිව සිදුවුවහොත්, ඔබට මෙවැනි ප්රතිඵලයක් දැකගත හැකි වනු ඇත:
--- අනාවැකි ලබා ගැනීමේ ක්රියාවලිය ආරම්භ විය ---
'lottery_predictor_model.keras' වෙතින් ආකෘතිය load කරමින්...
'scaler.gz' වෙතින් scaler load කරමින්...
'lottery_data.csv' වෙතින් දත්ත ලබා ගනිමින්...
අනාවැකිය සඳහා දත්ත සූදානම් කරමින්...
AI ආකෘතියෙන් අනාවැකිය ලබා ගනිමින්...
========================================
🔮 AI අනාවැකිය 🔮
========================================
ඊළඟ දිනුම් ඇදීම සඳහා විය හැකි අංක:
➡️ [5, 12, 19, 28, 35]
========================================
සටහන: මෙය අධ්යාපනික අරමුණු සඳහා පමණි.
ජයග්රහණය සහතික නොවේ.
දැන් ඔබ, ඕනෑම අවස්ථාවක එක විධානයකින් අනාවැකියක් ලබා ගත හැකි, නැවත භාවිතා කළ හැකි වැඩසටහනක් සාර්ථකව නිර්මාණය කර ඇත!