import os import datetime #import streamlit as st from dotenv import load_dotenv, find_dotenv from openai import OpenAI import openai import gradio as gr load_dotenv(find_dotenv()) openai.api_key = os.getenv("OPENAI_API_KEY") client = OpenAI() def write_letter(airline, travel_date, tone, issues, compensation): user_request = f"""My name is John Smith. I live at 1 Main St, Somewhere, NC. My Frequent Flyer number is 2194048289. On {travel_date} I was scheduled on {airline} airline to fly from Montreal to Atlanta. Unfortunately I had some issues such as {", and ".join(issues)}. Write a letter to customer service in a {tone} tone describing the problems and asking for {compensation} as compensation""" response = client.chat.completions.create( model="gpt-4o-mini", messages=[ {"role": "system", "content": "You are a helpful letter writing assistant."}, {"role": "user", "content": user_request }] ) return (response.choices[0].message.content) demo = gr.Interface( fn=write_letter, inputs=[gr.Radio(("Delta", "American"), value="Delta"), gr.Textbox("May 2"), gr.Radio(("polite", "polite but firm", "annoyed", "livid","litigious"), value='polite but firm'), gr.Dropdown(("lost luggage", "delayed flight", "cancelled flight"), multiselect=True, value="lost luggage"), gr.Radio(("cash", "reward miles", "free flight"), value='cash') ], allow_flagging='never', outputs=["text"], live=False, title="Complaint Letter Generator", description="""You just returned from the trip from HELL.\n Delta lost your bag or American cancelled your flight or something like that.\n While it is all still fresh in your mind let AI help you craft a letter to customer support to get some compensation.\n Fill just some of the details of your recent bad airline experience. Start on the polite side for tone, but don't be afraid to turn it up if you don't get their attention.\n Then click 'Submit' below to generate the letter""", css="footer{display:none !important}" ) demo.launch(share=True)