Spaces:
Running
Running
| from transformers import pipeline | |
| import gradio as gr | |
| # Load a small text generation model (fast on free CPU) | |
| print("Loading distilgpt2...") | |
| generator = pipeline("text-generation", model="distilgpt2") | |
| print("Model loaded!") | |
| def generate_text(prompt, temperature, top_p, max_length): | |
| if not prompt or not prompt.strip(): | |
| return "Type a prompt above first!" | |
| result = generator( | |
| prompt, | |
| temperature=max(temperature, 0.01), # avoid division by zero | |
| top_p=top_p, | |
| max_length=int(max_length), | |
| do_sample=True, | |
| num_return_sequences=1, | |
| ) | |
| return result[0]["generated_text"] | |
| demo = gr.Interface( | |
| fn=generate_text, | |
| inputs=[ | |
| gr.Textbox( | |
| lines=3, | |
| placeholder="Start your text here...", | |
| label="Prompt", | |
| ), | |
| gr.Slider( | |
| minimum=0.1, | |
| maximum=2.0, | |
| value=0.7, | |
| step=0.1, | |
| label="Temperature (creativity)", | |
| ), | |
| gr.Slider( | |
| minimum=0.1, | |
| maximum=1.0, | |
| value=0.9, | |
| step=0.05, | |
| label="Top-p (diversity)", | |
| ), | |
| gr.Slider( | |
| minimum=20, | |
| maximum=200, | |
| value=100, | |
| step=10, | |
| label="Max Length (words-ish)", | |
| ), | |
| ], | |
| outputs=gr.Textbox(label="Generated Text", lines=10), | |
| title="Text Playground", | |
| description="Type a prompt and use the sliders to control how the AI writes. Temperature controls creativity (low = predictable, high = wild). Top-p controls word diversity. Max length controls how much it writes.", | |
| examples=[ | |
| ["Once upon a time in a school where robots", 0.7, 0.9, 100], | |
| ["The secret ingredient in the recipe was", 1.2, 0.9, 80], | |
| ["Dear Principal, I am writing to request", 0.3, 0.9, 100], | |
| ["Breaking news: scientists discover that cats", 0.9, 0.95, 120], | |
| ["The haunted house at the end of the street", 1.5, 0.8, 150], | |
| ], | |
| ) | |
| demo.launch() |