BedtimeStory / app.py
fffiloni's picture
Update app.py
a2bcc76
import os
import gradio as gr
from langchain import PromptTemplate
from langchain.chains import LLMChain
from langchain.llms import OpenAI
eleven = gr.load("elevenlabs/tts", src="spaces")
openai_api_key = os.environ.get("OPENAI_API_KEY")
llm = OpenAI(temperature=0.9)
def split_text(text, max_length):
chunks = []
current_chunk = ''
words = text.split()
for word in words:
if len(current_chunk) + len(word) <= max_length:
current_chunk += ' ' + word
else:
chunks.append(current_chunk.strip())
current_chunk = word
if current_chunk:
chunks.append(current_chunk.strip())
return chunks
def generate_story(text):
"""Generate a story using the langchain library and OpenAI's GPT-3 model."""
prompt = PromptTemplate(
input_variables=["text"],
template="""
You are a fun and seasoned storyteller.
Generate a short story for a 5 years old audience about {text}.
"""
)
story = LLMChain(llm=llm, prompt=prompt)
story_result = story.run(text=text)
print(story_result)
print("""
β€”
Cutting text in chunks
β€”
""")
max_length = 250
text_chunks = split_text(large_text, max_length)
for chunk in text_chunks:
print(chunk)
return story_result
def app(text):
story = generate_story(text)
return story
with gr.Blocks() as demo:
with gr.Column():
text = gr.Textbox()
submit_btn = gr.Button('Submit')
audio = gr.Audio()
story = gr.Textbox()
submit_btn.click(fn=app, inputs=[text], outputs=[story])
demo.launch()