import streamlit as st from transformers import GPT2LMHeadModel, GPT2Tokenizer # Load pre-trained GPT-2 model and tokenizer model_name = 'gpt2' model = GPT2LMHeadModel.from_pretrained(model_name) tokenizer = GPT2Tokenizer.from_pretrained(model_name) # Function to generate blog post for a given topic def generate_blog_post(topic, max_length=300): # Encode the input topic into tokens input_ids = tokenizer.encode(topic, return_tensors='pt') # Generate text output = model.generate( input_ids, max_length=max_length, num_return_sequences=1, no_repeat_ngram_size=2, early_stopping=True ) # Decode the output tokens into a string blog_post = tokenizer.decode(output[0], skip_special_tokens=True) return blog_post # Streamlit app st.title("Blog Post Generator") topic = st.text_input("Enter a topic for the blog post:") max_length = st.slider("Maximum length of the blog post:", min_value=50, max_value=1000, value=300) if st.button("Generate Blog Post"): if topic: with st.spinner('Generating blog post...'): blog_post = generate_blog_post(topic, max_length) st.write(blog_post) else: st.warning("Please enter a topic.")