my-email-bot / app.py
siddhartharya's picture
Update app.py
001abb9 verified
raw
history blame
1.91 kB
import os
import gradio as gr
from groq import Groq
# Initialize Groq client
client = Groq(api_key=os.environ.get("GROQ_API_KEY"))
# System prompt with recipient's profile
SYSTEM_PROMPT = """
You are an AI assistant that generates personalized emails. The recipient is John Doe, a 45-year-old marketing executive at a tech company. He is interested in innovative marketing strategies and has a busy schedule.
"""
def generate_email(name, project, key_benefits):
prompt = f"Generate an email to the person described in the system prompt. The email should be from {name}, about the project '{project}', and highlight the following key benefits: {key_benefits}"
try:
chat_completion = client.chat.completions.create(
messages=[
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": prompt}
],
model="mixtral-8x7b-32768",
temperature=0.5,
max_tokens=500,
)
return chat_completion.choices[0].message.content
except Exception as e:
return f"An error occurred: {str(e)}"
# Create Gradio interface
with gr.Blocks() as demo:
gr.Markdown("# Email Generator")
gr.Markdown("Generate a personalized email based on the given inputs.")
with gr.Row():
with gr.Column():
name = gr.Textbox(label="Your Name", placeholder="Enter your name")
project = gr.Textbox(label="Project Name", placeholder="Enter the project name")
benefits = gr.Textbox(label="Key Benefits", placeholder="List key benefits, separated by commas")
submit_btn = gr.Button("Generate Email")
with gr.Column():
output = gr.Textbox(label="Generated Email", lines=10)
submit_btn.click(generate_email, inputs=[name, project, benefits], outputs=output)
# Launch the app
demo.launch()