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.")