debojit01 commited on
Commit
c126f31
·
verified ·
1 Parent(s): ff4f38b

saves the feedback to dataset repo

Browse files
Files changed (1) hide show
  1. app.py +26 -11
app.py CHANGED
@@ -1,15 +1,16 @@
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 = "training_data.csv"
11
- if not os.path.exists(FEEDBACK_FILE):
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 only when user submits"""
23
- if is_correct is None: # No feedback provided
24
- return "Prediction shown"
 
 
 
 
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
- new_data = pd.DataFrame({"text": [text], "label": [true_label]})
30
- new_data.to_csv(FEEDBACK_FILE, mode='a', header=not os.path.exists(FEEDBACK_FILE), index=False)
31
- return "Thank you for your feedback!"
 
 
 
 
 
 
 
 
 
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")