File size: 1,799 Bytes
7ab3fbc 86bd5a4 7ab3fbc 19a9f33 86bd5a4 19a9f33 86bd5a4 1515adb 7ab3fbc 86bd5a4 7ab3fbc 86bd5a4 7ab3fbc 86bd5a4 |
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 |
import gradio as gr
from transformers import pipeline
classifier = pipeline(
"zero-shot-classification",
model="cointegrated/rubert-tiny2",
device=-1 # Используем CPU для стабильности на бесплатных инстансах
)
def classify(item: str, categories: str) -> str:
# Формируем гипотезу для классификации
hypothesis_template = "Этот текст относится к категории {}."
categories_list = [c.strip() for c in categories.split(",")]
result = classifier(
item,
candidate_labels=categories_list,
hypothesis_template=hypothesis_template,
multi_label=False
)
# Возвращаем категорию с наибольшим скором
return f"{result['labels'][0]} (уверенность: {result['scores'][0]:.2f})"
iface = gr.Interface(
fn=classify,
inputs=[
gr.Textbox(label="Название товара", placeholder="Введите наименование товара"),
gr.Textbox(label="Категории (через запятую)",
value="Овощи, Инструменты, Техника, Упаковка")
],
outputs=gr.Textbox(label="Результат классификации"),
examples=[
["Молоток", "Овощи, Инструменты, Техника"],
["Свекла", "Фрукты, Овощи, Ягоды"],
["Ноутбук", "Техника, Мебель, Инструменты"]
],
title="Классификатор товаров",
description="Введите название товара и список категорий через запятую"
)
iface.launch(debug=True) |