File size: 1,295 Bytes
55577a4 2ed7dce 55577a4 | 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 | import openai
import gradio as gr
import os
openai.api_key = os.environ['API_KEY']
def query_gpt(message, chat_history):
chat_history.append({"role": "user", "content": message})
out = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=chat_history)
response = out["choices"][0]["message"]["content"]
chat_history.append({"role": "assistant", "content": response})
return response, chat_history
def chatbot_to_chat_history(chatbot):
chat_history = []
chat_history.append({"role": "system", "content": "You are a helpful assistant."})
for message_pair in chatbot:
chat_history.append({"role": "user", "content": message_pair[0]})
chat_history.append({"role": "assistant", "content": message_pair[1]})
return chat_history
with gr.Blocks() as chat:
chatbot = gr.Chatbot()
msg = gr.Textbox(label="Message")
pwd = gr.Textbox(label="Password")
clear = gr.ClearButton([msg, chatbot])
def respond(message, pwd, chatbot):
if pwd == os.environ['PASSWORD']:
chat_history = chatbot_to_chat_history(chatbot)
bot_message,_ = query_gpt(message, chat_history)
chatbot.append((message, bot_message))
return "", pwd, chatbot
msg.submit(respond, [msg, pwd, chatbot], [msg, pwd, chatbot])
chat.launch() |