|
import gradio as gr |
|
from transformers import pipeline |
|
|
|
|
|
classifier = pipeline("text-classification", model="sileod/rubert-tiny-for-ner") |
|
|
|
|
|
CATEGORIES = ["Техника", "Овощи", "Инструменты", "Коробки", "Прочее"] |
|
|
|
def classify(item: str, categories: list) -> str: |
|
prompt = f""" |
|
Товар: {item} |
|
Категории: {", ".join(categories)}. |
|
К какой категории относится товар? Ответь только названием категории. |
|
""" |
|
result = classifier(prompt, truncation=True) |
|
label_index = int(result[0]['label'].split("_")[1]) |
|
return CATEGORIES[label_index] |
|
|
|
|
|
iface = gr.Interface( |
|
fn=classify, |
|
inputs=[ |
|
gr.Textbox(label="Название товара rubert-tiny-for-ner"), |
|
gr.Textbox(label="Категории (через запятую)", value="Техника, Овощи, Инструменты, Коробки, Прочее") |
|
], |
|
outputs=gr.Textbox(label="Категория") |
|
) |
|
|
|
iface.launch() |