import gradio as gr from transformers import GPT2Tokenizer, T5ForConditionalGeneration # Загрузка модели и токенизатора model_name = "RussianNLP/FRED-T5-Summarizer" tokenizer = GPT2Tokenizer.from_pretrained(model_name, eos_token='') model = T5ForConditionalGeneration.from_pretrained(model_name) def generate_meta_description(product_description): prompt = f" Сгенерируй meta description (до 160 символов) по следующему описанию товара: {product_description}" input_ids = tokenizer.encode(prompt, return_tensors='pt', max_length=512, truncation=True) summary_ids = model.generate( input_ids, max_length=60, num_beams=5, no_repeat_ngram_size=4, early_stopping=True ) summary = tokenizer.decode(summary_ids[0], skip_special_tokens=True) # Обрезаем до 160 символов, не обрывая слова if len(summary) > 160: truncated = summary[:160] last_space = truncated.rfind(' ') summary = truncated[:last_space] return summary.strip() iface = gr.Interface( fn=generate_meta_description, inputs=gr.Textbox(label="Описание товара", lines=5, placeholder="Например: Красивое мужское пальто из шерсти..."), outputs=gr.Textbox(label="Meta Description (до 160 символов)"), title="Генератор Meta Description", description="Вставьте описание товара, и получите краткое и логичное описание для тега (до 160 символов)." ) if __name__ == "__main__": iface.launch()