gopichandra commited on
Commit
34cfb2f
Β·
verified Β·
1 Parent(s): 5522dd0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -22
app.py CHANGED
@@ -1,49 +1,48 @@
1
  import gradio as gr
2
  import joblib
3
- from transformers import AutoTokenizer, AutoModelForSequenceClassification
4
  import torch
 
5
 
6
- # βœ… Load local model and tokenizer from uploaded folder
7
- model_dir = "./campaign-bert-model"
8
 
9
  try:
10
  tokenizer = AutoTokenizer.from_pretrained(model_dir, use_fast=False)
11
  model = AutoModelForSequenceClassification.from_pretrained(model_dir)
12
  label_encoder = joblib.load("label_encoder.pkl")
13
- print("βœ… Model, Tokenizer, and Label Encoder loaded successfully!")
14
  except Exception as e:
15
  raise RuntimeError(f"❌ Failed to load model or tokenizer: {e}")
16
 
17
- # βœ… Prediction function
18
  def predict(client_interest, sentiment):
19
  try:
20
  text = f"{client_interest} Sentiment: {sentiment}"
21
- inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True)
22
  outputs = model(**inputs)
23
- predicted_label_id = torch.argmax(outputs.logits, dim=1).item()
24
- predicted_label = label_encoder.inverse_transform([predicted_label_id])[0]
25
- confidence = torch.softmax(outputs.logits, dim=1)[0][predicted_label_id].item()
26
-
27
- return f"🎯 Predicted Template: **{predicted_label}**\nβœ… Confidence: **{confidence:.2%}**"
28
  except Exception as err:
29
- return f"❌ Error during prediction: {str(err)}"
30
 
31
- # βœ… Gradio UI
32
  with gr.Blocks(theme=gr.themes.Soft()) as demo:
33
- gr.Markdown("## 🎨 Campaign Personalizer")
34
- gr.Markdown("Predict the best template ID based on interest and sentiment.")
35
 
36
  with gr.Row():
37
  with gr.Column():
38
- interest = gr.Textbox(label="πŸ“ Client Interest", placeholder="e.g., Interested in Term Plan")
39
- sentiment = gr.Textbox(label="😊 Sentiment", placeholder="e.g., positive / neutral / negative")
40
- submit_btn = gr.Button("πŸ” Predict Template")
41
-
42
  with gr.Column():
43
- output = gr.Markdown(label="🎯 Output")
44
 
45
- submit_btn.click(fn=predict, inputs=[interest, sentiment], outputs=output)
46
 
47
- # βœ… Launch
48
  if __name__ == "__main__":
49
  demo.launch()
 
 
1
  import gradio as gr
2
  import joblib
 
3
  import torch
4
+ from transformers import AutoTokenizer, AutoModelForSequenceClassification
5
 
6
+ # βœ… Use folder name directly (no ./)
7
+ model_dir = "campaign-bert-model"
8
 
9
  try:
10
  tokenizer = AutoTokenizer.from_pretrained(model_dir, use_fast=False)
11
  model = AutoModelForSequenceClassification.from_pretrained(model_dir)
12
  label_encoder = joblib.load("label_encoder.pkl")
13
+ print("βœ… Model, Tokenizer, and Label Encoder loaded.")
14
  except Exception as e:
15
  raise RuntimeError(f"❌ Failed to load model or tokenizer: {e}")
16
 
17
+ # βœ… Prediction logic
18
  def predict(client_interest, sentiment):
19
  try:
20
  text = f"{client_interest} Sentiment: {sentiment}"
21
+ inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True)
22
  outputs = model(**inputs)
23
+ predicted_id = torch.argmax(outputs.logits, dim=1).item()
24
+ label = label_encoder.inverse_transform([predicted_id])[0]
25
+ confidence = torch.softmax(outputs.logits, dim=1)[0][predicted_id].item()
26
+ return f"🎯 Template: **{label}**\nπŸ“Š Confidence: **{confidence:.2%}**"
 
27
  except Exception as err:
28
+ return f"❌ Prediction failed: {err}"
29
 
30
+ # βœ… UI with styling
31
  with gr.Blocks(theme=gr.themes.Soft()) as demo:
32
+ gr.Markdown("## 🎯 Campaign Personalizer")
33
+ gr.Markdown("Provide interest and sentiment to get the best marketing template.")
34
 
35
  with gr.Row():
36
  with gr.Column():
37
+ interest = gr.Textbox(label="πŸ“ Client Interest")
38
+ sentiment = gr.Textbox(label="😊 Sentiment")
39
+ submit = gr.Button("πŸ” Predict")
 
40
  with gr.Column():
41
+ result = gr.Markdown(label="🎯 Output")
42
 
43
+ submit.click(predict, inputs=[interest, sentiment], outputs=result)
44
 
45
+ # βœ… Launch app
46
  if __name__ == "__main__":
47
  demo.launch()
48
+