File size: 1,705 Bytes
18eb5f6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import datetime
import csv
import os
import huggingface_hub
from huggingface_hub import Repository
import gradio as gr
from datasets import load_dataset, DatasetDict, Dataset, concatenate_datasets




# Define the dataset repository on Hugging Face Hub
HF_DATASET_REPO = "florentgbelidji/alpine-agent-feedback"


# Load or initialize the dataset
try:
    dataset = load_dataset(HF_DATASET_REPO)
except FileNotFoundError:
    # Initialize an empty dataset if it doesn't exist
    dataset = DatasetDict({
        "train": Dataset.from_dict({
            "timestamp": [datetime.datetime.now().isoformat()],
            "user_feedback": ["Initial feedback"],
        })
    })
    dataset.push_to_hub(HF_DATASET_REPO, token=os.getenv("HF_TOKEN"))


def get_feedback_interface():
    with gr.Tab("Feedback Form"):
        feedback_input = gr.Textbox(label="Your Feedback", lines=4, placeholder="Type your feedback here...")
        submit_button = gr.Button("Submit")
        feedback_response = gr.Markdown(label="feedback_response")

        def add_feedback(feedback):
            from datetime import datetime

            # Append feedback to the dataset
            new_data = {
                "timestamp": [datetime.now().isoformat()],
                "user_feedback": [feedback],
            }
            new_entry = Dataset.from_dict(new_data)
            global dataset
            dataset["train"] = concatenate_datasets([dataset["train"], new_entry])

            # Push updated dataset to the Hub
            dataset.push_to_hub(HF_DATASET_REPO)

            return "Thank you for your feedback!"

        submit_button.click(add_feedback, inputs=[feedback_input], outputs=[feedback_response])