Spaces:
Running
Running
import gradio as gr | |
from transformers import pipeline | |
pipe = pipeline("zero-shot-classification",model='MoritzLaurer/mDeBERTa-v3-base-xnli-multilingual-nli-2mil7') | |
with gr.Blocks() as demo: | |
txt = gr.Textbox('Введите текст', label='Текст для классификации', interactive=True) | |
with gr.Row(): | |
labels = gr.DataFrame( | |
headers=['Labels'], | |
row_count=(2, 'static'), | |
col_count=(1, 'fixed'), | |
datatype='str', | |
interactive=True, | |
scale=4, | |
) | |
submit = gr.Button('Обработать', scale=1) | |
with gr.Group(): | |
with gr.Row(): | |
checkbox = gr.Checkbox( | |
label='Множественная положительная классификация', | |
interactive=True, | |
info='', | |
) | |
dropdown = gr.Dropdown( | |
label='Number of Labels to predict', | |
multiselect=False, | |
value=1, | |
choices=list(range(1,6),), | |
interactive=False, | |
) | |
result = gr.Label( | |
label='Результат классификации', | |
visible=False, | |
) | |
def activate_dropdown(ob): | |
if not ob: | |
return gr.Dropdown( | |
interactive=ob, | |
value=1, | |
) | |
return gr.Dropdown(interactive=ob) | |
def submit_btn(text, df, label_no): | |
output = pipe( | |
text, | |
list(df['Labels']), | |
multi_label=True, | |
) | |
return gr.Label( | |
visible=True, | |
num_top_classes=int(label_no), | |
value={i: j for i, j in zip(output['labels'], output['scores'])} | |
) | |
checkbox.change(activate_dropdown, inputs=[checkbox], outputs=[dropdown]) | |
submit.click(submit_btn, inputs=[txt, labels, dropdown], outputs=[result]) | |
demo.launch() |