fruitpicker01 commited on
Commit
915ac85
·
verified ·
1 Parent(s): 78fc278

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -130
app.py CHANGED
@@ -72,61 +72,6 @@ def generate_standard_prompt(description, advantages, *selected_values):
72
  )
73
  return prompt
74
 
75
- # Функции для генерации сообщений с персонализацией
76
- def create_personalization_prompt(message, *selected_values):
77
- prompt = f"Пожалуйста, адаптируйте данное сообщение: '{message}' в соответствии со следующими требованиями:\n"
78
- for i, feature in enumerate(features.keys()):
79
- if selected_values[i]:
80
- try:
81
- prompt += f"- {features[feature][selected_values[i]]}\n"
82
- except KeyError:
83
- return f"Ошибка: выбранное значение {selected_values[i]} не найдено в данных."
84
- return prompt.strip()
85
-
86
- def generate_personalized_message_gpt4o(message, personalization_prompt):
87
- try:
88
- headers = {
89
- "Content-Type": "application/json",
90
- "Authorization": f"Bearer {openai_api_key}"
91
- }
92
- data = {
93
- "model": "chatgpt-4o-latest",
94
- "messages": [{"role": "system", "content": f"{personalization_prompt}"}],
95
- "max_tokens": 700
96
- }
97
- response = requests.post("https://api.openai.com/v1/chat/completions", json=data, headers=headers)
98
- response_data = response.json()
99
- return response_data["choices"][0]["message"]["content"].strip()
100
- except Exception as e:
101
- return f"Ошибка при обращении к ChatGPT-4o-Latest: {e}"
102
-
103
- def generate_personalized_message_gigachat_pro(message, personalization_prompt):
104
- try:
105
- messages = [SystemMessage(content=f"{personalization_prompt}")]
106
- res = chat_pro(messages)
107
- return res.content.strip()
108
- except Exception as e:
109
- return f"Ошибка при обращении к GigaChat-Pro: {e}"
110
-
111
- def generate_personalized_message_gigachat_lite(message, personalization_prompt):
112
- try:
113
- time.sleep(2)
114
- messages = [SystemMessage(content=f"{personalization_prompt}")]
115
- res = chat_lite(messages)
116
- return res.content.strip()
117
- except Exception as e:
118
- return f"Ошибка при обращении к GigaChat-Lite: {e}"
119
-
120
- def generate_personalized_message_gigachat_plus(message, personalization_prompt):
121
- try:
122
- time.sleep(2)
123
- messages = [SystemMessage(content=f"{personalization_prompt}")]
124
- res = chat_plus(messages)
125
- return res.content.strip()
126
- except Exception as e:
127
- return f"Ошибка при обращении к GigaChat-Lite+: {e}"
128
-
129
-
130
  # Функция для генерации сообщения с помощью ChatGPT-4o-Latest
131
  def generate_message_gpt4o(prompt):
132
  try:
@@ -167,7 +112,6 @@ def generate_message_gigachat_lite(prompt):
167
  # Функция для генерации сообщения с помощью GigaChat-Lite+
168
  def generate_message_gigachat_plus(prompt):
169
  try:
170
- time.sleep(2)
171
  messages = [SystemMessage(content=prompt)]
172
  res = chat_plus(messages)
173
  return res.content.strip()
@@ -176,50 +120,29 @@ def generate_message_gigachat_plus(prompt):
176
 
177
  # Функция для обработки нажатия кнопки Submit и последовательного отображения результатов
178
  def generate_messages(description, advantages, *selected_values):
179
- # Генерация стандартного промпта с использованием вашей функции
180
- prompt = generate_standard_prompt(description, advantages, *selected_values)
181
 
182
- # Генерация стандартных сообщений от разных моделей
183
- message_gpt4o = generate_message_gpt4o(prompt)
184
- yield prompt, message_gpt4o, "", "", "", "", "", "", "", "", "", "", ""
 
 
 
 
185
 
