Spaces:
Sleeping
Sleeping
import json | |
import os | |
import uuid | |
from pathlib import Path | |
from huggingface_hub import CommitScheduler | |
LANGUAGE = os.environ["LANGUAGE"] | |
APP_INSTANCE_ID = str(uuid.uuid4()) | |
feedback_file = Path("user_feedback/") / f"data_{APP_INSTANCE_ID}.json" | |
feedback_folder = feedback_file.parent | |
scheduler = CommitScheduler( | |
repo_id=f"feel-fl/open-human-feedback-chat-{LANGUAGE}", | |
repo_type="dataset", | |
folder_path=feedback_folder, | |
path_in_repo="data", | |
every=1, | |
) | |
def save_feedback(input_object: dict) -> None: | |
""" | |
Append input/outputs and user feedback to a JSON Lines file using a thread lock to avoid concurrent writes from different users. | |
""" | |
with scheduler.lock: | |
with feedback_file.open(mode="a") as f: | |
f.write(json.dumps(obj=input_object)) | |
f.write("\n") | |