Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -7,16 +7,12 @@ tokenizer = AutoTokenizer.from_pretrained("cointegrated/rut5-base-multitask")
|
|
| 7 |
model = T5ForConditionalGeneration.from_pretrained("cointegrated/rut5-base-multitask")
|
| 8 |
|
| 9 |
# Функция генерации мета-тегов
|
| 10 |
-
|
| 11 |
-
# Очищаем описание
|
| 12 |
-
description = description.strip()
|
| 13 |
-
|
| 14 |
-
# Формируем промт
|
| 15 |
prompt = """
|
| 16 |
Описание товара:
|
| 17 |
{description}
|
| 18 |
|
| 19 |
-
Задача:
|
| 20 |
Формат вывода:
|
| 21 |
{"title": "SEO заголовок до 60 символов", "description": "SEO описание до 160 символов"}
|
| 22 |
""".format(description=description)
|
|
@@ -31,18 +27,22 @@ def generate_meta_tags(description):
|
|
| 31 |
do_sample=True,
|
| 32 |
temperature=0.7
|
| 33 |
)
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
generated_text
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
|
| 47 |
|
| 48 |
# Интерфейс Gradio
|
|
|
|
| 7 |
model = T5ForConditionalGeneration.from_pretrained("cointegrated/rut5-base-multitask")
|
| 8 |
|
| 9 |
# Функция генерации мета-тегов
|
| 10 |
+
# Формируем чёткий и понятный промт
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
prompt = """
|
| 12 |
Описание товара:
|
| 13 |
{description}
|
| 14 |
|
| 15 |
+
Задача: создать SEO мета-теги для этого товара.
|
| 16 |
Формат вывода:
|
| 17 |
{"title": "SEO заголовок до 60 символов", "description": "SEO описание до 160 символов"}
|
| 18 |
""".format(description=description)
|
|
|
|
| 27 |
do_sample=True,
|
| 28 |
temperature=0.7
|
| 29 |
)
|
| 30 |
+
|
| 31 |
+
generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True).strip()
|
| 32 |
+
|
| 33 |
+
# Проверяем, является ли вывод JSON
|
| 34 |
+
if generated_text.startswith("{") and generated_text.endswith("}"):
|
| 35 |
+
# Если JSON валидный — возвращаем как есть
|
| 36 |
+
return generated_text.replace('\n', ' ').replace('“', '"').replace('”', '"')
|
| 37 |
+
else:
|
| 38 |
+
# Если не получилось — формируем безопасный вариант
|
| 39 |
+
title = description[:60] # Берём начало описания как title
|
| 40 |
+
description_short = description[:160]
|
| 41 |
+
|
| 42 |
+
return '{"title": "%s", "description": "%s"}' % (
|
| 43 |
+
title.replace('"', "").replace("\\", ""),
|
| 44 |
+
description_short.replace('"', "").replace("\\", "")
|
| 45 |
+
)
|
| 46 |
|
| 47 |
|
| 48 |
# Интерфейс Gradio
|