|
|
|
import streamlit as st |
|
from transformers import pipeline |
|
|
|
|
|
st.title("π§ββοΈ Magic Story Buddy π") |
|
st.markdown("Let's create a magical story just for you!") |
|
|
|
|
|
@st.cache_resource |
|
def load_model(): |
|
return pipeline("text-generation", model="ajibawa-2023/Young-Children-Storyteller-Mistral-7B") |
|
|
|
model = load_model() |
|
|
|
|
|
child_name = st.text_input("What's your name, young storyteller?") |
|
story_theme = st.selectbox("What would you like your story to be about?", |
|
["Space Adventure", "Magical Forest", "Underwater World", "Dinosaur Discovery"]) |
|
|
|
|
|
story_length = st.slider("How long should the story be?", 50, 200, 100) |
|
include_moral = st.checkbox("Include a moral lesson?") |
|
|
|
if st.button("Create My Story!"): |
|
if child_name and story_theme: |
|
|
|
prompt = f"[CHILDREN'S STORY] Once upon a time, in a {story_theme.lower()}, there was a brave child named {child_name}. " |
|
if include_moral: |
|
prompt += "This story teaches us that " |
|
|
|
|
|
story = model(prompt, max_length=story_length, num_return_sequences=1)[0]['generated_text'] |
|
|
|
|
|
st.markdown("## Your Magical Story") |
|
st.write(story) |
|
|
|
|
|
st.balloons() |
|
else: |
|
st.warning("Please tell me your name and choose a story theme.") |
|
|
|
|
|
st.markdown("---") |
|
st.markdown("π Remember, you're the star of every story! π") |