import subprocess # Run update_embeddings.py as subprocess import time # Run update_embeddings.py periodically import threading # in a separate thread import gradio as gr # Create a Gradio interface so spaces doesnt timeout from datetime import datetime import math from gradio_client import Client def log_message(message): # Print message with a timestamp print(f"{datetime.now().strftime('%Y-%m-%d %H:%M:%S')} - {message}") def useless_computation(): client = Client("bluuebunny/update_arxiv_embeddings") result = client.predict( name="Hello!!", api_name="/predict" ) print(result) # Function to run update_embeddings.py periodically def run_script_periodically(): # Wait for the Gradio server to start time.sleep(10) while True: current_day = datetime.now().weekday() # Monday is 0, Sunday is 6 if current_day == 0: # Check if today is Monday log_message("Starting Updation") # Run run.py as a subprocess subprocess.run(["python", "update_embeddings.py"]) # Use "python3" if needed log_message("Finished Updation") # Wait for the specified interval before running again time.sleep(60 * 60 * 24) else: print("Today is not Monday, lets check again in some.") useless_computation() # Wait a bit time.sleep(60 * 60 * 1) # Function to greet the user def greet(name): return "Hello " + name + "!!" # Create a thread to run the script periodically script_thread = threading.Thread(target=run_script_periodically) # Start the thread script_thread.start() demo = gr.Interface(fn=greet, inputs="text", outputs="text") demo.launch()