Blog-Generation / app.py
lalitwale100's picture
Model Changed
98963dd verified
raw
history blame
2.63 kB
import streamlit as st
import google.generativeai as genai
from dotenv import load_dotenv
import os
load_dotenv()
st.set_page_config(
page_title="Blog Generation Using Google Gemini",
layout="centered",
initial_sidebar_state="collapsed"
)
# Configure the Google Gemini API
api_key = os.getenv("GOOGLE_API_KEY")
genai.configure(api_key=api_key)
# Function to list available models
def list_available_models():
try:
models = genai.list_models()
return [model.name for model in models if "generateContent" in model.supported_generation_methods]
except Exception as e:
st.error(f"Error listing models: {e}")
return []
# Generate blog content using Gemini
def generate_blog(keywords, no_words, blog_style):
try:
available_models = list_available_models()
if not available_models:
return "Unable to retrieve available models. Please check your API key and network connection."
# Select the first available generative model
model_name = available_models[6]
model = genai.GenerativeModel(model_name)
prompt = f"Generate a blog for {blog_style} job profile based on the keywords '{keywords}' within {no_words} words."
response = model.generate_content(prompt)
return response.text
except Exception as e:
return f"Error generating content: {e}"
st.header("Blog Generation App :earth_americas:")
st.write("This app uses Google's Gemini AI for generating blogs. Please provide your inputs below:")
# Input fields
keywords = st.text_input("Enter the Blog Keywords")
col1, col2 = st.columns([5, 5])
with col1:
no_words = st.text_input("Number of Words")
with col2:
blog_style = st.selectbox(
"Writing the blog for",
["Researchers", "Engineers", "Doctors", "Content Creators", "Sportsman", "Businessman", "Common People"],
index=0
)
# Display available models
# if st.checkbox("Show available models"):
# models = list_available_models()
# if models:
# st.write("Available models:")
# for model in models:
# st.write(f"- {model}")
# else:
# st.write("No models available or unable to retrieve models.")
submit = st.button("Generate Blog")
# Generate response
if submit:
if keywords and no_words.isdigit() and int(no_words) > 0:
st.write("Generating blog...")
response = generate_blog(keywords, no_words, blog_style)
st.markdown(f"### Generated Blog:\n\n{response}")
else:
st.warning("Please provide valid inputs for all fields.")