gpt2-TOD_app / app.py
armandstrickernlp
create chatbot
cd30edd
raw
history blame
2.51 kB
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name = 'armandnlp/gpt2-TOD_finetuned_SGD'
tokenizer_TOD = AutoTokenizer.from_pretrained(model_name)
model_TOD = AutoModelForCausalLM.from_pretrained(model_name)
def generate_response(prompt):
input_ids = tokenizer_TOD(prompt, return_tensors="pt").input_ids
outputs = model_TOD.generate(input_ids,
do_sample=False,
max_length=1024,
eos_token_id=50262)
return tokenizer_TOD.batch_decode(outputs)[0]
#<|context|> <|user|> I want to go to the restaurant.<|endofcontext|>
def chat(message, history):
history = history or []
if history == []:
context = '<|context|> <|user|> ' + message + ' <|endofcontext|> '
else:
context, _ = history[-1][0].split('<|endofcontext|>')
context += ' <|system|> '
context += history[-1][1].split('<|response|>')[1]
context = context.replace('<|endofresponse|>', '')
context += ' <|user|> ' + message + ' <|endofcontext|> '
output = generate_response(context)
_ , response = output.split('<|endofcontext|>')
history.append((message, response))
return history, history
import random
def chat_test(message, history):
history = history or []
if message.startswith("How many"):
response = random.randint(1, 10)
elif message.startswith("How"):
response = random.choice(["Great", "Good", "Okay", "Bad"])
elif message.startswith("Where"):
response = random.choice(["Here", "There", "Somewhere"])
else:
response = "I don't know"
history.append((message, response))
return history, history
import gradio as gr
chatbot = gr.Chatbot(color_map=("green", "gray"))
iface = gr.Interface(chat_test,
["text", "state"],
[chatbot, "state"],
allow_screenshot=False,
allow_flagging="never",
)
"""
iface = gr.Interface(fn=generate_response,
inputs="text",
outputs="text",
title="gpt2-TOD",
examples=[["<|context|> <|user|> I'm super hungry ! I want to go to the restaurant.<|endofcontext|>"]],
description="Passing in a task-oriented dialogue context generates a belief state, actions to take and a response based on those actions",
)
"""
iface.launch(debug=True)