File size: 2,851 Bytes
3fe53b9
 
 
 
 
 
 
 
 
 
 
 
 
2f69897
 
 
 
 
 
 
 
 
3fe53b9
 
 
 
 
 
 
2f69897
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3fe53b9
 
 
2f69897
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
import streamlit as st
import google.generativeai as genai
import os
from dotenv import load_dotenv
from styles import get_custom_css

# Load environment variables
load_dotenv()

# Configure Google Gemini API
genai.configure(api_key=os.getenv('GOOGLE_API_KEY'))
model = genai.GenerativeModel('gemini-pro')

# Hide Streamlit menu and footer
st.markdown("""
<style>
#MainMenu {visibility: hidden;}
footer {visibility: hidden;}
header {visibility: hidden;}
</style>
""", unsafe_allow_html=True)

# Custom CSS
st.markdown(get_custom_css(), unsafe_allow_html=True)

# App title and description
st.title('🚀 Great Offer Generator')
st.markdown('''### Transform your skills into compelling offers!''')

# Create two columns for layout
col1, col2 = st.columns([1, 1])

# Main input section in left column
with col1:
    skills = st.text_area('💪 Your Skills', height=70, 
                        help='List your key skills and expertise')
    product_service = st.text_area('🎯 Product/Service', height=70,
                                help='Describe your product or service')

    # Accordion for additional settings
    with st.expander('⚙️ Advanced Settings'):
        target_audience = st.text_area('👥 Target Audience', height=70,
                                    help='Describe your ideal customer or client')
        temperature = st.slider('🌡️ Creativity Level', min_value=0.0, max_value=2.0, value=0.7,
                            help='Higher values make the output more creative but less focused')

    # Generate button
    if st.button('Generate Offer 🎉'):
        if not skills or not product_service:
            st.error('Please fill in both Skills and Product/Service fields')
        else:
            with st.spinner('Creating your perfect offer...'):
                prompt = f"""Based on the following information, create a compelling offer:
                Skills: {skills}
                Product/Service: {product_service}
                Target Audience: {target_audience if target_audience else 'General audience'}
                
                Please create a professional and engaging offer that highlights the value proposition
                and appeals to the target audience. Include a clear call to action."""
                
                try:
                    response = model.generate_content(prompt, temperature=temperature)
                    st.success('✨ Your offer is ready!')
                    
                    # Display result in the right column
                    with col2:
                        st.markdown('### 📝 Generated Offer')
                        st.markdown(response.text)
                except Exception as e:
                    st.error(f'An error occurred: {str(e)}')

# Footer
st.markdown('---')
st.markdown('Made with ❤️ by Jesús Cabrera')