Spaces:
No application file
No application file
File size: 2,976 Bytes
a20ccd6 | 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 | import gradio as gr
from utils.api.GPT import generate_answers_openai, Session
import numpy as np
import os
import time
prompt_waiter="""You are a bot designed to do role-play activities in a scene. The conversation should be natural.
As the waiter, your role will be to find a table, take the customer's order, answer any questions they may have about the menu, and ensure that they have an enjoyable dining experience. The waiter will help the customer to find a table, order a meal, and pay the bill. Anything in parentheses () signifies the role you are playing. Anything in brackets [] is the action you are taking. Remember, you are the waiter and never respond as a customer. Your response will begin with your character, like "(waiter:) Hello![Greeting]"."""
def generate_waiter():
session = Session(prompt_waiter)
def waiter(customer_input):
print("(customer:) ", customer_input)
response = generate_answers_openai(customer_input, session)
print("(waiter:) ", response)
return session.to_conversation_pair()
interface = gr.Interface(description="waiter in a restaurant", fn=waiter,
inputs=[gr.Textbox(lines=5, label="input")],
outputs=[gr.Chatbot(label="conversation")])
return interface
grammer_prompt = """Correct “Text:” to standard English and place the results in “Correct Text:”###Text: The goal of article rewriting is to expres information in a new way. Article rewriting is to make change in a text by replaecing words, phrases, sentencs, and sometimes hole paragraphs to make the text looke unique and more engauging. Correct Text: The goal of article rewriting is to express information in a new way. Article rewriting involves making changes in a text by replacing words, phrases, sentences, and sometimes entire paragraphs to make the text look unique and more engaging."""
def generate_interface(prompt, description=None):
session = Session(prompt)
def _fun(customer_input):
print("(Q:) ", customer_input)
response = generate_answers_openai(customer_input, session)
print("(A:) ", response)
return session.to_conversation_pair()
interface = gr.Interface(description=description, fn=_fun,
inputs=[gr.Textbox(lines=1, label="input")],
outputs=[gr.Chatbot(label="conversation")])
return interface
characters = [
{"name": "waiter", "prompt": prompt_waiter, "description": "waiter in a restaurant"},
{"name": "grammer", "prompt": grammer_prompt, "description": "grammer correction"},
]
interfaces = []
names = []
for character in characters:
interface = generate_interface(character['prompt'], character['description'])
interfaces.append(interface)
names.append(character['name'])
demo = gr.TabbedInterface(interfaces, names,title="Role Play Bot")
if __name__ == '__main__':
demo.launch() |