Email_write / app.py
xiakshay's picture
Upload app.py
70f58d6 verified
Raw History Blame Contribute Delete
3.4 kB
from dotenv import load_dotenv
import streamlit as st
import os
from PIL import Image
import google.generativeai as genai
st.set_page_config(page_title="Professional content writer", layout="wide") # Optional: Set wide layout
# background_style = f"""
# body {{
# background-image: url("image.jpeg"); /* Replace with your image path */
# background-size: cover;
# background-repeat: no-repeat;
# background-position: center;
# margin: 0;
# padding: 0;
# }}
# """
# st.write('<style>{}</style>'.format(background_style), unsafe_allow_html=True)
# ... rest of your code ...
# Load environment variables
load_dotenv()
# Configure API key
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
# Function to load content based on selected type
def generate_content(content_type, input_name, input_receiver, input_subject, input_prompt, previous_context=None):
input_title = None
if content_type == 'Email':
input_title = f"{input_name} wants to write an email to {input_receiver} about {input_subject} which says about {input_prompt}"
elif content_type == 'LinkedIn Message':
if previous_context:
input_subject += f" The last messages I got was about {previous_context}"
input_title = f"{input_name} wants to send a LinkedIn message to {input_receiver} about {input_subject} which says about {input_prompt} make sure to show my skills and focus on what I want to say. Use professional words and show some respect. also tell that check my resume and give suggestions if needed to match the job profile."
elif content_type == 'Connection Request':
input_title = f"start with hi {input_receiver} and focus on {input_subject} which says about {input_prompt}, this should be not more than 25 words. write in formal and professional way. I want to connect with that guy so make it happen in limited words. don't use anything like- they are good or not or warm regards. in short message we don't use thimething like this."
model = genai.GenerativeModel('gemini-pro')
try:
response = model.generate_content([input_prompt, input_title])
return response.text
except Exception as e:
return f"Error: {str(e)}"
# Streamlit interface
# st.set_page_config(page_title="Professional Content Writer")
st.header("Gemini Application")
# User inputs
input_name = st.text_input("Input Your name: ", key="input1")
input_receiver = st.text_input("Input receiver name: ", key="input2")
input_subject = st.text_input("Input subject: ", key="input3")
input_prompt = st.text_input("Input some prompts: ", key="input4")
# Select content type
content_types = ['Email', 'LinkedIn Message', 'Connection Request']
selected_content_type = st.selectbox("Select Content Type:", content_types)
previous_context = None
if selected_content_type == 'LinkedIn Message':
previous_context = st.text_input("Input the previous context:", key="input5")
# Generate button
submit = st.button("Generate")
if submit:
if input_name.strip() == "" or input_receiver.strip() == "" or input_subject.strip() == "" or input_prompt.strip() == "":
st.error("Please fill in all fields.")
else:
response = generate_content(selected_content_type, input_name, input_receiver, input_subject, input_prompt, previous_context)
st.subheader(selected_content_type)
st.write(response)