Spaces:
Runtime error
Runtime error
import gradio as gr | |
import random | |
import time | |
from agent_t5 import Agent | |
from config import Config | |
from retrieval.retrieval import BM25 | |
args = Config() | |
chatbot = Agent(args) | |
answer_areas = list(range(args.choices)) | |
context_areas = list(range(args.choices)) | |
with gr.Blocks() as demo: | |
# gr.Markdown("Flip text or image files using this demo.") | |
with gr.Tab("Chatbot"): | |
with gr.Row(): | |
with gr.Column(): | |
chatbot_area = gr.Chatbot().style(height=700) | |
msg = gr.Textbox(label='Your prompt') | |
with gr.Column(scale=0.15, min_width=300): | |
for i in range(args.choices): | |
with gr.Accordion(f"Answer: {i+1}", open=False) as answer_areas[i]: | |
context_areas[i] = gr.Markdown(f"Context {i+1}") | |
clear_chat = gr.Button("Clear history") | |
with gr.Tab("Your context"): | |
context_box = gr.Textbox( | |
label='Your context here! You can upload a context file or typing context here and click "Using context"', | |
lines=20, | |
placeholder="Enter your context here..." | |
) | |
with gr.Row() as taskbar: | |
upload_btt = gr.UploadButton('Upload Context File') | |
clear_context_btt = gr.Button("Clear context") | |
context_btt = gr.Button("Using context") | |
def user(user_message, history): | |
print("Context box value:", context_box.info) | |
return "", history + [[user_message, None]] | |
def bot(history): | |
question = history[-1][0] | |
print('User mess:', question) | |
answers, contexts = chatbot.asking(question) | |
for i in range(chatbot.choices): | |
context_areas[i].value = contexts[i]['context'] | |
answer_areas[i].value = answers[i] | |
print(answers) | |
history[-1][1] = "" | |
for character in answers[0]: | |
history[-1][1] += character | |
time.sleep(0.01) | |
yield history | |
msg.submit(user, [msg, chatbot_area], [msg, chatbot_area], queue=False).then( | |
bot, chatbot_area, chatbot_area | |
) | |
context_btt.click(chatbot.get_context, [context_box, ]) | |
upload_btt.upload(chatbot.load_context, [upload_btt, ], context_box) | |
clear_context_btt.click(chatbot.clear_context, outputs=context_box) | |
demo.queue() | |
demo.launch() | |