debojit01 commited on
Commit
bd1c1a3
·
verified ·
1 Parent(s): 920451c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -9
app.py CHANGED
@@ -1,18 +1,59 @@
1
  import gradio as gr
2
  from transformers import pipeline
 
 
3
 
 
4
  detector = pipeline("text-classification", model="debojit01/fake-review-detector")
5
 
 
 
 
 
 
6
  def predict(text):
7
  result = detector(text)[0]
8
- return {
9
- "Fake": result["score"] if result["label"] == "LABEL_0" else 1 - result["score"],
10
- "Genuine": 1 - result["score"] if result["label"] == "LABEL_0" else result["score"]
 
 
 
 
 
 
 
 
11
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
 
13
- gr.Interface(
14
- fn=predict,
15
- inputs="text",
16
- outputs="label",
17
- title="Fake Review Detector"
18
- ).launch()
 
1
  import gradio as gr
2
  from transformers import pipeline
3
+ import pandas as pd
4
+ import os
5
 
6
+ # Initialize detector
7
  detector = pipeline("text-classification", model="debojit01/fake-review-detector")
8
 
9
+ # CSV file setup
10
+ FEEDBACK_FILE = "feedback_data.csv"
11
+ if not os.path.exists(FEEDBACK_FILE):
12
+ pd.DataFrame(columns=["text", "predicted_label", "user_feedback"]).to_csv(FEEDBACK_FILE, index=False)
13
+
14
  def predict(text):
15
  result = detector(text)[0]
16
+ if result["label"] == "LABEL_0": # Real
17
+ return {"Real": result["score"], "Fake": 1 - result["score"]}
18
+ else: # Fake (LABEL_1)
19
+ return {"Real": 1 - result["score"], "Fake": result["score"]}
20
+
21
+ def save_feedback(text, prediction, feedback):
22
+ """Save user feedback to CSV"""
23
+ new_row = {
24
+ "text": text,
25
+ "predicted_label": "Real" if prediction["Real"] > 0.5 else "Fake",
26
+ "user_feedback": feedback
27
  }
28
+
29
+ # Append to CSV
30
+ df = pd.read_csv(FEEDBACK_FILE)
31
+ df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)
32
+ df.to_csv(FEEDBACK_FILE, index=False)
33
+ return "Feedback saved! Thank you!"
34
+
35
+ with gr.Blocks() as app:
36
+ gr.Markdown("## Fake Review Detector (with Feedback)")
37
+
38
+ with gr.Row():
39
+ review = gr.Textbox(label="Enter Review")
40
+ output = gr.Label(label="Prediction")
41
+
42
+ with gr.Row():
43
+ feedback = gr.Radio(
44
+ choices=["Correct", "Incorrect"],
45
+ label="Is this prediction correct?"
46
+ )
47
+ submit_btn = gr.Button("Submit Feedback")
48
+
49
+ # Prediction flow
50
+ review.change(predict, inputs=review, outputs=output)
51
+
52
+ # Feedback flow
53
+ submit_btn.click(
54
+ save_feedback,
55
+ inputs=[review, output, feedback],
56
+ outputs=gr.Textbox(label="Feedback Status")
57
+ )
58
 
59
+ app.launch()