import requests import json import os import threading def log_to_jsonl(file_path, data): def _log_to_jsonl(): # Read the URL of the Gradio app from an environment variable url = os.environ.get("SAVE_URL") if url is None: raise ValueError("SAVE_URL environment variable not set") # Serialize the data to a JSON string json_data = [{"file_path": file_path, "data": data}] # Create a dictionary with the JSON data as the value of a field named "data" request_body = {"data": json_data} # Convert the request body to a JSON string json_data = json.dumps(request_body) # Make the HTTP POST request try: response = requests.post(url, data=json_data, headers={"Content-Type": "application/json"}) # Check if the request was successful if response.status_code == 200: print("Data saved successfully!") else: print("Error saving data:", response.text, response.status_code) except Exception as e: print("Unexpected error saving", e, url, json_data) # Create a new thread and start it thread = threading.Thread(target=_log_to_jsonl) thread.start() # If there is an ENV var called SKIP_NETWORK, we just locally save the data def local_log_to_jsonl(file_path, data): with open("local_data.jsonl", "a") as f: f.write(json.dumps({"file_path": file_path, "data": data}) + "\n") if os.environ.get("SKIP_NETWORK") is not None: log_to_jsonl = local_log_to_jsonl