SailajaS commited on
Commit
db86ab6
Β·
verified Β·
1 Parent(s): 87ecbe0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -15
app.py CHANGED
@@ -23,7 +23,7 @@ def download_dataset():
23
  print("πŸ“₯ Downloading dataset from Hugging Face...")
24
 
25
  try:
26
- response = requests.get(DATASET_URL, timeout=15)
27
 
28
  if response.status_code == 200:
29
  with open(DATASET_PATH, "wb") as file:
@@ -81,7 +81,7 @@ class PredictionInput(BaseModel):
81
  case_problem: str
82
 
83
  @app.post("/predict/")
84
- def predict_feedback(data: PredictionInput):
85
  """ Predicts feedback based on Case Problem """
86
  if model is None:
87
  return {"error": "Model is not trained yet."}
@@ -92,13 +92,15 @@ def predict_feedback(data: PredictionInput):
92
  if case_problem_lower not in df["Case Problem"].values:
93
  return {"error": "Invalid case problem. Please enter a valid category from the dataset."}
94
 
95
- case_problem_encoded = encoder.transform([case_problem_lower])
96
- prediction = model.predict([[case_problem_encoded[0]]])
97
- feedback_predicted = encoder.inverse_transform(prediction)[0]
98
-
99
- return {"Predicted Feedback": feedback_predicted}
100
-
101
- # βœ… Gradio UI
 
 
102
  def gradio_interface(case_problem):
103
  if model is None:
104
  return "Model not trained yet."
@@ -109,11 +111,13 @@ def gradio_interface(case_problem):
109
  if case_problem_lower not in df["Case Problem"].values:
110
  return "Invalid case problem. Please enter a valid category from the dataset."
111
 
112
- case_problem_encoded = encoder.transform([case_problem_lower])
113
- prediction = model.predict([[case_problem_encoded[0]]])
114
- feedback_predicted = encoder.inverse_transform(prediction)[0]
115
-
116
- return f"Predicted Feedback: {feedback_predicted}"
 
 
117
 
118
  # βœ… Start both API & Gradio
119
  def start_app():
@@ -124,7 +128,7 @@ def start_app():
124
  outputs="text",
125
  live=True # βœ… Ensures Gradio UI updates properly
126
  )
127
- gr_interface.launch(share=True) # βœ… Makes app accessible externally
128
  uvicorn.run(app, host="0.0.0.0", port=8000)
129
 
130
  if __name__ == "__main__":
 
23
  print("πŸ“₯ Downloading dataset from Hugging Face...")
24
 
25
  try:
26
+ response = requests.get(DATASET_URL, timeout=10)
27
 
28
  if response.status_code == 200:
29
  with open(DATASET_PATH, "wb") as file:
 
81
  case_problem: str
82
 
83
  @app.post("/predict/")
84
+ async def predict_feedback(data: PredictionInput):
85
  """ Predicts feedback based on Case Problem """
86
  if model is None:
87
  return {"error": "Model is not trained yet."}
 
92
  if case_problem_lower not in df["Case Problem"].values:
93
  return {"error": "Invalid case problem. Please enter a valid category from the dataset."}
94
 
95
+ try:
96
+ case_problem_encoded = encoder.transform([case_problem_lower])
97
+ prediction = model.predict([[case_problem_encoded[0]]])
98
+ feedback_predicted = encoder.inverse_transform(prediction)[0]
99
+ return {"Predicted Feedback": feedback_predicted}
100
+ except Exception as e:
101
+ return {"error": str(e)}
102
+
103
+ # βœ… Gradio UI with async execution
104
  def gradio_interface(case_problem):
105
  if model is None:
106
  return "Model not trained yet."
 
111
  if case_problem_lower not in df["Case Problem"].values:
112
  return "Invalid case problem. Please enter a valid category from the dataset."
113
 
114
+ try:
115
+ case_problem_encoded = encoder.transform([case_problem_lower])
116
+ prediction = model.predict([[case_problem_encoded[0]]])
117
+ feedback_predicted = encoder.inverse_transform(prediction)[0]
118
+ return f"Predicted Feedback: {feedback_predicted}"
119
+ except Exception as e:
120
+ return f"Error: {str(e)}"
121
 
122
  # βœ… Start both API & Gradio
123
  def start_app():
 
128
  outputs="text",
129
  live=True # βœ… Ensures Gradio UI updates properly
130
  )
131
+ gr_interface.launch(share=True, debug=True) # βœ… Debugging enabled to see errors
132
  uvicorn.run(app, host="0.0.0.0", port=8000)
133
 
134
  if __name__ == "__main__":