from transformers import AutoModelForCausalLM, AutoTokenizer, AutoModelForSeq2SeqLM, T5ForConditionalGeneration, T5Tokenizer tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-large") model = AutoModelForCausalLM.from_pretrained("microsoft/DialoGPT-large") grammar_tokenizer = T5Tokenizer.from_pretrained('deep-learning-analytics/GrammarCorrector') grammar_model = T5ForConditionalGeneration.from_pretrained('deep-learning-analytics/GrammarCorrector') import torch import gradio as gr def chat(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, feedback(message) def feedback(text): num_return_sequences=1 batch = grammar_tokenizer([text],truncation=True,padding='max_length',max_length=64, return_tensors="pt") corrections= grammar_model.generate(**batch,max_length=64,num_beams=2, num_return_sequences=num_return_sequences, temperature=1.5) print("The corrections are: ", corrections) if len(corrections) == 0: feedback = f'Looks good! Keep up the good work' else: suggestion = grammar_tokenizer.batch_decode(corrections[0], clean_up_tokenization_spaces=True, skip_special_tokens=True) feedback = f'\'{"".join(suggestion)}\' might be a little better' return feedback iface = gr.Interface( chat, ["text", "state"], ["chatbot", "state", "text"], allow_screenshot=False, allow_flagging="never", ) iface.launch()