Spaces:
Sleeping
Sleeping
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")
|