Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -15,9 +15,9 @@ gc_key = os.getenv('GC_KEY')
|
|
15 |
token = os.getenv('GITHUB_TOKEN')
|
16 |
|
17 |
# Авторизация в сервисе GigaChat
|
18 |
-
chat_pro = GigaChat(credentials=gc_key, model='GigaChat-Pro', max_tokens=
|
19 |
-
chat_lite = GigaChat(credentials=gc_key, model='GigaChat', max_tokens=
|
20 |
-
chat_plus = GigaChat(credentials=gc_key, model='GigaChat-Plus', max_tokens=
|
21 |
|
22 |
# Загрузка данных из Excel-файла
|
23 |
try:
|
@@ -93,11 +93,21 @@ def generate_message_gpt4o(prompt):
|
|
93 |
except Exception as e:
|
94 |
return f"Ошибка при обращении к ChatGPT-4o-Latest: {e}"
|
95 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
def generate_message_gigachat_pro(prompt):
|
97 |
try:
|
98 |
messages = [SystemMessage(content=prompt)]
|
99 |
res = chat_pro(messages)
|
100 |
-
|
|
|
101 |
except Exception as e:
|
102 |
return f"Ошибка при обращении к GigaChat-Pro: {e}"
|
103 |
|
@@ -106,7 +116,8 @@ def generate_message_gigachat_lite(prompt):
|
|
106 |
time.sleep(2)
|
107 |
messages = [SystemMessage(content=prompt)]
|
108 |
res = chat_lite(messages)
|
109 |
-
|
|
|
110 |
except Exception as e:
|
111 |
return f"Ошибка при обращении к GigaChat-Lite: {e}"
|
112 |
|
@@ -115,11 +126,12 @@ def generate_message_gigachat_plus(prompt):
|
|
115 |
time.sleep(2)
|
116 |
messages = [SystemMessage(content=prompt)]
|
117 |
res = chat_plus(messages)
|
118 |
-
|
|
|
119 |
except Exception as e:
|
120 |
-
return f"Ошибка при обращении к GigaChat-
|
121 |
|
122 |
-
#
|
123 |
def generate_messages(description, advantages, *selected_values):
|
124 |
standard_prompt = generate_standard_prompt(description, advantages, *selected_values)
|
125 |
|
@@ -179,16 +191,18 @@ def perform_personalization(standard_message, personalization_prompt):
|
|
179 |
full_prompt = f"{personalization_prompt}\n\nТекст для адаптации:\n{standard_message}"
|
180 |
return generate_message_gpt4o(full_prompt)
|
181 |
|
|
|
182 |
def perform_personalization_gigachat(standard_message, personalization_prompt, model):
|
183 |
full_prompt = f"{personalization_prompt}\n\nТекст для адаптации:\n{standard_message}"
|
184 |
if model == "gigachat_pro":
|
185 |
-
|
186 |
elif model == "gigachat_lite":
|
187 |
-
|
188 |
elif model == "gigachat_plus":
|
189 |
-
|
|
|
190 |
|
191 |
-
#
|
192 |
def personalize_messages_with_yield(gpt4o_message, gigachat_pro_message, gigachat_lite_message, gigachat_plus_message, *selected_values):
|
193 |
personalization_prompt = generate_personalization_prompt(*selected_values)
|
194 |
yield personalization_prompt, "", "", "", "", "Промпт для персонализации сгенерирован"
|
|
|
15 |
token = os.getenv('GITHUB_TOKEN')
|
16 |
|
17 |
# Авторизация в сервисе GigaChat
|
18 |
+
chat_pro = GigaChat(credentials=gc_key, model='GigaChat-Pro', max_tokens=70, verify_ssl_certs=False)
|
19 |
+
chat_lite = GigaChat(credentials=gc_key, model='GigaChat', max_tokens=70, verify_ssl_certs=False)
|
20 |
+
chat_plus = GigaChat(credentials=gc_key, model='GigaChat-Plus', max_tokens=70, verify_ssl_certs=False)
|
21 |
|
22 |
# Загрузка данных из Excel-файла
|
23 |
try:
|
|
|
93 |
except Exception as e:
|
94 |
return f"Ошибка при обращении к ChatGPT-4o-Latest: {e}"
|
95 |
|
96 |
+
def clean_message(message):
|
97 |
+
# Если сообщение не заканчивается на точку или восклицательный знак, обрезаем его до последней точки
|
98 |
+
if not message.endswith(('.', '!', '?')):
|
99 |
+
last_period = message.rfind('.')
|
100 |
+
if last_period != -1:
|
101 |
+
message = message[:last_period + 1]
|
102 |
+
return message
|
103 |
+
|
104 |
+
# Обновленные функции генерации сообщений с учетом обрезки незаконченных предложений
|
105 |
def generate_message_gigachat_pro(prompt):
|
106 |
try:
|
107 |
messages = [SystemMessage(content=prompt)]
|
108 |
res = chat_pro(messages)
|
109 |
+
cleaned_message = clean_message(res.content.strip())
|
110 |
+
return cleaned_message
|
111 |
except Exception as e:
|
112 |
return f"Ошибка при обращении к GigaChat-Pro: {e}"
|
113 |
|
|
|
116 |
time.sleep(2)
|
117 |
messages = [SystemMessage(content=prompt)]
|
118 |
res = chat_lite(messages)
|
119 |
+
cleaned_message = clean_message(res.content.strip())
|
120 |
+
return cleaned_message
|
121 |
except Exception as e:
|
122 |
return f"Ошибка при обращении к GigaChat-Lite: {e}"
|
123 |
|
|
|
126 |
time.sleep(2)
|
127 |
messages = [SystemMessage(content=prompt)]
|
128 |
res = chat_plus(messages)
|
129 |
+
cleaned_message = clean_message(res.content.strip())
|
130 |
+
return cleaned_message
|
131 |
except Exception as e:
|
132 |
+
return f"Ошибка при обращении к GigaChat-Plus: {e}"
|
133 |
|
134 |
+
# Обновляем генерацию сообщений для отображения в интерфейсе
|
135 |
def generate_messages(description, advantages, *selected_values):
|
136 |
standard_prompt = generate_standard_prompt(description, advantages, *selected_values)
|
137 |
|
|
|
191 |
full_prompt = f"{personalization_prompt}\n\nТекст для адаптации:\n{standard_message}"
|
192 |
return generate_message_gpt4o(full_prompt)
|
193 |
|
194 |
+
# Также обновляем функции персонализации
|
195 |
def perform_personalization_gigachat(standard_message, personalization_prompt, model):
|
196 |
full_prompt = f"{personalization_prompt}\n\nТекст для адаптации:\n{standard_message}"
|
197 |
if model == "gigachat_pro":
|
198 |
+
result = generate_message_gigachat_pro(full_prompt)
|
199 |
elif model == "gigachat_lite":
|
200 |
+
result = generate_message_gigachat_lite(full_prompt)
|
201 |
elif model == "gigachat_plus":
|
202 |
+
result = generate_message_gigachat_plus(full_prompt)
|
203 |
+
return clean_message(result)
|
204 |
|
205 |
+
# Обновляем блок персонализации
|
206 |
def personalize_messages_with_yield(gpt4o_message, gigachat_pro_message, gigachat_lite_message, gigachat_plus_message, *selected_values):
|
207 |
personalization_prompt = generate_personalization_prompt(*selected_values)
|
208 |
yield personalization_prompt, "", "", "", "", "Промпт для персонализации сгенерирован"
|