text-playground / app.py
profplate's picture
Create app.py
40a531f verified
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()