186
- message_gigachat_pro = generate_message_gigachat_pro(prompt)
187
- yield prompt, message_gpt4o, message_gigachat_pro, "", "", "", "", "", "", "", "", "", ""
188
 
189
- message_gigachat_lite = generate_message_gigachat_lite(prompt)
190
- yield prompt, message_gpt4o, message_gigachat_pro, message_gigachat_lite, "", "", "", "", "", "", "", ""
191
 
192
- message_gigachat_plus = generate_message_gigachat_plus(prompt)
193
- yield prompt, message_gpt4o, message_gigachat_pro, message_gigachat_lite, message_gigachat_plus, "", "", "", "", "", "", "", ""
194
 
195
- # Создание персонализированн��х промптов на основе сгенерированных сообщений и выбранных признаков
196
- personalization_prompt_gpt4o = f"Пожалуйста, адаптируйте следующее сообщение: '{message_gpt4o}' под следующие требования:\n"
197
- personalization_prompt_gigachat_pro = f"Пожалуйста, адаптируйте следующее сообщение: '{message_gigachat_pro}' под следующие требования:\n"
198
- personalization_prompt_gigachat_lite = f"Пожалуйста, адаптируйте следующее сообщение: '{message_gigachat_lite}' под следующие требования:\n"
199
- personalization_prompt_gigachat_plus = f"Пожалуйста, адаптируйте следующее сообщение: '{message_gigachat_plus}' под следующие требования:\n"
200
-
201
- # Добавляем требования, выбранные пользователем
202
- for i, feature in enumerate(features.keys()):
203
- if selected_values[i]:
204
- requirement = f"- {features[feature][selected_values[i]]}\n"
205
- personalization_prompt_gpt4o += requirement
206
- personalization_prompt_gigachat_pro += requirement
207
- personalization_prompt_gigachat_lite += requirement
208
- personalization_prompt_gigachat_plus += requirement
209
-
210
- # Генерация и отображение персонализированных сообщений
211
- personalized_message_gpt4o = generate_personalized_message_gpt4o(message_gpt4o, personalization_prompt_gpt4o)
212
- yield prompt, message_gpt4o, message_gigachat_pro, message_gigachat_lite, message_gigachat_plus, personalized_message_gpt4o, "", "", "", personalization_prompt_gpt4o, "", "", ""
213
-
214
- personalized_message_gigachat_pro = generate_personalized_message_gigachat_pro(message_gigachat_pro, personalization_prompt_gigachat_pro)
215
- yield prompt, message_gpt4o, message_gigachat_pro, message_gigachat_lite, message_gigachat_plus, personalized_message_gpt4o, personalized_message_gigachat_pro, "", "", "", personalization_prompt_gigachat_pro, "", ""
216
-
217
- personalized_message_gigachat_lite = generate_personalized_message_gigachat_lite(message_gigachat_lite, personalization_prompt_gigachat_lite)
218
- yield prompt, message_gpt4o, message_gigachat_pro, message_gigachat_lite, message_gigachat_plus, personalized_message_gpt4o, personalized_message_gigachat_pro, personalized_message_gigachat_lite, "", "", "", personalization_prompt_gigachat_lite, ""
219
-
220
- personalized_message_gigachat_plus = generate_personalized_message_gigachat_plus(message_gigachat_plus, personalization_prompt_gigachat_plus)
221
- yield prompt, message_gpt4o, message_gigachat_pro, message_gigachat_lite, message_gigachat_plus, personalized_message_gpt4o, personalized_message_gigachat_pro, personalized_message_gigachat_lite, personalized_message_gigachat_plus, "", "", "", personalization_prompt_gigachat_plus
222
 
 
 
223
 
224
  # Создание интерфейса Gradio
225
  with gr.Blocks() as demo:
@@ -227,7 +150,6 @@ with gr.Blocks() as demo:
227
 
