From 2625b363d7f6478ea474c97dfcf1c41b892f5174 Mon Sep 17 00:00:00 2001
From: Adam Drake <drakeadam02@gmail.com>
Date: Tue, 19 Mar 2024 12:43:13 +0000
Subject: [PATCH] starrt on ml model implementation

---
 .../Adam_Drake/fig.html                       |   0
 .../__pycache__/views.cpython-310.pyc         | Bin 1622 -> 4726 bytes
 .../templates/prediction_service/model.html   |   2 +-
 prediction_service/views.py                   |  63 +++++++++++++-----
 4 files changed, 48 insertions(+), 17 deletions(-)
 rename {user_session_data => media}/Adam_Drake/fig.html (100%)

diff --git a/user_session_data/Adam_Drake/fig.html b/media/Adam_Drake/fig.html
similarity index 100%
rename from user_session_data/Adam_Drake/fig.html
rename to media/Adam_Drake/fig.html
diff --git a/prediction_service/__pycache__/views.cpython-310.pyc b/prediction_service/__pycache__/views.cpython-310.pyc
index f0175546cd6781327d8e94b0c0bfd5957f696352..437076524b6908ca7b4458e7e053daadbcbc497f 100644
GIT binary patch
literal 4726
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

delta 411
zcmeySa*c;CpO=@5fq{X+()>f}F7}ChGK_O3YFDWXr7)!M<p}4BM2RvofZ1YEVySE?
z{3!x049$#D;wgN=44Q%)U-&WCCo_T!fMON~1_llW1_oya28Loc1_p){##+V_h8o5c
zre>yoo?50FrUi@(8ETos8B!Qn7+4sZnHd@KI1Cwz#mX5O89*?SfsvtvsfHniIfbQ$
zIg_!OIha9{)vrpmv^cdWzBskGI5R&lJ|(dvQQt8oF}FV6r6@5wRX;5=T`!{~H|G{(
zQI%{#QEEzNatTObacWUnW^$^2ZhlH?4nzeHNL_q#eqKpxUWq32EtdR()Vy0PMX8A?
zMNA9~44N!OybKHsw^#}iOEPY;q-Ex$7AY_=Fck5_2?3Bidu~o{zHCZrjw#5upm1d2
z;bG=tl=&~fT%-yzNMf>;;9~A5*1Xc(g32hSyn@N^1f}_+m<w`BqF8eaa#D<oR41zm
VsWB={_7#%m;9=xoWMblD1OSW5W)J`X

diff --git a/prediction_service/templates/prediction_service/model.html b/prediction_service/templates/prediction_service/model.html
index 5324412..28dad7b 100644
--- a/prediction_service/templates/prediction_service/model.html
+++ b/prediction_service/templates/prediction_service/model.html
@@ -7,7 +7,7 @@
 
     <h1>ML-Model</h1>
 
-    {{ html_content | safe }}
+    <img src="data:image/png;base64,{{ img_str }}" alt="PIL Image">
     
 </div>
 
diff --git a/prediction_service/views.py b/prediction_service/views.py
index 7805c68..9baf72e 100644
--- a/prediction_service/views.py
+++ b/prediction_service/views.py
@@ -46,26 +46,57 @@ def register(request):
     return render(request, 'prediction_service/register.html', {'form': form})
 
 import os
+import io 
 import numpy as np
 import matplotlib.pyplot as plt
 import mpld3
+from PIL import Image
+import base64
 
 @login_required
 def mlmodel(request):
-    # re generating the file is too slow for the display
-    # x = np.arange(0, 2*np.pi, 0.1)
-    # y = np.sin(x)
 
-    # fig, ax = plt.subplots()
-    # ax.plot(x, y)
-    # ax.set_xlabel('x')
-    # ax.set_ylabel('y')
-    # ax.set_title('Sinusoid')
-
-    path = "user_session_data/Adam_Drake/fig.html"
-    # mpld3.save_html(fig, path)
-
-    with open(path, 'r') as file:
-        html_content = file.read()
-
-    return render(request, "prediction_service/model.html", {'html_content': html_content})
+    matrix = np.asarray([[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,232,39,0,0],
+                     [0,0,0,0,62,81,0,0,0,0,0,0,0,0,0,0,0,0,0,0,120,180,39,0,0],
+                     [0,0,0,0,126,163,0,0,0,0,0,0,0,0,0,0,0,0,0,2,153,210,40,0,0],
+                     [0,0,0,0,220,163,0,0,0,0,0,0,0,0,0,0,0,0,0,27,254,162,0,0,0],
+                     [0,0,0,0,222,163,0,0,0,0,0,0,0,0,0,0,0,0,0,183,254,125,0,0,0],
+                     [0,0,0,0,46,245,0,0,0,0,0,0,0,0,0,0,0,0,0,198,254,56,0,0,0],
+                     [0,0,0,0,120,254,0,0,0,0,0,0,0,0,0,0,0,0,23,231,254,29,0,0,0],
+                     [0,0,0,0,159,254,0,0,0,0,0,0,0,0,0,0,0,0,163,254,216,16,0,0,0],
+                     [0,0,0,0,159,254,0,0,0,0,0,0,0,0,0,14,86,178,248,254,91,0,0,0,0],
+                     [0,0,0,0,159,254,35,0,0,47,49,116,144,150,241,243,234,179,241,252,40,0,0,0,0],
+                     [0,0,0,0,150,253,237,207,207,207,253,254,250,240,198,143,91,28,233,250,0,0,0,0,0],
+                     [0,0,0,0,119,177,177,177,177,177,98,56,0,0,0,0,0,102,254,220,0,0,0,0,0],
+                     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,254,137,0,0,0,0,0],
+                     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,254,57,0,0,0,0,0],
+                     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,254,57,0,0,0,0,0],
+                     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,255,94,0,0,0,0,0],
+                     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,254,96,0,0,0,0,0],
+                     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,254,153,0,0,0,0,0],
+                     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,169,255,153,0,0,0,0,0],
+                     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,254,153,0,0,0,0,0],
+                     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
+                     [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]])
+
+    # Matrix dimensions
+    raw_height = matrix.shape[0]
+    raw_width = matrix.shape[1]
+
+    fig, ax = plt.subplots(1, 1, figsize=(4, 4))
+    ax.imshow(matrix, cmap='Greys_r')
+
+    buf = io.BytesIO()
+    fig.savefig(buf, format='png')
+    buf.seek(0)
+    img = Image.open(buf)
+
+    # Convert PIL image to base64 string
+    buffered = io.BytesIO()
+    img.save(buffered, format='PNG')
+    img_str = base64.b64encode(buffered.getvalue()).decode('utf-8')
+
+    return render(request, "prediction_service/model.html", {'img_str': img_str})
-- 
GitLab