import time import gradio as gr from transformers import pipeline MODEL_NAME = "cointegrated/rut5-base-absum" summarizer = pipeline( "summarization", model=MODEL_NAME, tokenizer=MODEL_NAME ) def summarize_text(text: str): if not text or not text.strip(): return "Введите текст для саммаризации.", "" start_time = time.time() result = summarizer( text, max_length=80, min_length=20, do_sample=False, truncation=True ) end_time = time.time() summary = result[0]["summary_text"] elapsed_time = round(end_time - start_time, 2) return summary, f"Время обработки: {elapsed_time} сек." example_text = """Клиент обратился сразу с несколькими проблемами: заказ был доставлен позже обещанного времени, один товар оказался повреждён, а промокод, который должен был примениться при оплате, не сработал. Клиент просит вернуть деньги за повреждённый товар, начислить компенсацию за опоздание и объяснить, почему промокод не применился.""" demo = gr.Interface( fn=summarize_text, inputs=gr.Textbox( label="Исходный текст", placeholder="Вставьте длинный текст обращения, диалога или описания проблемы...", lines=10, value=example_text ), outputs=[ gr.Textbox(label="Краткое резюме", lines=4), gr.Textbox(label="Скорость обработки", lines=1) ], title="Демо: саммаризация клиентских обращений", description=( "Демо использует HuggingFace-модель cointegrated/rut5-base-absum " "для краткого резюмирования русскоязычных текстов." ), examples=[ [example_text], ["""Покупатель сообщил, что в заказе отсутствовало несколько позиций, хотя деньги за них были списаны. Он уже обращался в поддержку ранее, но получил только обещание разобраться. Клиент раздражён, потому что проблема повторяется второй раз за месяц, и просит оформить возврат как можно быстрее."""], ["""Компания внедряет новый процесс обработки возвратов. Теперь часть обращений клиентов будет переводиться из чата в отдельный раздел приложения. Это позволит клиенту самостоятельно создать заявку, приложить фотографии товара и отслеживать статус рассмотрения. Операторы поддержки будут подключаться только в сложных случаях."""] ] ) if __name__ == "__main__": demo.launch()