File size: 3,397 Bytes
70f58d6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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)