import openai import streamlit as st # Function to call the OpenAI API and get the email content def generate_email(api_key, email_type, details): openai.api_key = api_key # Set OpenAI API key provided by the user # Define the conversation in the chat-based format messages = [ {"role": "system", "content": "You are a helpful assistant that writes professional emails."}, {"role": "user", "content": f"I need to write a professional email for the following situation:\nEmail Type: {email_type}\nDetails: {details}\nPlease generate the body of the email, including suggestions for the subject line and sign-off. Ensure the email tone is professional and polite."} ] try: # Request to OpenAI API (using chat/completions endpoint) response = openai.ChatCompletion.create( model="gpt-4o", # You can replace this with any other chat-based model like `gpt-4` messages=messages, max_tokens=1200, temperature=0.7 ) # Return the generated email content return response.choices[0].message['content'].strip() except Exception as e: return f"Error: {str(e)}" # Streamlit app def email_composer(): st.title("Automated Email Composer") st.write("This tool helps you generate professional emails, improve tone and grammar, and suggest appropriate subject lines and sign-offs.") # Step 1: Enter OpenAI API key api_key = st.text_input("Enter your OpenAI API Key", type="password") # Step 2: Select email type email_type = st.selectbox( "Select Email Type", ["Request for Information", "Follow-Up", "Introduction", "Complaint", "Thank You", "Job Application", "Meeting Request", "Others"] ) # Step 3: Enter email details details = st.text_area("Enter Email Details", "Please provide the necessary details for the email.") # Step 4: Generate email button if st.button("Generate Email"): if api_key and details: with st.spinner("Generating email..."): # Call the generate_email function to get the email content email_content = generate_email(api_key, email_type, details) st.subheader("Generated Email") st.write(email_content) else: if not api_key: st.error("Please enter your OpenAI API key.") if not details: st.error("Please enter the email details to generate the email.") # Run the Streamlit app if __name__ == "__main__": email_composer()