MiniCapstone-2 / app.py
TheTallGuy's picture
initial commit
93ed4be verified
import gradio as gr
import pandas as pd
# Function to generate email
def generate_email(recipient_name, recipient_role, company_name, industry):
return (f"Hello {recipient_name},\n\n"
f"I hope this email finds you well. My name is Niket, and I'm reaching out to you regarding opportunities at {company_name} in the {industry} sector. "
"I believe we could explore potential collaboration. Would you be available for a coffee chat next week?\n\n"
"Looking forward to hearing from you!\n\n"
"Best,\nNiket")
# Function to save user profile to Excel
def save_user_profile(industry, target_audience, personal_info):
try:
df = pd.read_excel("user_profiles.xlsx")
except FileNotFoundError:
df = pd.DataFrame(columns=["Industry", "Target Audience", "Personal Info"])
new_profile = pd.DataFrame({
"Industry": [industry],
"Target Audience": [target_audience],
"Personal Info": [personal_info]
})
df = pd.concat([df, new_profile], ignore_index=True)
df.to_excel("user_profiles.xlsx", index=False)
# Placeholder function for connecting to email client
def connect_email_client(email_service):
return f"Connected to {email_service} successfully!"
# Placeholder function for analytics
def get_analytics():
return "Analytics data: Open rates, response rates, conversion metrics..."
# Gradio UI
with gr.Blocks() as demo:
gr.Markdown("# EmailGenie - Your AI Email Generator")
# User Profile Setup
gr.Markdown("### User Profile Setup")
industry = gr.Textbox(label="Industry", placeholder="Enter your industry")
target_audience = gr.Textbox(label="Target Audience", placeholder="Who are you targeting?")
personal_info = gr.Textbox(label="Personal Info", placeholder="Any relevant personal info")
save_button = gr.Button("Save Profile")
save_button.click(fn=save_user_profile, inputs=[industry, target_audience, personal_info])
# Email Generation Section
gr.Markdown("### Generate Your Email")
recipient_name = gr.Textbox(label="Recipient's Name", placeholder="Enter the recipient's name")
recipient_role = gr.Textbox(label="Recipient's Role", placeholder="Enter the recipient's role")
company_name = gr.Textbox(label="Company Name", placeholder="Enter the company name")
output = gr.Textbox(label="Generated Email", interactive=False)
generate_button = gr.Button("Generate Email")
generate_button.click(fn=generate_email, inputs=[recipient_name, recipient_role, company_name, industry], outputs=output)
# Connect Email Client Section
gr.Markdown("### Connect Email Client")
email_service = gr.Dropdown(label="Select Email Client", choices=["SendGrid", "Resend"])
connect_button = gr.Button("Connect Email Client")
connect_output = gr.Textbox(label="Connection Status", interactive=False) # Create output component
connect_button.click(fn=connect_email_client, inputs=[email_service], outputs=connect_output) # Updated outputs
# Analytics Dashboard Section
gr.Markdown("### Email Analytics")
analytics_button = gr.Button("Get Analytics")
analytics_output = gr.Textbox(label="Analytics Output", interactive=False)
analytics_button.click(fn=get_analytics, inputs=[], outputs=analytics_output)
demo.launch()