228
  with gr.Row():
229
  with gr.Column(scale=1):
230
- # Поле для ввода описания предложения
231
  description_input = gr.Textbox(
232
  label="Описание предложения (предзаполненный пример можно поменять на свой)",
233
  lines=6,
@@ -241,8 +163,6 @@ with gr.Blocks() as demo:
241
  "4. В течение следующего месяца пользоваться ей бесплатно."
242
  )
243
  )
244
-
245
- # Поле для ввода преимуществ
246
  advantages_input = gr.Textbox(
247
  label="Преимущества (предзаполненный пример можно поменять на свой)",
248
  lines=4,
@@ -254,8 +174,6 @@ with gr.Blocks() as demo:
254
  "Мгновенные переводы на карты любых банков."
255
  )
256
  )
257
-
258
- # Поля для выбора признаков
259
  selections = []
260
  for feature in features.keys():
261
  selections.append(gr.Dropdown(choices=[None] + list(features[feature].keys()), label=f"Выберите {feature}"))
@@ -263,42 +181,16 @@ with gr.Blocks() as demo:
263
  submit_btn = gr.Button("Submit") # Оранжевая кнопка по умолчанию
264
 
265
  with gr.Column(scale=2):
266
- prompt_display = gr.Textbox(label="Сгенерированный промпт", lines=4, interactive=False)
267
  output_text_gpt4o = gr.Textbox(label="Создание сообщения GPT-4o", lines=3)
268
  output_text_gigachat_pro = gr.Textbox(label="Создание сообщения GigaChat-Pro", lines=3)
269
  output_text_gigachat_lite = gr.Textbox(label="Создание сообщения GigaChat-Lite", lines=3)
270
  output_text_gigachat_plus = gr.Textbox(label="Создание сообщения GigaChat-Lite+", lines=3)
271
-
272
- # Добавляем поля для персонализированных сообщений
273
- personalized_output_text_gpt4o = gr.Textbox(label="Персонализированное сообщение GPT-4o", lines=3)
274
- personalized_output_text_gigachat_pro = gr.Textbox(label="Персонализированное сообщение GigaChat-Pro", lines=3)
275
- personalized_output_text_gigachat_lite = gr.Textbox(label="Персонализированное сообщение GigaChat-Lite", lines=3)
276
- personalized_output_text_gigachat_plus = gr.Textbox(label="Персонализированное сообщение GigaChat-Lite+", lines=3)
277
-
278
- # Добавляем поля для персонализированных промптов
279
- personalization_prompt_gpt4o_display = gr.Textbox(label="Промпт для персонализации GPT-4o", lines=6, interactive=False)
280
- personalization_prompt_gigachat_pro_display = gr.Textbox(label="Промпт для персонализации GigaChat-Pro", lines=6, interactive=False)
281
- personalization_prompt_gigachat_lite_display = gr.Textbox(label="Промпт для персонализации GigaChat-Lite", lines=6, interactive=False)
282
- personalization_prompt_gigachat_plus_display = gr.Textbox(label="Промпт для персонализации GigaChat-Lite+", lines=6, interactive=False)
283
-
284
  submit_btn.click(
285
- generate_messages,
286
- inputs=[description_input, advantages_input] + selections,
287
- outputs=[
288
- prompt_display,
289
- output_text_gpt4o,
290
- output_text_gigachat_pro,
291
- output_text_gigachat_lite,
292
- output_text_gigachat_plus,
293
- personalized_output_text_gpt4o,
294
- personalized_output_text_gigachat_pro,
295
- personalized_output_text_gigachat_lite,
296
- personalized_output_text_gigachat_plus,
297
- personalization_prompt_gpt4o_display,
298
- personalization_prompt_gigachat_pro_display,
299
- personalization_prompt_gigachat_lite_display,
300
- personalization_prompt_gigachat_plus_display
301
- ]
302
  )
