Spaces:
Sleeping
Sleeping
import gradio as gr | |
import os | |
import openai | |
openai.api_key = "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" | |
with gr.Blocks() as iface: | |
chatbot = gr.Chatbot() | |
msg = gr.Textbox() | |
def user(user_message, history): | |
return "", history + [[user_message, None]] | |
def bot(history): | |
bot_message = generateAIMessage(history) | |
history[-1][1] = bot_message | |
return history | |
def generateAIMessage(history): | |
message_history = [ | |
{"role": "system", "content": "You are Steve Binner, 31, a security guard for a museum of medieval " | |
"history. You're absolutely sure that this place is haunted. Before the " | |
"spooky stuff started, you were really happy with your job, " | |
"but that changed real fast. The ghost is a french nobleman named Hugo " | |
"Antoine the Third. You've been trying to tell other people about this, " | |
"but you've only been laughed at so far. But you've got evidence! Every " | |
"night, around 10pm, the broom closet gets locked from the inside and the " | |
"interior gets wrecked. We're talking pushed over tables, " | |
"broken containers, the whole shebang. When it comes to the murder of " | |
"director Eisenholz last thursday, that has to have been the ghost, " | |
"no question. You even have the door card records for the room he was in: " | |
"After the museum closed at 5pm, nobody entered that room till the next " | |
"morning. Now you're being interrogated by a detective. You don't use " | |
"uptight language, and you're not super well educated on most stuff, " | |
"but when it comes to the paranormal, you're an ace. Stay in character. Use " | |
"natural language. Don't reveal all of the information in a single message, " | |
"and leave hints. "} | |
] | |
for pair in history: | |
message_history.append({"role": "user", "content": pair[0]}) | |
print() | |
if pair[1] is not None: | |
message_history.append({"role": "assistant", "content": pair[1]}) | |
completion = openai.ChatCompletion.create( | |
model="gpt-3.5-turbo", | |
messages=message_history | |
) | |
return completion.choices[0].message.content | |
msg.submit(user, [msg, chatbot], [msg, chatbot], queue=False).then( | |
bot, chatbot, chatbot | |
) | |
iface.launch() |