import json from datetime import datetime from pathlib import Path from uuid import uuid4 import gradio as gr from huggingface_hub import CommitScheduler JSON_DATASET_DIR = Path("json_dataset") JSON_DATASET_DIR.mkdir(parents=True, exist_ok=True) JSON_DATASET_PATH = JSON_DATASET_DIR / f"train-{uuid4()}.json" scheduler = CommitScheduler( repo_id="example-commit-scheduler-json", repo_type="dataset", folder_path=JSON_DATASET_DIR, path_in_repo="data", ) def greet(name: str) -> str: return "Hello " + name + "!" def save_json(name: str, greetings: str) -> None: with scheduler.lock: with JSON_DATASET_PATH.open("a") as f: json.dump({"name": name, "greetings": greetings, "datetime": datetime.now().isoformat()}, f) f.write("\n") def get_demo(): with gr.Row(): greet_name = gr.Textbox(label="Name") greet_output = gr.Textbox(label="Greetings") greet_btn = gr.Button("Greet") greet_btn.click(fn=greet, inputs=greet_name, outputs=greet_output).success( fn=save_json, inputs=[greet_name, greet_output], outputs=None, )