Spaces:
Runtime error
Runtime error
File size: 3,811 Bytes
dd05464 269642a 6de1c2c dd05464 948174f dd05464 ee6fbcc 948174f dd05464 948174f dd05464 948174f b657bda 948174f dd05464 948174f dd05464 948174f dd05464 ee6fbcc dd05464 ee6fbcc b657bda dd05464 ee6fbcc dd05464 ee6fbcc dd05464 b657bda dd05464 b657bda dd05464 4b45289 dd05464 |
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
import gradio as gr
import os
import time
import openai
import json
import itertools
openai_api_key_textbox = ""
model = None
tokenizer = None
generator = None
openai.api_key = "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"
def csv_prompter(question):
json_file = open('order.json')
json_data = json.load(json_file)
json_data = json_data['records']
fulltext = []
#print all nm in json file
for i in json_data:
# identify if opts in this item
opt_list = []
if 'opt' in i:
for opt1 in i['opt']:
for opt2 in opt1['opts']:
opt_list.append(opt2['nm'])
if len(opt_list) > 100:
print(str(i['pid'])+" "+i['nm']+" Options:"+str(opt_list))
each = i['nm']+" Options:"+str(opt_list)
fulltext.append(each)
else:
print(str(i['pid'])+" "+i['nm'])
each = i['nm']
fulltext.append(each)
fulltext = '\n'.join(fulltext)
#fulltext = fulltext + "\n 00:00 - Customer: Hey, dear, can I please take out? 00:03 - Waiter: I'm up here. Okay go ahead. 00:06 - Customer: Can I get two sesame chicken dinners? 00:10 - Customer: One with lo mein and one with fried rice? 00:13 - Customer: Can I get, I know spring rolls come with each of those, but can I get just as long 00:17 - Customer: as I've got a total of two spring rolls and two egg rolls? 00:21 - Waiter: Okay. Anything? 00:22 - Customer: And a small bowl of hot and sour soup. 00:25 - Customer: And that's it. 00:26 - Waiter: Alright. Two sesame chickens, small one with fried rice, small one with lo mein, and both of those with spring rolls, two egg rolls and a small hot and sour soup. 00:30 - Customer: It's 205-473-1750. 00:36 - Waiter: What's the fun number please? 00:43 - Waiter: Just got around 20 minutes. Thank you. 00:43 - Customer: Okay, dear, thank you so much."
fulltext = fulltext+'\n'
fulltext = fulltext+'\n\n'+question
print(fulltext)
messages = [
{"role": "system", "content": ""},
]
messages.append(
{"role": "user", "content": f"{fulltext}"}
)
rsp = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages
)
response = rsp.get("choices")[0]["message"]["content"]
print()
print(response)
return response
with gr.Blocks() as demo:
chatbot = gr.Chatbot()
msg = gr.Textbox()
clear = gr.Button("Clear")
Initialization = gr.Button("Initialization")
def restart(history):
invitation = "Waiter: "
human_invitation = "Customer: "
return [["\n",invitation+"Taste of China, may I help you?"]]
def user(user_message, history):
invitation = "Waiter: "
human_invitation = "Customer: "
return "", history +[[human_invitation+user_message, None]]
def bot(history):
invitation = "Waiter: "
human_invitation = "Customer: "
print(history)
alist = list(itertools.chain.from_iterable(history))
alist=filter(None, alist)
fulltext = "Based on the above menu and following dialogue, If you were a waiter, what would you say next?\n"+ "\n".join(alist) + "\n" + invitation
response = csv_prompter(fulltext)
response = invitation+ response
history[-1][1] = response
return history
msg.submit(user, [msg, chatbot], [msg, chatbot], queue=False).then(
bot, chatbot, chatbot
)
Initialization.click(lambda: None, None, chatbot, queue=False).then(restart, chatbot, chatbot)
clear.click(lambda: None, None, chatbot, queue=False).then(restart, chatbot, chatbot)
if __name__ == "__main__":
demo.launch()
|