ITprojectV3 / app.py
Jinpkk's picture
Update app.py
269bfcc
raw
history blame contribute delete
No virus
2.56 kB
import gradio as gr
import re
from transformers import TFGPT2LMHeadModel, GPT2Tokenizer
description = "Chatbots for customer service with GPT-2"
title = "Please enter the problem you are experiencing"
examples = [["I didn't get my order delivered for a long time."]]
from transformers import TFGPT2LMHeadModel, GPT2Tokenizer
model_name_or_path = "Jinpkk/ITproject_version4"
tokenizer = GPT2Tokenizer.from_pretrained(model_name_or_path)
model = TFGPT2LMHeadModel.from_pretrained(model_name_or_path)
def clean_output(text):
# Remove content within square brackets
cleaned_text = re.sub(r'\[.*?\]', '', text)
# Remove any [SEP] tokens
cleaned_text = cleaned_text.replace('[SEP]', '').strip()
return cleaned_text
def generate_response(input_text):
input_ids = tokenizer.encode(input_text, return_tensors='tf')
beam_output = model.generate(
input_ids,
max_length=128,
num_beams=5,
no_repeat_ngram_size=2,
early_stopping=True,
pad_token_id=tokenizer.eos_token_id
)
generated_text = tokenizer.decode(beam_output[0], skip_special_tokens=True)
generated_text = generated_text.split('[PAD]')[0].strip()
generated_text = generated_text.split('^')[0].strip()
generated_text = generated_text.replace(input_text.strip(), '').strip()
generated_text = generated_text.replace("<SEP>", "").strip()
generated_text = generated_text.split('(')[0].strip()
generated_text = clean_output(generated_text)
return generated_text
def chatbot_response(input_text):
# Extract previous messages and the new message
previous_messages, new_message = input_text.split("\n")[:-1], input_text.split("\n")[-1]
# Get the model's response
response = generate_response(new_message)
# Add the new message and the model's response to the previous messages
updated_chat = "\n".join(previous_messages + [f"You: {new_message}", f"Bot: {response}"])
return updated_chat
interface = gr.Interface(
fn=generate_response,
inputs=gr.inputs.Textbox(lines=10, placeholder="Enter your text..."),
outputs=gr.outputs.Textbox(),
description=description,
title=title,
examples=examples
)
interface_chat = gr.Interface(
fn=chatbot_response,
inputs=gr.components.Textbox(lines=15, placeholder="Type your message here..."),
outputs=gr.components.Textbox(),
live=False,
description=description,
examples=examples,
title=title
)
interface_chat.launch()