Triok1 commited on
Commit
ebc1811
·
verified ·
1 Parent(s): 7db896c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -4
app.py CHANGED
@@ -8,20 +8,24 @@ model = T5ForConditionalGeneration.from_pretrained("cointegrated/rut5-base-multi
8
 
9
  # Функция генерации мета-тегов
10
  def generate_meta_tags(description):
 
 
 
 
11
  prompt = """
12
  Описание товара:
13
- {description.strip()}
14
 
15
  Задача: Создай SEO-оптимизированные мета-теги из описания товара.
16
  Формат вывода:
17
- {{"title": "SEO заголовок до 60 символов", "description": "SEO описание до 160 символов"}}
18
- """.format(description=description.strip())
19
 
20
  inputs = tokenizer(prompt, return_tensors="pt")
21
  with torch.no_grad():
22
  outputs = model.generate(
23
  **inputs,
24
- max_new_tokens=128,
25
  pad_token_id=tokenizer.eos_token_id,
26
  eos_token_id=tokenizer.eos_token_id,
27
  do_sample=True,
@@ -29,6 +33,15 @@ def generate_meta_tags(description):
29
  )
30
  generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
31
 
 
 
 
 
 
 
 
 
 
32
  return generated_text
33
 
34
 
 
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)
23
 
24
  inputs = tokenizer(prompt, return_tensors="pt")
25
  with torch.no_grad():
26
  outputs = model.generate(
27
  **inputs,
28
+ max_new_tokens=200,
29
  pad_token_id=tokenizer.eos_token_id,
30
  eos_token_id=tokenizer.eos_token_id,
31
  do_sample=True,
 
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