SailajaS commited on
Commit
c45f63b
Β·
verified Β·
1 Parent(s): d5c67c2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -14
app.py CHANGED
@@ -54,16 +54,20 @@ for col in required_columns:
54
  if col not in df.columns:
55
  raise Exception(f"❌ Column '{col}' is missing from the dataset!")
56
 
57
- # βœ… Convert "Case Problem" column to lowercase and remove spaces for consistency
58
  df["Case Problem"] = df["Case Problem"].astype(str).str.strip().str.lower()
 
59
 
60
- # βœ… Train and save LabelEncoder
61
- encoder = LabelEncoder()
62
- df["Case Problem Encoded"] = encoder.fit_transform(df["Case Problem"])
63
- df["Feedback Encoded"] = encoder.fit_transform(df["Feedback"])
64
 
65
- # βœ… Save encoder
66
- joblib.dump(encoder, "case_problem_encoder.pkl")
 
 
 
 
67
 
68
  # βœ… Train Model
69
  X = df[["Case Problem Encoded"]]
@@ -86,8 +90,9 @@ async def predict_feedback(data: PredictionInput):
86
  if model is None:
87
  return {"error": "Model is not trained yet."}
88
 
89
- # βœ… Load encoder
90
- encoder = joblib.load("case_problem_encoder.pkl")
 
91
 
92
  # βœ… Convert input to lowercase and remove spaces
93
  case_problem_lower = data.case_problem.strip().lower()
@@ -101,9 +106,9 @@ async def predict_feedback(data: PredictionInput):
101
  }
102
 
103
  try:
104
- case_problem_encoded = encoder.transform([case_problem_lower])
105
  prediction = model.predict([[case_problem_encoded[0]]])
106
- feedback_predicted = encoder.inverse_transform(prediction)[0]
107
  return {"Predicted Feedback": feedback_predicted}
108
  except Exception as e:
109
  return {"error": str(e)}
@@ -113,7 +118,9 @@ def gradio_interface(case_problem):
113
  if model is None:
114
  return "Model not trained yet."
115
 
116
- encoder = joblib.load("case_problem_encoder.pkl")
 
 
117
  case_problem_lower = case_problem.strip().lower()
118
 
119
  if case_problem_lower not in df["Case Problem"].values:
@@ -121,9 +128,9 @@ def gradio_interface(case_problem):
121
  return f"Invalid case problem. Please enter a valid category. Options: {valid_problems}"
122
 
123
  try:
124
- case_problem_encoded = encoder.transform([case_problem_lower])
125
  prediction = model.predict([[case_problem_encoded[0]]])
126
- feedback_predicted = encoder.inverse_transform(prediction)[0]
127
  return f"Predicted Feedback: {feedback_predicted}"
128
  except Exception as e:
129
  return f"Error: {str(e)}"
 
54
  if col not in df.columns:
55
  raise Exception(f"❌ Column '{col}' is missing from the dataset!")
56
 
57
+ # βœ… Convert "Case Problem" & "Feedback" to lowercase and remove spaces
58
  df["Case Problem"] = df["Case Problem"].astype(str).str.strip().str.lower()
59
+ df["Feedback"] = df["Feedback"].astype(str).str.strip().str.lower()
60
 
61
+ # βœ… Train and save LabelEncoders for both input and output
62
+ case_problem_encoder = LabelEncoder()
63
+ feedback_encoder = LabelEncoder()
 
64
 
65
+ df["Case Problem Encoded"] = case_problem_encoder.fit_transform(df["Case Problem"])
66
+ df["Feedback Encoded"] = feedback_encoder.fit_transform(df["Feedback"])
67
+
68
+ # βœ… Save encoders
69
+ joblib.dump(case_problem_encoder, "case_problem_encoder.pkl")
70
+ joblib.dump(feedback_encoder, "feedback_encoder.pkl")
71
 
72
  # βœ… Train Model
73
  X = df[["Case Problem Encoded"]]
 
90
  if model is None:
91
  return {"error": "Model is not trained yet."}
92
 
93
+ # βœ… Load encoders
94
+ case_problem_encoder = joblib.load("case_problem_encoder.pkl")
95
+ feedback_encoder = joblib.load("feedback_encoder.pkl")
96
 
97
  # βœ… Convert input to lowercase and remove spaces
98
  case_problem_lower = data.case_problem.strip().lower()
 
106
  }
107
 
108
  try:
109
+ case_problem_encoded = case_problem_encoder.transform([case_problem_lower])
110
  prediction = model.predict([[case_problem_encoded[0]]])
111
+ feedback_predicted = feedback_encoder.inverse_transform(prediction)[0]
112
  return {"Predicted Feedback": feedback_predicted}
113
  except Exception as e:
114
  return {"error": str(e)}
 
118
  if model is None:
119
  return "Model not trained yet."
120
 
121
+ case_problem_encoder = joblib.load("case_problem_encoder.pkl")
122
+ feedback_encoder = joblib.load("feedback_encoder.pkl")
123
+
124
  case_problem_lower = case_problem.strip().lower()
125
 
126
  if case_problem_lower not in df["Case Problem"].values:
 
128
  return f"Invalid case problem. Please enter a valid category. Options: {valid_problems}"
129
 
130
  try:
131
+ case_problem_encoded = case_problem_encoder.transform([case_problem_lower])
132
  prediction = model.predict([[case_problem_encoded[0]]])
133
+ feedback_predicted = feedback_encoder.inverse_transform(prediction)[0]
134
  return f"Predicted Feedback: {feedback_predicted}"
135
  except Exception as e:
136
  return f"Error: {str(e)}"