Spaces:
Runtime error
Runtime error
import gradio as gr | |
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline | |
# Load model (ensure Space is using GPU!) | |
model_id = "ajibawa-2023/Young-Children-Storyteller-Mistral-7B" | |
tokenizer = AutoTokenizer.from_pretrained(model_id) | |
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto") | |
generator = pipeline("text-generation", model=model, tokenizer=tokenizer) | |
def generate_prompt(characters, theme, setting, scenario): | |
return f"""You are a children's story writer. | |
Characters: {characters} | |
Theme: {theme} | |
Setting: {setting} | |
Scenario: {scenario} | |
Write a short story suitable for children aged 6β12. It should have a beginning, middle, and a happy ending. Use simple language, avoid extra characters, and include a positive message. | |
Story:""" | |
def generate_story(characters, theme, setting, scenario): | |
prompt = generate_prompt(characters, theme, setting, scenario) | |
result = generator(prompt, max_new_tokens=300, temperature=0.8, do_sample=True)[0]["generated_text"] | |
return result[len(prompt):].strip() | |
# Gradio UI | |
with gr.Blocks(title="Genieverse: Story Generator for Kids") as app: | |
gr.Markdown("## π Genieverse β AI Story Creator for Children 6β12") | |
with gr.Row(): | |
characters = gr.Dropdown(["Girl", "Boy", "Wolf", "Elephant", "Horse", "Dog", "Bird"], label="Select Characters", multiselect=True, value=["Girl", "Wolf"]) | |
theme = gr.Dropdown(["Bravery", "Friendship", "Kindness", "Helping Others"], label="Select Theme", value="Bravery") | |
with gr.Row(): | |
setting = gr.Dropdown(["Forest", "Jungle", "Mountain", "Village", "River"], label="Select Setting", value="Forest") | |
scenario = gr.Textbox(label="Enter a Scenario", placeholder="e.g., A girl saw a wolf coming toward her", value="A girl saw a wolf coming toward her") | |
generate_btn = gr.Button("Generate Story β¨") | |
story_output = gr.Textbox(label="Generated Story", lines=15) | |
generate_btn.click(fn=generate_story, inputs=[characters, theme, setting, scenario], outputs=story_output) | |
app.launch() | |