Spaces:
Sleeping
Sleeping
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() |