import gradio as gr from transformers import AutoTokenizer, AutoModelForCausalLM import torch model_name = "PostNetworkAcademy/gpt2-robotics-PostNetworkAcademy" # Load tokenizer & model tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name) # Ensure tokens exist if tokenizer.pad_token is None: tokenizer.pad_token = tokenizer.eos_token or "<|endoftext|>" # Force model to CPU (avoids device mismatch) device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model = model.to(device) def generate_text(prompt, max_length=100, temperature=0.7, top_p=0.9): inputs = tokenizer(prompt, return_tensors="pt").to(device) outputs = model.generate( **inputs, max_length=max_length, temperature=temperature, top_p=top_p, do_sample=True, pad_token_id=tokenizer.pad_token_id, eos_token_id=tokenizer.eos_token_id ) return tokenizer.decode(outputs[0], skip_special_tokens=True) # Gradio UI demo = gr.Interface( fn=generate_text, inputs=[ gr.Textbox(lines=4, placeholder="Enter your robotics prompt...", label="Prompt"), gr.Slider(20, 500, value=100, step=10, label="Max Length"), gr.Slider(0.1, 1.5, value=0.7, step=0.1, label="Temperature"), gr.Slider(0.1, 1.0, value=0.9, step=0.05, label="Top-p"), ], outputs=gr.Textbox(label="Generated Response"), title="GPT-2 Robotics - PostNetworkAcademy", description="Fine-tuned GPT-2 model for robotics." ) if __name__ == "__main__": demo.launch()