File size: 1,258 Bytes
407d368
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0617bee
407d368
 
 
 
 
 
 
 
 
 
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
import os

import gradio as gr
import openai

openai.api_key = os.environ.get('OPENAI_API_KEY')
with open("system-prompt.txt", encoding="utf-8") as f:
    system_prompt = f.read()


def query(message: str, chat_history: list) -> str:
    global system_prompt
    gpt_messages = [
        {"role": "system", "content": system_prompt}
    ]
    for user_message, bot_message in chat_history:
        gpt_messages.extend([
            {"role": "user", "content": user_message},
            {"role": "assistant", "content": bot_message},
        ])
    gpt_messages.append({"role": "user", "content": message})

    rez = openai.ChatCompletion.create(
        model="gpt-4",
        messages=gpt_messages,
    )
    return rez['choices'][0]['message']['content']


with gr.Blocks() as demo:
    chatbot = gr.Chatbot(label="Awesome airlines chatbot assistant")
    msg = gr.Textbox(label="message (API is turned off, message me to turn it back on)", placeholder="")
    clear = gr.ClearButton([msg, chatbot])

    def respond(message, chat_history: list):
        bot_message = query(message, chat_history)
        chat_history.append((message, bot_message))
        return "", chat_history

    msg.submit(respond, [msg, chatbot], [msg, chatbot])

demo.launch()