File size: 1,419 Bytes
a448356
 
 
a584a85
b8e6dc4
a584a85
 
b8e6dc4
a584a85
 
b8e6dc4
a584a85
b8e6dc4
 
 
 
 
 
a448356
 
 
 
 
b8e6dc4
 
 
 
 
 
 
 
 
 
 
1404f4e
b8e6dc4
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# -*- coding: utf-8 -*-
from transformers import pipeline
import gradio as gr
from gradio.components import Textbox
import random
import csv

question_answering = pipeline("question-answering", model="xjlulu/ntu_adl_span_selection_roberta", framework="pt")
examples = []

with open('sample_data.csv', mode='r') as csv_file:
        csv_reader = csv.reader(csv_file)
        for row in csv_reader:
                examples.append(list(row))

def random_sample():
        random_number = random.randint(0, len(examples) - 1)
        return examples[random_number]

def generate_answer(question, context):
        result = question_answering(question=question, context=context)
        return result['answer']

description="Answer questions based on a given context paragraph"

with gr.Blocks(theme=gr.themes.Soft(), title="Question Answering") as demo:
        gr.Markdown(description)

        with gr.Row():
                Q_input = gr.Textbox(lines=3, label="Question")
                A_output = Textbox(lines=3, label="Answer")
        with gr.Row():
                random_button = gr.Button("Random")
                generate_button = gr.Button("Generate")
        C_input = gr.Textbox(lines=8, label="Context paragraph")

        random_button.click(random_sample, inputs=None, outputs=[Q_input, C_input])
        generate_button.click(generate_answer, inputs=[Q_input, C_input], outputs=A_output)

demo.launch()