File size: 3,355 Bytes
7951f11
2c7da7c
 
 
 
 
 
 
 
 
7951f11
2c7da7c
7951f11
2c7da7c
 
a9fbd4c
7951f11
a9fbd4c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2c7da7c
 
 
a9fbd4c
 
2c7da7c
 
 
 
a9fbd4c
 
 
2c7da7c
a9fbd4c
2c7da7c
 
a9fbd4c
 
 
 
 
2c7da7c
a9fbd4c
2c7da7c
 
 
a9fbd4c
 
 
2c7da7c
a9fbd4c
 
2c7da7c
7951f11
2c7da7c
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import gradio as gr
from transformers import pipeline, AutoTokenizer
from optimum.onnxruntime import ORTModelForSeq2SeqLM

# Загружаем модель с явным указанием имён файлов
model = ORTModelForSeq2SeqLM.from_pretrained(
    "Genn9508/Sss",
    file_name="encoder_model_quantized.onnx",
    decoder_file_name="decoder_with_past_model_quantized.onnx",
)

# Токенизатор
tokenizer = AutoTokenizer.from_pretrained("Genn9508/Sss")

# Пайплайн
pipe = pipeline("summarization", model=model, tokenizer=tokenizer)

# Функция суммаризации
def summarize(text):
    if not text.strip():
        return "Введите текст для краткого изложения."
    
    # Генерация краткого варианта
    result = pipe(
        text,
        max_length=100,      # максимум слов в выводе
        min_length=20,       # минимум — чтобы не было слишком коротко
        do_sample=False,     # детерминированная генерация
        no_repeat_ngram_size=2,
        truncation=True      # если текст длиннее 512 токенов
    )
    return result[0]['summary_text']

# Интерфейс
with gr.Blocks(theme=gr.themes.Soft()) as demo:
    gr.Markdown("# 📝 ONNX T5 — Суммаризатор текста")
    gr.Markdown("Модель оптимизирована для **краткого изложения текста**. Просто введите любой текст — и получите краткую версию.")

    with gr.Row():
        with gr.Column(scale=2):
            input_text = gr.Textbox(
                label="Текст для краткого изложения",
                placeholder="Введите текст (статью, отзыв, письмо и т.д.) — модель сделает кратко.",
                lines=6
            )
            btn = gr.Button("✨ Сделать кратко", variant="primary")

        with gr.Column(scale=2):
            output_text = gr.Textbox(
                label="Краткое изложение",
                lines=6,
                interactive=False
            )

    btn.click(fn=summarize, inputs=input_text, outputs=output_text)

    gr.Examples(
        [
            ["Искусственный интеллект меняет мир. Он используется в медицине, образовании, транспорте и других сферах. Благодаря ИИ люди могут решать сложные задачи быстрее и точнее."],
            ["Компания запустила новый продукт. Он помогает автоматизировать рутинные задачи. Пользователи уже оставили положительные отзывы."],
            ["На прошлой неделе прошла конференция по искусственному интеллекту. Участники обсудили последние достижения в области генеративных моделей и этики ИИ."]
        ],
        inputs=input_text,
        label="Примеры текстов"
    )

demo.launch()