import sqlite3 import json DB_FILE = 'predictions.db' def init_db(): conn = sqlite3.connect(DB_FILE) c = conn.cursor() c.execute(''' CREATE TABLE IF NOT EXISTS predictions ( id INTEGER PRIMARY KEY AUTOINCREMENT, input TEXT, predicted_class TEXT, probability REAL, timestamp DATETIME DEFAULT CURRENT_TIMESTAMP ) ''') conn.commit() conn.close() def insert_prediction(input_data, result): conn = sqlite3.connect(DB_FILE) c = conn.cursor() c.execute(''' INSERT INTO predictions (input, predicted_class, probability) VALUES (?, ?, ?) ''', (json.dumps(input_data), result['class'], result['probability'])) conn.commit() conn.close() def get_latest_prediction(): conn = sqlite3.connect(DB_FILE) c = conn.cursor() c.execute(''' SELECT input, predicted_class, probability, timestamp FROM predictions ORDER BY id DESC LIMIT 2 ''') rows = c.fetchall() conn.close() if rows: return [ { "input": json.loads(row[0]), "class": row[1], "probability": row[2], "timestamp": row[3] } for row in rows ] return [] def get_all_predictions(): conn = sqlite3.connect(DB_FILE) c = conn.cursor() c.execute(''' SELECT input, predicted_class, probability, timestamp FROM predictions ''') rows = c.fetchall() conn.close() results = [] for row in rows: results.append({ "input": json.loads(row[0]), "class": row[1], "probability": row[2], "timestamp": row[3] }) return results