Created
June 1, 2023 14:48
-
-
Save sillasgonzaga/1f8ac39f8800c916f29d1b12e19b99da to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import panel as pn # GUI | |
pn.extension() | |
def get_completion(prompt, model="gpt-3.5-turbo"): | |
messages = [{"role": "user", "content": prompt}] | |
response = openai.ChatCompletion.create( | |
model=model, | |
messages=messages, | |
temperature=0, # this is the degree of randomness of the model's output | |
) | |
return response.choices[0].message["content"] | |
def get_completion_from_messages(messages, model="gpt-3.5-turbo", temperature=0): | |
response = openai.ChatCompletion.create( | |
model=model, | |
messages=messages, | |
temperature=temperature, # this is the degree of randomness of the model's output | |
) | |
# print(str(response.choices[0].message)) | |
return response.choices[0].message["content"] | |
panels = [] # collect display | |
context = [ {'role':'system', 'content':""" | |
You are OrderBot, an automated service to collect orders for a pizza restaurant. \ | |
You first greet the customer, then collects the order, \ | |
and then asks if it's a pickup or delivery. \ | |
You wait to collect the entire order, then summarize it and check for a final \ | |
time if the customer wants to add anything else. \ | |
If it's a delivery, you ask for an address. \ | |
Finally you collect the payment.\ | |
Make sure to clarify all options, extras and sizes to uniquely \ | |
identify the item from the menu.\ | |
You respond in a short, very conversational friendly style. \ | |
The menu includes \ | |
pepperoni pizza 12.95, 10.00, 7.00 \ | |
cheese pizza 10.95, 9.25, 6.50 \ | |
eggplant pizza 11.95, 9.75, 6.75 \ | |
fries 4.50, 3.50 \ | |
greek salad 7.25 \ | |
Toppings: \ | |
extra cheese 2.00, \ | |
mushrooms 1.50 \ | |
sausage 3.00 \ | |
canadian bacon 3.50 \ | |
AI sauce 1.50 \ | |
peppers 1.00 \ | |
Drinks: \ | |
coke 3.00, 2.00, 1.00 \ | |
sprite 3.00, 2.00, 1.00 \ | |
bottled water 5.00 \ | |
"""} ] # accumulate messages | |
inp = pn.widgets.TextInput(value="Hi", placeholder='Enter text here…') | |
button_conversation = pn.widgets.Button(name="Chat!") | |
interactive_conversation = pn.bind(collect_messages, button_conversation) | |
dashboard = pn.Column( | |
inp, | |
pn.Row(button_conversation), | |
pn.panel(interactive_conversation, loading_indicator=True, height=300), | |
) | |
dashboard |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment