AI-test / app.py
wuki-king's picture
Create app.py
a7ac4c4
from transformers import AutoModelForCausalLM, AutoTokenizer
import gradio as gr
import torch
title = " AI-test"
description = "A State-of-the-Art Large-scale Pretrained Response generation model (DialoGPT)"
examples = [["How are you?"]]
tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-large")
model = AutoModelForCausalLM.from_pretrained("microsoft/DialoGPT-large")
def predict(input, history=[]):
# 将新输入的句子进行分词
new_user_input_ids = tokenizer.encode(
input + tokenizer.eos_token, return_tensors="pt"
)
# 将新用户输入的令牌附加到聊天历史记录中
bot_input_ids = torch.cat([torch.LongTensor(history), new_user_input_ids], dim=-1)
# 生成一个响应
history = model.generate(
bot_input_ids, max_length=4000, pad_token_id=tokenizer.eos_token_id
).tolist()
# 将令牌转换为文本,然后将响应拆分为行
response = tokenizer.decode(history[0]).split("<|endoftext|>")
# print('decoded_response-->>'+str(response))
response = [
(response[i], response[i + 1]) for i in range(0, len(response) - 1, 2)
] # 转换为列表的图元
# print('response-->>'+str(response))
return response, history
gr.Interface(
fn=predict,
title=title,
description=description,
examples=examples,
inputs=["text", "state"],
outputs=["chatbot", "state"],
theme="finlaymacklon/boxy_violet",
).launch()