303
 
304
  demo.launch()
 
72
  )
73
  return prompt
74
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
  # Функция для генерации сообщения с помощью ChatGPT-4o-Latest
76
  def generate_message_gpt4o(prompt):
77
  try:
 
112
  # Функция для генерации сообщения с помощью GigaChat-Lite+
113
  def generate_message_gigachat_plus(prompt):
114
  try:
 
115
  messages = [SystemMessage(content=prompt)]
116
  res = chat_plus(messages)
117
  return res.content.strip()
 
120
 
121
  # Функция для обработки нажатия кнопки Submit и последовательного отображения результатов
122
  def generate_messages(description, advantages, *selected_values):
123
+ standard_prompt = generate_standard_prompt(description, advantages, *selected_values)
 
124
 
125
+ results = {
126
+ "prompt": standard_prompt,
127
+ "gpt4o": None,
128
+ "gigachat_pro": None,
129
+ "gigachat_lite": None,
130
+ "gigachat_plus": None
131
+ }
132
 
133
+ yield results["prompt"], "", "", "", ""
 
134
 
135
+ results["gpt4o"] = generate_message_gpt4o(standard_prompt)
136
+ yield results["prompt"], results["gpt4o"], "", "", ""
137
 
138
+ results["gigachat_pro"] = generate_message_gigachat_pro(standard_prompt)
139
+ yield results["prompt"], results["gpt4o"], results["gigachat_pro"], "", ""
140
 
141
+ results["gigachat_lite"] = generate_message_gigachat_lite(standard_prompt)
142
+ yield results["prompt"], results["gpt4o"], results["gigachat_pro"], results["gigachat_lite"], ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
 
144
+ results["gigachat_plus"] = generate_message_gigachat_plus(standard_prompt)
145
+ yield results["prompt"], results["gpt4o"], results["gigachat_pro"], results["gigachat_lite"], results["gigachat_plus"]
146
 
147
  # Создание интерфейса Gradio
148
  with gr.Blocks() as demo:
 
150
 
151
  with gr.Row():
152
  with gr.Column(scale=1):
 
153
  description_input = gr.Textbox(
154
  label="Описание предложения (предзаполненный пример можно поменять на свой)",
155
  lines=6,
 
163
  "4. В течение следующего месяца пользоваться ей бесплатно."
164
  )
165
  )
 
 
166
  advantages_input = gr.Textbox(
167
  label="Преимущества (предзаполненный пример можно поменять на свой)",
168
  lines=4,
 
174
  "Мгновенные переводы на карты любых банков."
175
  )
176
  )
 
 
177
  selections = []
178
  for feature in features.keys():
179
  selections.append(gr.Dropdown(choices=[None] + list(features[feature].keys()), label=f"Выберите {feature}"))
 
181
  submit_btn = gr.Button("Submit") # Оранжевая кнопка по умолчанию
182
 
183
  with gr.Column(scale=2):
184
+ prompt_display = gr.Textbox(label="Стандартный промпт", lines=15, interactive=False)
185
  output_text_gpt4o = gr.Textbox(label="Создание сообщения GPT-4o", lines=3)
186
  output_text_gigachat_pro = gr.Textbox(label="Создание сообщения GigaChat-Pro", lines=3)
187
  output_text_gigachat_lite = gr.Textbox(label="Создание сообщения GigaChat-Lite", lines=3)
188
  output_text_gigachat_plus = gr.Textbox(label="Создание сообщения GigaChat-Lite+", lines=3)
189
+
 
 
 
 
 
 
 
 
 
 
 
 
190
  submit_btn.click(
191
+ generate_messages,
192
+ inputs=[description_input, advantages_input] + selections,
193
+ outputs=[prompt_display, output_text_gpt4o, output_text_gigachat_pro, output_text_gigachat_lite, output_text_gigachat_plus]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
194
  )
195
 
196
  demo.launch()