Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
|
9 |
-
"
|
10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
13 |
-
|
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()
|
|
|
|
|
|
|
|
|
|