Triok1 commited on
Commit
8bdbf2c
·
verified ·
1 Parent(s): b906c9d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -18
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
- def generate_meta_tags(description):
11
- # Очищаем описание
12
- description = description.strip()
13
-
14
- # Формируем промт
15
  prompt = """
16
  Описание товара:
17
  {description}
18
 
19
- Задача: Создай SEO-оптимизированные мета-теги из описания товара.
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
- generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
35
-
36
- # Принудительно исправляем JSON, если он сломан
37
- import re
38
- match = re.search(r'\{.*\}', generated_text, re.DOTALL)
39
- if match:
40
- generated_text = match.group(0)
41
-
42
- generated_text = generated_text.replace('\n', ' ').replace('“','"').replace('”','"')
43
- print("Prompt:", prompt)
44
- print("Generated text:", generated_text)
45
- return generated_text
 
 
 
 
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