File size: 1,560 Bytes
770f5f7
 
 
 
20d9410
770f5f7
20d9410
770f5f7
93675e1
 
1125ceb
770f5f7
 
2a9567a
3b847a5
2a9567a
3b847a5
93675e1
3b847a5
93675e1
3b847a5
 
 
 
 
93675e1
3b847a5
770f5f7
2a9567a
3b847a5
 
1a385f1
93675e1
 
2a9567a
 
 
3b847a5
 
 
 
2a9567a
93675e1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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()