WebashalarForML commited on
Commit
70f3efb
·
verified ·
1 Parent(s): 42040cc

Upload 6 files

Browse files
Model/linear_regression_model_bygrade_price.joblib ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0c12c459c95bd49e53accbe033f12356a7ebad68aad40c1a153eef65a8c2bef3
3
+ size 1993
Model/linear_regression_model_gia_price.joblib ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2c75f0485c37e6e8fb6b2da0ee54c2c9330f5fe90226bcc4f37226611ee8ff11
3
+ size 1993
Model/linear_regression_model_grade_price.joblib ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b0cee582a12ccc467dcb0ee815831a68c2c20b460d6d7628b5d052be32b58256
3
+ size 1993
Model/linear_regression_model_makable_price.joblib ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b4f0f8c8990a742daa6a0316f2da248ba34011cf156b9780ba2ca9abe4458818
3
+ size 1993
app.py ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from flask import Flask, render_template, request, redirect, url_for, flash
2
+ import os
3
+ from joblib import load
4
+ import numpy as np
5
+
6
+ app = Flask(__name__)
7
+
8
+ # Set the secret key for session management
9
+ app.secret_key = os.urandom(24)
10
+
11
+ # Configurations
12
+ UPLOAD_FOLDER = "uploads/"
13
+ app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
14
+ app.config['DEBUG'] = True # Enable debugging during development
15
+ app.config['ENV'] = 'development'
16
+
17
+ # Load models
18
+ gia_model = load(r'H:\DEV PATEL\2025\AI_In_Diamond_Industry\Model\linear_regression_model_gia_price.joblib')
19
+ grade_model = load(r'H:\DEV PATEL\2025\AI_In_Diamond_Industry\Model\linear_regression_model_grade_price.joblib')
20
+ bygrade_model = load(r'H:\DEV PATEL\2025\AI_In_Diamond_Industry\Model\linear_regression_model_bygrade_price.joblib')
21
+ makable_model = load(r'H:\DEV PATEL\2025\AI_In_Diamond_Industry\Model\linear_regression_model_makable_price.joblib')
22
+
23
+ # Load label encoders for categorical features (renamed variable to avoid conflict with built-in list)
24
+ encoder_list = ['Tag', 'EngShp', 'EngQua', 'EngCol', 'EngCut', 'EngPol', 'EngSym', 'EngFlo', 'EngNts', 'EngMikly', 'EngLab']
25
+ loaded_label_encoder = {}
26
+ for val in encoder_list:
27
+ encoder_path = f"H:/DEV PATEL/2025/AI_In_Diamond_Industry/Label_encoders/label_encoder_{val}.joblib"
28
+ loaded_label_encoder[val] = load(encoder_path)
29
+
30
+ @app.route('/', methods=['GET'])
31
+ def home():
32
+ return render_template('home.html')
33
+
34
+ @app.route('/predict', methods=['GET', 'POST'])
35
+ def predict():
36
+ # Redirect GET requests back to the home page
37
+ if request.method == 'GET':
38
+ return redirect(url_for('home'))
39
+
40
+ try:
41
+ # Retrieve form data and strip any extra spaces ['Tag', 'EngCts', 'EngShp', 'EngQua', 'EngCol', 'EngCut', 'EngPol', 'EngSym', 'EngFlo', 'EngNts', 'EngMikly', 'EngLab', 'EngAmt',
42
+ Tag = request.form.get('Tag', '').strip()
43
+ # ICarat = request.form.get('ICarat', '').strip()
44
+ # MkblCarat = request.form.get('MkblCarat', '').strip()
45
+ # SawLossCarat = request.form.get('SawLossCarat', '').strip()
46
+ # CrapsCarat = request.form.get('CrapsCarat', '').strip()
47
+ # EngGraphCts = request.form.get('EngGraphCts', '').strip()
48
+ EngCts = request.form.get('EngCts', '').strip()
49
+ EngShp = request.form.get('EngShp', '').strip()
50
+ EngQua = request.form.get('EngQua', '').strip()
51
+ EngCol = request.form.get('EngCol', '').strip()
52
+ EngCut = request.form.get('EngCut', '').strip()
53
+ EngPol = request.form.get('EngPol', '').strip()
54
+ EngSym = request.form.get('EngSym', '').strip()
55
+ EngFlo = request.form.get('EngFlo', '').strip()
56
+ EngNts = request.form.get('EngNts', '').strip()
57
+ EngMikly = request.form.get('EngMikly', '').strip()
58
+ EngLab = request.form.get('EngLab', '').strip()
59
+ EngAmt = request.form.get('EngAmt', '').strip()
60
+
61
+ if EngLab == "nan": # or if not EngLab:
62
+ EngLab = np.nan
63
+ else:
64
+ EngLab = EngLab # remains the same
65
+
66
+ # Check if any required field is empty
67
+ if not all([Tag,
68
+ #ICarat, MkblCarat, SawLossCarat, CrapsCarat, EngGraphCts,
69
+ EngCts, EngShp, EngQua, EngCol,
70
+ EngCut, EngPol, EngSym, EngFlo, EngNts, EngMikly,
71
+ EngLab, EngAmt]):
72
+ flash("Please fill all the fields", "error")
73
+ return redirect(url_for('home'))
74
+
75
+ # Transform categorical features using loaded label encoders
76
+ Tag = loaded_label_encoder['Tag'].transform([Tag])[0]
77
+ EngShp = loaded_label_encoder['EngShp'].transform([EngShp])[0]
78
+ EngQua = loaded_label_encoder['EngQua'].transform([EngQua])[0]
79
+ EngCol = loaded_label_encoder['EngCol'].transform([EngCol])[0]
80
+ EngCut = loaded_label_encoder['EngCut'].transform([EngCut])[0]
81
+ EngPol = loaded_label_encoder['EngPol'].transform([EngPol])[0]
82
+ EngSym = loaded_label_encoder['EngSym'].transform([EngSym])[0]
83
+ EngFlo = loaded_label_encoder['EngFlo'].transform([EngFlo])[0]
84
+ EngNts = loaded_label_encoder['EngNts'].transform([EngNts])[0]
85
+ EngMikly = loaded_label_encoder['EngMikly'].transform([EngMikly])[0]
86
+ EngLab = loaded_label_encoder['EngLab'].transform([EngLab])[0]
87
+
88
+ # Convert numeric fields to float
89
+ # ICarat = float(ICarat)
90
+ # MkblCarat = float(MkblCarat)
91
+ # SawLossCarat = float(SawLossCarat)
92
+ # CrapsCarat = float(CrapsCarat)
93
+ # EngGraphCts = float(EngGraphCts)
94
+ EngCts = float(EngCts)
95
+ EngAmt = float(EngAmt)
96
+
97
+ # Prepare input data for prediction
98
+ input_features = [[Tag,
99
+ #ICarat, MkblCarat, SawLossCarat, CrapsCarat, EngGraphCts,
100
+ EngCts, EngShp, EngQua, EngCol, EngCut,
101
+ EngPol, EngSym, EngFlo, EngNts, EngMikly, EngLab, EngAmt]]
102
+
103
+ # Make predictions
104
+ gia_price = gia_model.predict(input_features)[0]
105
+ grade_price = grade_model.predict(input_features)[0]
106
+ bygrade_price = bygrade_model.predict(input_features)[0]
107
+ makable_price = makable_model.predict(input_features)[0]
108
+
109
+ gia_diff = EngAmt - gia_price
110
+ grade_diff = EngAmt - grade_price
111
+ bygrade_diff = EngAmt - bygrade_price
112
+ makable_diff = EngAmt - makable_price
113
+
114
+ except Exception as e:
115
+ flash(f"Error in calculating the price: {e}", "error")
116
+ return redirect(url_for('home'))
117
+
118
+ return render_template('results.html', gia_price=gia_price, grade_price=grade_price,
119
+ bygrade_price=bygrade_price, makable_price=makable_price,
120
+ gia_diff=gia_diff,grade_diff=grade_diff,bygrade_diff=bygrade_diff,
121
+ makable_diff=makable_diff)
122
+
123
+ if __name__ == "__main__":
124
+ app.run(debug=True, use_reloader=False)
requirement.txt ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ absl-py
2
+ asttokens
3
+ astunparse
4
+ blinker
5
+ certifi
6
+ charset-normalizer
7
+ click
8
+ colorama
9
+ comm
10
+ contourpy
11
+ cycler
12
+ debugpy
13
+ decorator
14
+ et_xmlfile
15
+ executing
16
+ filelock
17
+ Flask
18
+ flatbuffers
19
+ fonttools
20
+ fsspec
21
+ gast
22
+ google-pasta
23
+ grpcio
24
+ h5py
25
+ idna
26
+ ipykernel
27
+ ipython
28
+ itsdangerous
29
+ jedi
30
+ Jinja2
31
+ joblib
32
+ jupyter_client
33
+ jupyter_core
34
+ keras
35
+ kiwisolver
36
+ libclang
37
+ Markdown
38
+ markdown-it-py
39
+ MarkupSafe
40
+ matplotlib
41
+ matplotlib-inline
42
+ mdurl
43
+ ml-dtypes
44
+ mpmath
45
+ namex
46
+ nest-asyncio
47
+ networkx
48
+ numpy
49
+ openpyxl
50
+ opt_einsum
51
+ optree
52
+ packaging
53
+ pandas
54
+ parso
55
+ patsy
56
+ pillow
57
+ platformdirs
58
+ prompt_toolkit
59
+ protobuf
60
+ psutil
61
+ pure_eval
62
+ Pygments
63
+ pyparsing
64
+ python-dateutil
65
+ python-dotenv
66
+ pytz
67
+ pywin32
68
+ pyzmq
69
+ requests
70
+ rich
71
+ scikit-learn
72
+ scipy
73
+ seaborn
74
+ setuptools
75
+ six
76
+ stack-data
77
+ statsmodels
78
+ sympy
79
+ tensorboard
80
+ tensorboard-data-server
81
+ tensorflow
82
+ tensorflow_intel
83
+ termcolor
84
+ threadpoolctl
85
+ torch
86
+ torchaudio
87
+ torchvision
88
+ tornado
89
+ traitlets
90
+ typing_extensions
91
+ tzdata
92
+ urllib3
93
+ wcwidth
94
+ Werkzeug
95
+ wheel
96
+ wrapt
97
+ xgboost