import gradio as gr import torch from model import * import requests import os device = "cuda" if torch.cuda.is_available() else "cpu" object_store_url = os.getenv("OBJECT_STORE") username = os.getenv("USERNAME") password = os.getenv("PASSWORD") def download(filename, directory): download_url = f"{object_store_url}{directory}/{filename}" response = requests.get(download_url, auth=(username, password)) if response.status_code == 200: with open(filename, "wb") as file: file.write(response.content) print("File downloaded successfully") else: print(f"Failed to download file. Status code: {response.status_code}") print(response.text) download("saved_model.pth", "ShakespeareGPT") model = torch.load( "saved_model.pth", map_location=torch.device(device), weights_only=False ) def generate_text(context, num_of_tokens, temperature=1.0): if context == None or context == "": idx = torch.zeros((1, 1), dtype=torch.long) else: idx = torch.tensor(encode(context), dtype=torch.long).unsqueeze(0) text = "" for token in model.generate( idx, max_new_tokens=num_of_tokens, temperature=temperature ): text += token yield text with gr.Blocks() as demo: gr.HTML("