Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import time | |
| from transformers import pipeline | |
| TASK = 'text-classification' | |
| MODEL_NAME = 'Aniemore/rubert-tiny2-russian-emotion-detection' | |
| sentiment_model = pipeline(TASK, model=MODEL_NAME) | |
| MAX_CHARS = 2000 | |
| def runk(text): | |
| if text is None or not text.strip(): | |
| return "Error", None, None | |
| text = text.strip() | |
| if len(text) > MAX_CHARS: | |
| text = text[:MAX_CHARS] | |
| t0 = time.time() | |
| try: | |
| result = sentiment_model(text) | |
| latency = round((time.time() - t0) * 1000, 1) | |
| return "Ok", result, f"{latency} ms" | |
| except Exception as e: | |
| return f"Error: {type(e).__name__}: {e}", None, None | |
| with gr.Blocks() as demo: | |
| gr.Markdown(f""" | |
| **Задача:** {TASK} | |
| **Модель:** {MODEL_NAME} | |
| """) | |
| inp = gr.Textbox( | |
| label="Введите текст", | |
| lines=6, | |
| placeholder="Скопируйте сюда текст" | |
| ) | |
| btn = gr.Button("Обработать") | |
| status = gr.Textbox(label="Статус") | |
| out = gr.JSON(label="Результат модели") | |
| latency = gr.Textbox(label="Время ответа") | |
| btn.click( | |
| fn=runk, | |
| inputs=inp, | |
| outputs=[status, out, latency] | |
| ) | |
| gr.Examples( | |
| examples=[ | |
| ["Я люблю этот продукт, он великолепен"], | |
| ["Это наихудший опыт"], | |
| ["Никакой специфики"] | |
| ], | |
| inputs=inp | |
| ) | |
| demo.launch() |