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()