import gradio as gr import random import time from transformers import pipeline,AutoModelForSeq2SeqLM,AutoTokenizer model = AutoModelForSeq2SeqLM.from_pretrained("google/flan-t5-base") tokenizer = AutoTokenizer.from_pretrained("google/flan-t5-base") context="" def generate_answer(question): prompt = question +". \nAnswer this question given context in next line if answer is present in context otherwise say I don't know about that. Context: \n "+context inputs = tokenizer(prompt , return_tensors="pt") outputs = model.generate(**inputs) return (tokenizer.batch_decode(outputs, skip_special_tokens=True)) def upload_file(file): global context with open(file.name, encoding="utf-8") as f: context = f.read() with gr.Blocks() as demo: file_output = gr.File() upload_button = gr.UploadButton("Click to Upload a File", file_types=["txt", "pdf"]) upload_button.upload(upload_file, upload_button, file_output) chatbot = gr.Chatbot() msg = gr.Textbox() clear = gr.ClearButton([msg, chatbot,upload_button]) def respond(message, chat_history): ans=generate_answer(message) chat_history.append((message, f"\n {ans} ")) return "", chat_history msg.submit(respond, [msg, chatbot], [msg, chatbot]) with gr.Row(visible=True) as button_row: upvote_btn = gr.Button(value="👍 Upvote", interactive=True) downvote_btn = gr.Button(value="👎 Downvote", interactive=True) demo.queue() demo.launch(debug=True)