saves the feedback to dataset repo
Browse files
app.py
CHANGED
@@ -1,15 +1,16 @@
|
|
1 |
import gradio as gr
|
2 |
from transformers import pipeline
|
3 |
-
import
|
|
|
4 |
import os
|
|
|
5 |
|
6 |
# Initialize detector
|
7 |
detector = pipeline("text-classification", model="debojit01/fake-review-detector")
|
8 |
|
9 |
-
#
|
10 |
-
|
11 |
-
|
12 |
-
pd.DataFrame(columns=["text", "label"]).to_csv(FEEDBACK_FILE, index=False)
|
13 |
|
14 |
def predict(text):
|
15 |
result = detector(text)[0]
|
@@ -19,16 +20,30 @@ def predict(text):
|
|
19 |
return {"Real": 1 - result["score"], "Fake": result["score"]}
|
20 |
|
21 |
def save_feedback(text, prediction, is_correct):
|
22 |
-
"""Save feedback
|
23 |
-
|
24 |
-
|
|
|
|
|
|
|
|
|
25 |
|
|
|
26 |
predicted_label = "Real" if prediction["Real"] > 0.5 else "Fake"
|
27 |
true_label = predicted_label if is_correct else ("Fake" if predicted_label == "Real" else "Real")
|
28 |
|
29 |
-
|
30 |
-
|
31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
|
33 |
with gr.Blocks() as app:
|
34 |
gr.Markdown("## Fake Review Detector")
|
|
|
1 |
import gradio as gr
|
2 |
from transformers import pipeline
|
3 |
+
from datasets import load_dataset, Dataset
|
4 |
+
from huggingface_hub import HfApi, notebook_login
|
5 |
import os
|
6 |
+
import pandas as pd
|
7 |
|
8 |
# Initialize detector
|
9 |
detector = pipeline("text-classification", model="debojit01/fake-review-detector")
|
10 |
|
11 |
+
# Hugging Face Dataset setup
|
12 |
+
HF_DATASET = "debojit01/fake-review-dataset"
|
13 |
+
TOKEN = os.environ.get("HF_TOKEN") # Set this in Space secrets
|
|
|
14 |
|
15 |
def predict(text):
|
16 |
result = detector(text)[0]
|
|
|
20 |
return {"Real": 1 - result["score"], "Fake": result["score"]}
|
21 |
|
22 |
def save_feedback(text, prediction, is_correct):
|
23 |
+
"""Save feedback to HF dataset"""
|
24 |
+
try:
|
25 |
+
# Load existing dataset
|
26 |
+
dataset = load_dataset(HF_DATASET)['train']
|
27 |
+
df = dataset.to_pandas()
|
28 |
+
except:
|
29 |
+
df = pd.DataFrame(columns=["text", "label"])
|
30 |
|
31 |
+
# Determine correct label
|
32 |
predicted_label = "Real" if prediction["Real"] > 0.5 else "Fake"
|
33 |
true_label = predicted_label if is_correct else ("Fake" if predicted_label == "Real" else "Real")
|
34 |
|
35 |
+
# Append new data
|
36 |
+
new_row = {"text": text, "label": true_label}
|
37 |
+
df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)
|
38 |
+
|
39 |
+
# Convert back to dataset and push
|
40 |
+
updated_dataset = Dataset.from_pandas(df)
|
41 |
+
updated_dataset.push_to_hub(
|
42 |
+
HF_DATASET,
|
43 |
+
token=TOKEN,
|
44 |
+
commit_message=f"New feedback added via app"
|
45 |
+
)
|
46 |
+
return "Feedback saved to dataset!"
|
47 |
|
48 |
with gr.Blocks() as app:
|
49 |
gr.Markdown("## Fake Review Detector")
|