File size: 4,025 Bytes
339165d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
import gradio as gr
from transformers import pipeline
from happytransformer import HappyTextToText, TTSettings

def translate(language_1, language_2, message):
  translator = pipeline(f"translation", model="Helsinki-NLP/opus-mt-{}-{}".format(language_1, language_2))
  output = translator(message)
  return output[0]['translation_text']

def summarize(text):
  summerizer = pipeline("summarization", model="facebook/bart-large-cnn")
  output = summerizer(text)
  return output[0]['summary_text']

def question(question, context):
  question_model = pipeline("question-answering", model="deepset/roberta-base-squad2")
  output = question_model({
      'question': question,
      'context' : context
  })
  return output['answer']


def grammar(user_input):
    grammar_model = HappyTextToText("T5", "vennify/t5-base-grammar-correction")
    args = TTSettings(num_beams=5, min_length=1)
    output = grammar_model.generate_text('grammar: ' + user_input, args=args)
    return output.text


def mask(text):
  mask_model = pipeline("fill-mask", model="google-bert/bert-base-uncased")
  output = mask_model(text)
  return output[0]['sequence']

def multi_model(text):

  mask_model = mask(text)

  summerize_model = summarize(mask_model)

  question_model = question('Is this text about politics?', summerize_model)

  translation_model = translate('en', 'nl', question_model)

  grammar_model = grammar(translation_model)

  return grammar_model



with gr.Blocks() as demo:
  gr.Markdown("Technology 2 - Ai interfaces")

#tab single model
  with gr.Tab("Single-Models"):
    with gr.Row(equal_height=True):

      #column left (1)
      with gr.Column(scale=1):

        choice1 = gr.Dropdown(
          choices=["nl", "fr", "en"],
          label="Select an option")

        choice2 = gr.Dropdown(
          choices=["nl", "fr", "en"],
          label="Select an option")

        textbox = gr.Textbox(label="message")

        translate_btn = gr.Button("Translate")

        translated_box = gr.Textbox()

        translate_btn.click(fn=translate,
                            inputs=[choice1, choice2, textbox],
                            outputs=translated_box )

      #column right (2)
      with gr.Column(scale=1):
        textbox_summary = gr.Textbox(label="text you want to summarize")
        textbox_summary_output = gr.Textbox()
        summary_btn = gr.Button('summarize')

        summary_btn.click(fn=summarize,
                          inputs=textbox_summary,
                          outputs=textbox_summary_output)

      with gr.Column(scale=1):
        textbox_question = gr.Textbox(label = 'question')
        textbox_context = gr.Textbox(label = 'context')
        textbox_question_output = gr.Textbox()
        question_btn = gr.Button("Get your Answer")

        question_btn.click(fn=question,
                  inputs=[textbox_question, textbox_context],
                  outputs = textbox_question_output)

      with gr.Column(scale=1):
        textbox_mask = gr.Textbox(label="Give me a sentance and use the word [MASK] to predict what will go there")
        mask_button = gr.Button("Generate")
        textbox_mask_output = gr.Textbox()

        mask_button.click(fn=mask,
                          inputs = textbox_mask,
                          outputs = textbox_mask_output)

      with gr.Column(scale=1):
        textbox_grammar = gr.Textbox(label="I will correct your grammar mistakes.")
        grammar_button = gr.Button("Fix grammar")
        textbox_grammar_output = gr.Textbox()

        grammar_button.click(fn=grammar,
                             inputs=textbox_grammar,
                             outputs=textbox_grammar_output)






#tab mulit model
  with gr.Tab("Multi-Models"):
    textblock = gr.Textbox(label="give me a sentence and replace some words with [MASK] and i will summerize and translate it for your")
    btn1 = gr.Button("START")
    response = gr.Textbox()

    btn1.click(fn=multi_model, inputs = textblock, outputs=response)


demo.launch(debug=True)