Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -53,7 +53,7 @@ for sheet_name, df in data.items():
|
|
53 |
current_request_index = -1 # Изначально указывает на последний запрос
|
54 |
|
55 |
|
56 |
-
def save_user_request_to_github(description, advantages, personalization_params):
|
57 |
|
58 |
global current_request_index # Используем глобальную переменную
|
59 |
current_request_index = -1 # Сбрасываем позицию к последнему запросу
|
@@ -62,6 +62,8 @@ def save_user_request_to_github(description, advantages, personalization_params)
|
|
62 |
data_to_save = {
|
63 |
"description": description,
|
64 |
"advantages": advantages,
|
|
|
|
|
65 |
"personalization_params": personalization_params,
|
66 |
"timestamp": time.time()
|
67 |
}
|
@@ -108,7 +110,7 @@ def load_previous_user_request_from_github():
|
|
108 |
|
109 |
if not json_files:
|
110 |
print("Нет сохраненных запросов.")
|
111 |
-
return "", "", None, None, None, None, None, None
|
112 |
|
113 |
# Определяем новый индекс для загрузки предыдущего файла
|
114 |
current_request_index -= 1
|
@@ -128,20 +130,30 @@ def load_previous_user_request_from_github():
|
|
128 |
description = data.get('description', "")
|
129 |
advantages = data.get('advantages', "")
|
130 |
personalization_params = data.get('personalization_params', [None] * 6) # Убедитесь, что размер списка соответствует количеству полей
|
|
|
|
|
131 |
|
132 |
# Возвращаем данные по отдельности для каждого компонента Gradio
|
133 |
-
|
134 |
else:
|
135 |
print(f"Ошибка при загрузке файла: {file_response.status_code}")
|
136 |
-
return "", "", None, None, None, None, None, None
|
137 |
else:
|
138 |
print(f"Ошибка при обращении к GitHub: {response.status_code}")
|
139 |
-
return "", "", None, None, None, None, None, None
|
140 |
|
141 |
|
142 |
# Функция для генерации стандартного промпта
|
143 |
-
def generate_standard_prompt(description, advantages, *selected_values):
|
144 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
"Сгенерируй смс-сообщение для клиента.\n"
|
146 |
"Начни сообщение с призыва к действию с продуктом.\n"
|
147 |
f"Описание предложения: {description}\n"
|
@@ -176,6 +188,10 @@ def generate_standard_prompt(description, advantages, *selected_values):
|
|
176 |
"- Речевые клише, рекламные штампы, канцеляризмы;\n"
|
177 |
"Убедись, что в готовом тексте до 250 знаков с пробелами."
|
178 |
)
|
|
|
|
|
|
|
|
|
179 |
return prompt
|
180 |
|
181 |
# Функции для генерации сообщений
|
@@ -881,6 +897,19 @@ with gr.Blocks() as demo:
|
|
881 |
"Мгновенные переводы на карты любых банков."
|
882 |
)
|
883 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
884 |
selections = []
|
885 |
for feature in features.keys():
|
886 |
if feature not in ["Пол Поколение Психотип"]: # Исключаем этот лист из выбора
|
@@ -1018,7 +1047,7 @@ with gr.Blocks() as demo:
|
|
1018 |
|
1019 |
submit_btn.click(
|
1020 |
generate_messages,
|
1021 |
-
inputs=[description_input, advantages_input] + selections,
|
1022 |
outputs=[
|
1023 |
prompt_display,
|
1024 |
output_text_gpt4o,
|
@@ -1086,7 +1115,9 @@ with gr.Blocks() as demo:
|
|
1086 |
output_text_gemma_9b,
|
1087 |
output_text_mistral, # Входные данные для персонализации
|
1088 |
description_input,
|
1089 |
-
advantages_input
|
|
|
|
|
1090 |
] + selections,
|
1091 |
outputs=[
|
1092 |
personalization_prompt,
|
@@ -1103,7 +1134,6 @@ with gr.Blocks() as demo:
|
|
1103 |
]
|
1104 |
)
|
1105 |
|
1106 |
-
|
1107 |
# Обработка клика по кнопке восстановления
|
1108 |
load_btn.click(
|
1109 |
fn=lambda: load_previous_user_request_from_github(),
|
|
|
53 |
current_request_index = -1 # Изначально указывает на последний запрос
|
54 |
|
55 |
|
56 |
+
def save_user_request_to_github(description, advantages, key_message, approach, personalization_params):
|
57 |
|
58 |
global current_request_index # Используем глобальную переменную
|
59 |
current_request_index = -1 # Сбрасываем позицию к последнему запросу
|
|
|
62 |
data_to_save = {
|
63 |
"description": description,
|
64 |
"advantages": advantages,
|
65 |
+
"key_message": key_message,
|
66 |
+
"approach": approach,
|
67 |
"personalization_params": personalization_params,
|
68 |
"timestamp": time.time()
|
69 |
}
|
|
|
110 |
|
111 |
if not json_files:
|
112 |
print("Нет сохраненных запросов.")
|
113 |
+
return "", "", "", "", None, None, None, None, None, None
|
114 |
|
115 |
# Определяем новый индекс для загрузки предыдущего файла
|
116 |
current_request_index -= 1
|
|
|
130 |
description = data.get('description', "")
|
131 |
advantages = data.get('advantages', "")
|
132 |
personalization_params = data.get('personalization_params', [None] * 6) # Убедитесь, что размер списка соответствует количеству полей
|
133 |
+
key_message = data.get('key_message', "")
|
134 |
+
approach = data.get('approach', "")
|
135 |
|
136 |
# Возвращаем данные по отдельности для каждого компонента Gradio
|
137 |
+
return description, advantages, key_message, approach, *personalization_params
|
138 |
else:
|
139 |
print(f"Ошибка при загрузке файла: {file_response.status_code}")
|
140 |
+
return "", "", "", "", None, None, None, None, None, None
|
141 |
else:
|
142 |
print(f"Ошибка при обращении к GitHub: {response.status_code}")
|
143 |
+
return "", "", "", "", None, None, None, None, None, None
|
144 |
|
145 |
|
146 |
# Функция для генерации стандартного промпта
|
147 |
+
def generate_standard_prompt(description, advantages, key_message, approach, *selected_values):
|
148 |
+
|
149 |
+
if approach == "Призыв к действию":
|
150 |
+
prompt = "Сгенерируй смс-сообщение для клиента. Начни сообщение с призыва к действию с продуктом.\n"
|
151 |
+
elif approach == "Указание на пользу":
|
152 |
+
prompt = "Сгенерируй смс-сообщение для клиента. Начни сообщение с указания на пользу продукта. Используй глагол в побудительном наклонении.\n"
|
153 |
+
elif approach == "Вопрос":
|
154 |
+
prompt = "Сгенерируй смс-сообщение для клиента. Начни сообщение с вопроса, который указывает на пользу продукта для клиента.\n"
|
155 |
+
|
156 |
+
prompt += (
|
157 |
"Сгенерируй смс-сообщение для клиента.\n"
|
158 |
"Начни сообщение с призыва к действию с продуктом.\n"
|
159 |
f"Описание предложения: {description}\n"
|
|
|
188 |
"- Речевые клише, рекламные штампы, канцеляризмы;\n"
|
189 |
"Убедись, что в готовом тексте до 250 знаков с пробелами."
|
190 |
)
|
191 |
+
|
192 |
+
if key_message.strip():
|
193 |
+
prompt += f"Убедись, что в сообщении есть следующая ключевая информация: {key_message.strip()}"
|
194 |
+
|
195 |
return prompt
|
196 |
|
197 |
# Функции для генерации сообщений
|
|
|
897 |
"Мгновенные переводы на карты любых банков."
|
898 |
)
|
899 |
)
|
900 |
+
|
901 |
+
key_message_input = gr.Textbox(
|
902 |
+
label="Ключевое сообщение (предзаполненный пример можно поменять на свой)",
|
903 |
+
lines=3,
|
904 |
+
value="Бесплатное обслуживание при покупках от 100 000 рублей в месяц."
|
905 |
+
)
|
906 |
+
|
907 |
+
approach_input = gr.Dropdown(
|
908 |
+
label="Подход",
|
909 |
+
choices=["Призыв к действию", "Указание на пользу", "Вопрос"],
|
910 |
+
value="Призыв к действию" # Default value
|
911 |
+
)
|
912 |
+
|
913 |
selections = []
|
914 |
for feature in features.keys():
|
915 |
if feature not in ["Пол Поколение Психотип"]: # Исключаем этот лист из выбора
|
|
|
1047 |
|
1048 |
submit_btn.click(
|
1049 |
generate_messages,
|
1050 |
+
inputs=[description_input, advantages_input, key_message_input, approach_input] + selections,
|
1051 |
outputs=[
|
1052 |
prompt_display,
|
1053 |
output_text_gpt4o,
|
|
|
1115 |
output_text_gemma_9b,
|
1116 |
output_text_mistral, # Входные данные для персонализации
|
1117 |
description_input,
|
1118 |
+
advantages_input,
|
1119 |
+
key_message_input, # Add key_message_input
|
1120 |
+
approach_input, # Add approach_input
|
1121 |
] + selections,
|
1122 |
outputs=[
|
1123 |
personalization_prompt,
|
|
|
1134 |
]
|
1135 |
)
|
1136 |
|
|
|
1137 |
# Обработка клика по кнопке восстановления
|
1138 |
load_btn.click(
|
1139 |
fn=lambda: load_previous_user_request_from_github(),
|