import gradio as gr from transformers import pipeline # Load a poetry-specific model generator = pipeline("text-generation", model="gpt2") # Function to generate poems based on a prompt and form def generate_poem(prompt, form): # Add more specific prompt tuning based on the selected form if form == "Sonnet": prompt = f"Write a sonnet about {prompt}" elif form == "Haiku": prompt = f"Write a haiku about {prompt}" elif form == "Limerick": prompt = f"Write a limerick about {prompt}" else: # Free Verse prompt = f"Write a free verse poem about {prompt}" poem = generator(prompt, max_length=150, num_return_sequences=1)['generated_text'] # Increased max_length return poem.strip() # Gradio interface with dropdown for poetic forms iface = gr.Interface( fn=generate_poem, inputs=[ gr.Textbox(lines=2, placeholder="Enter a prompt for your poem here...", label="Poem Prompt"), gr.Dropdown(choices=["Sonnet", "Haiku", "Limerick", "Free Verse"], label="Poetic Form") ], outputs="text", title="Poem Generator", description="Generate poems with AI. Provide a prompt and let the AI create a poem for you!", ) # Launch the Gradio app iface.launch(share=True)