Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -381,6 +381,45 @@ def generate_messages(description, advantages, key_message, approach, *selected_
|
|
381 |
return results
|
382 |
|
383 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
384 |
# Функция для генерации персонализированного промпта
|
385 |
def generate_personalization_prompt(key_message, approach, *selected_values):
|
386 |
prompt = "Адаптируй, не превышая длину сообщения в 250 знаков с пробелами, текст с учетом следующих особенностей:\n"
|
@@ -448,7 +487,10 @@ def generate_personalization_prompt(key_message, approach, *selected_values):
|
|
448 |
if "призыва к действию" in prompt and "минимум прямых призывов к действию" in prompt:
|
449 |
prompt = re.sub(r"Убедись, что готовый текст начинается с призыва к действию с продуктом.\n", "", prompt)
|
450 |
|
451 |
-
|
|
|
|
|
|
|
452 |
|
453 |
return prompt.strip()
|
454 |
|
|
|
381 |
return results
|
382 |
|
383 |
|
384 |
+
def get_last_saved_corrected_message():
|
385 |
+
repo = "fruitpicker01/Storage_dev"
|
386 |
+
url = f"https://api.github.com/repos/{repo}/contents"
|
387 |
+
headers = {
|
388 |
+
"Authorization": f"token {token}",
|
389 |
+
"Content-Type": "application/json"
|
390 |
+
}
|
391 |
+
|
392 |
+
# Получаем список файлов в репозитории
|
393 |
+
response = requests.get(url, headers=headers)
|
394 |
+
if response.status_code == 200:
|
395 |
+
files = response.json()
|
396 |
+
json_files = [file for file in files if file['name'].startswith("file_")]
|
397 |
+
|
398 |
+
if not json_files:
|
399 |
+
print("Нет сохраненных файлов.")
|
400 |
+
return None
|
401 |
+
|
402 |
+
# Сортируем файлы по времени (timestamp)
|
403 |
+
json_files.sort(key=lambda x: int(x['name'].split('_')[1].split('.')[0]), reverse=True)
|
404 |
+
|
405 |
+
# Берем последний файл
|
406 |
+
target_file = json_files[0]
|
407 |
+
file_url = target_file['download_url']
|
408 |
+
|
409 |
+
# Загружаем и декодируем содержимое файла
|
410 |
+
file_response = requests.get(file_url)
|
411 |
+
if file_response.status_code == 200:
|
412 |
+
data = json.loads(file_response.text)
|
413 |
+
corrected_message = data.get('Откорректированное сообщение', "")
|
414 |
+
return corrected_message
|
415 |
+
else:
|
416 |
+
print(f"Ошибка при загрузке файла: {file_response.status_code}")
|
417 |
+
return None
|
418 |
+
else:
|
419 |
+
print(f"Ошибка при обращении к GitHub: {response.status_code}")
|
420 |
+
return None
|
421 |
+
|
422 |
+
|
423 |
# Функция для генерации персонализированного промпта
|
424 |
def generate_personalization_prompt(key_message, approach, *selected_values):
|
425 |
prompt = "Адаптируй, не превышая длину сообщения в 250 знаков с пробелами, текст с учетом следующих особенностей:\n"
|
|
|
487 |
if "призыва к действию" in prompt and "минимум прямых призывов к действию" in prompt:
|
488 |
prompt = re.sub(r"Убедись, что готовый текст начинается с призыва к действию с продуктом.\n", "", prompt)
|
489 |
|
490 |
+
# Проверяем и добавляем откорректированное сообщение из последнего сохраненного файла
|
491 |
+
corrected_message = get_last_saved_corrected_message()
|
492 |
+
if corrected_message:
|
493 |
+
prompt += f"В качестве примера хорошей адаптации под данные требования используй следующий текст: {corrected_message}\n"
|
494 |
|
495 |
return prompt.strip()
|
496 |
|