blogpost_app / app.py
talha2001's picture
Update app.py
d137226 verified
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.")