GradioTest / app.py
dlflannery's picture
Update app.py
3b847a5 verified
raw
history blame
1.56 kB
import os
import gradio as gr
# import openai
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
key = os.getenv('OPENAI_API_KEY')
uname = os.getenv('LOGNAME')
pwd = os.getenv('PASSWORD')
client = OpenAI(api_key = key)
def clear():
return [None, [], None]
def chat(prompt, user_window, pwd_window, past, response):
if user_window==uname and pwd_window==pwd:
past.append({"role":"user", "content":prompt})
completion = client.chat.completions.create(model="gpt-4o-mini",
messages=past)
reply = completion.choices[0].message.content
response += "\n\nYOU: " + prompt + "\nGPT: " + reply
past.append({"role":"assistant", "content": reply})
return [past, response]
else:
return [[], "User name and/or password are incorrect"]
with gr.Blocks() as demo:
history = gr.State([])
dialog = gr.State()
heading = gr.Label(value="GPT Chat", scale=2, color="Crimson" )
user_window = gr.Textbox(label = "User Name")
pwd_window = gr.Textbox(label = "Password")
clear_button = gr.Button(value="Clear")
prompt_window = gr.Textbox(label = "Prompt")
submit_window = gr.Button(value="Submit")
output_window = gr.Textbox(label = "Dialog")
submit_window.click(chat, inputs=[prompt_window, user_window, pwd_window, history, output_window],
outputs=[history, output_window])
clear_button.click(clear, inputs=[], outputs=[prompt_window, history, output_window])
demo.launch()