metaGenerator / app.py
Triok1's picture
Update app.py
e7f63e0 verified
import gradio as gr
from transformers import GPT2Tokenizer, T5ForConditionalGeneration
# Загрузка модели и токенизатора
model_name = "RussianNLP/FRED-T5-Summarizer"
tokenizer = GPT2Tokenizer.from_pretrained(model_name, eos_token='</s>')
model = T5ForConditionalGeneration.from_pretrained(model_name)
def generate_meta_description(product_description):
prompt = f"<LM> Сгенерируй 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="Вставьте описание товара, и получите краткое и логичное описание для тега <meta name=\"description\"> (до 160 символов)."
)
if __name__ == "__main__":
iface.launch()