fruitpicker01 commited on
Commit
bbe853f
·
verified ·
1 Parent(s): 7254b7c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +219 -45
app.py CHANGED
@@ -76,7 +76,7 @@ def generate_standard_prompt(description, advantages, *selected_values):
76
  return prompt
77
 
78
  # Функции для генерации сообщений
79
- def generate_message_gpt4o(prompt, temperature=1):
80
  try:
81
  headers = {
82
  "Content-Type": "application/json",
@@ -85,16 +85,14 @@ def generate_message_gpt4o(prompt, temperature=1):
85
  data = {
86
  "model": "chatgpt-4o-latest",
87
  "messages": [{"role": "system", "content": prompt}],
88
- "max_tokens": 101,
89
- "temperature": temperature # Передача температуры
90
  }
91
  response = requests.post("https://api.openai.com/v1/chat/completions", json=data, headers=headers)
92
  response_data = response.json()
93
- return clean_message(response_data["choices"][0]["message"]["content"].strip())
94
  except Exception as e:
95
  return f"Ошибка при обращении к ChatGPT-4o-Latest: {e}"
96
 
97
-
98
  def clean_message(message):
99
  # Если сообщение не заканчивается на точку или восклицательный знак, обрезаем его до последней точки
100
  if not message.endswith(('.', '!', '?')):
@@ -104,7 +102,7 @@ def clean_message(message):
104
  return message
105
 
106
  # Обновленные функции генерации сообщений с учетом обрезки незаконченных предложений
107
- def generate_message_gigachat_pro(prompt, temperature):
108
  try:
109
  messages = [SystemMessage(content=prompt)]
110
  chat_pro = GigaChat(credentials=gc_key, model='GigaChat-Pro', max_tokens=68, temperature=temperature, verify_ssl_certs=False)
@@ -114,7 +112,7 @@ def generate_message_gigachat_pro(prompt, temperature):
114
  except Exception as e:
115
  return f"Ошибка при обращении к GigaChat-Pro: {e}"
116
 
117
- def generate_message_gigachat_lite(prompt, temperature):
118
  try:
119
  time.sleep(2)
120
  messages = [SystemMessage(content=prompt)]
@@ -125,7 +123,7 @@ def generate_message_gigachat_lite(prompt, temperature):
125
  except Exception as e:
126
  return f"Ошибка при обращении к GigaChat-Lite: {e}"
127
 
128
- def generate_message_gigachat_plus(prompt, temperature):
129
  try:
130
  time.sleep(2)
131
  messages = [SystemMessage(content=prompt)]
@@ -136,37 +134,37 @@ def generate_message_gigachat_plus(prompt, temperature):
136
  except Exception as e:
137
  return f"Ошибка при обращении к GigaChat-Plus: {e}"
138
 
139
- def generate_message_gpt4o_with_retry(prompt, temperature):
140
  for _ in range(10): # Максимум 10 попыток
141
- message = generate_message_gpt4o(prompt, temperature) # Передаем температуру
142
  if len(message) <= 250:
143
  return message
144
  return message # Возвращаем последнее сгенерированное сообщение, если все попытки не удались
145
 
146
- def generate_message_gigachat_pro_with_retry(prompt, temperature):
147
  for _ in range(10):
148
- message = generate_message_gigachat_pro(prompt, temperature) # Передаем температуру
149
  if len(message) <= 250:
150
  return message
151
  return message
152
 
153
- def generate_message_gigachat_lite_with_retry(prompt, temperature):
154
  for _ in range(10):
155
- message = generate_message_gigachat_lite(prompt, temperature) # Передаем температуру
156
  if len(message) <= 250:
157
  return message
158
  return message
159
 
160
- def generate_message_gigachat_plus_with_retry(prompt, temperature):
161
  for _ in range(10):
162
- message = generate_message_gigachat_plus(prompt, temperature) # Передаем температуру
163
  if len(message) <= 250:
164
  return message
165
  return message
166
 
167
 
168
  # Обновляем генерацию сообщений для отображения в интерфейсе
169
- def generate_messages(description, advantages, *selected_values, gpt4o_temperature, gigachat_pro_temperature, gigachat_lite_temperature, gigachat_plus_temperature):
170
  standard_prompt = generate_standard_prompt(description, advantages, *selected_values)
171
 
172
  results = {
@@ -179,33 +177,34 @@ def generate_messages(description, advantages, *selected_values, gpt4o_temperatu
179
 
180
  yield results["prompt"], "", "", "", "", "Генерация стандартного промпта завершена"
181
 
182
- results["gpt4o"] = generate_message_gpt4o_with_retry(standard_prompt, gpt4o_temperature)
183
  gpt4o_length = len(results["gpt4o"])
184
- gpt4o_display = f"{results['gpt4o']}\n\n------\nКоличество знаков: {gpt4o_length}\nТемпература: {gpt4o_temperature}"
185
  yield results["prompt"], gpt4o_display, "", "", "", "Сообщение GPT-4o сгенерировано"
186
 
187
- results["gigachat_pro"] = generate_message_gigachat_pro_with_retry(standard_prompt, gigachat_pro_temperature)
188
  gigachat_pro_length = len(results["gigachat_pro"])
189
- gigachat_pro_display = f"{results['gigachat_pro']}\n\n------\nКоличество знаков: {gigachat_pro_length}\nТемпература: {gigachat_pro_temperature}"
190
  yield results["prompt"], gpt4o_display, gigachat_pro_display, "", "", "Сообщение GigaChat-Pro сгенерировано"
191
 
192
  time.sleep(2)
193
 
194
- results["gigachat_lite"] = generate_message_gigachat_lite_with_retry(standard_prompt, gigachat_lite_temperature)
195
  gigachat_lite_length = len(results["gigachat_lite"])
196
- gigachat_lite_display = f"{results['gigachat_lite']}\n\n------\nКоличество знаков: {gigachat_lite_length}\nТемпература: {gigachat_lite_temperature}"
197
  yield results["prompt"], gpt4o_display, gigachat_pro_display, gigachat_lite_display, "", "Сообщение GigaChat-Lite сгенерировано"
198
 
199
  time.sleep(2)
200
 
201
- results["gigachat_plus"] = generate_message_gigachat_plus_with_retry(standard_prompt, gigachat_plus_temperature)
202
  gigachat_plus_length = len(results["gigachat_plus"])
203
- gigachat_plus_display = f"{results['gigachat_plus']}\n\n------\nКоличество знаков: {gigachat_plus_length}\nТемпература: {gigachat_plus_temperature}"
204
  yield results["prompt"], gpt4o_display, gigachat_pro_display, gigachat_lite_display, gigachat_plus_display, "Все сообщения сгенерированы"
205
 
206
  return results
207
 
208
 
 
209
  # Функция для генерации персонализированного промпта
210
  def generate_personalization_prompt(*selected_values):
211
  prompt = "Адаптируй, не превышая длину сообщения в 250 знаков с пробелами, текст с учетом следующих особенностей:\n"
@@ -389,17 +388,16 @@ def save_to_github(personalized_message, model_name, comment, corrected_message,
389
  # Отправка POST-запроса на GitHub API для создания файла в репозитории
390
  response = requests.put(url, headers=headers, data=json.dumps(data))
391
 
 
 
 
 
 
 
392
 
393
  # Создание интерфейса Gradio
394
  with gr.Blocks() as demo:
395
  gr.Markdown("# Генерация SMS-сообщений по заданным признакам")
396
-
397
- # Добавление элементов управления температурой для каждой модели
398
- gpt4o_temperature = gr.Slider(label="GPT-4o: temperature", minimum=0, maximum=1.7, step=0.01, value=1)
399
- gigachat_pro_temperature = gr.Slider(label="GigaChat-Pro: temperature", minimum=0, maximum=1.7, step=0.01, value=0.87)
400
- gigachat_lite_temperature = gr.Slider(label="GigaChat-Lite: temperature", minimum=0, maximum=1.7, step=0.01, value=0.87)
401
- gigachat_plus_temperature = gr.Slider(label="GigaChat-Plus: temperature", minimum=0, maximum=1.7, step=0.01, value=0.87)
402
-
403
 
404
  with gr.Row():
405
  with gr.Column(scale=1):
@@ -440,19 +438,20 @@ with gr.Blocks() as demo:
440
  output_text_gigachat_lite = gr.Textbox(label="Неперсонализированное сообщение GigaChat-Lite", lines=3, interactive=False)
441
  output_text_gigachat_plus = gr.Textbox(label="Неперсонализированное сообщение GigaChat-Lite+", lines=3, interactive=False)
442
 
443
- submit_btn.click(
444
- generate_messages,
445
- inputs=[
446
- description_input,
447
- advantages_input,
448
- *selections,
449
- gpt4o_temperature,
450
- gigachat_pro_temperature,
451
- gigachat_lite_temperature,
452
- gigachat_plus_temperature
453
- ],
454
- outputs=[prompt_display, output_text_gpt4o, output_text_gigachat_pro, output_text_gigachat_lite, output_text_gigachat_plus]
455
- )
 
456
 
457
  with gr.Row():
458
  personalize_btn = gr.Button("2. Выполнить персонализацию (нажимать только после кнопки 1)", elem_id="personalize_button")
@@ -601,4 +600,179 @@ with gr.Blocks() as demo:
601
  )
602
 
603
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
604
  demo.launch()
 
76
  return prompt
77
 
78
  # Функции для генерации сообщений
79
+ def generate_message_gpt4o(prompt):
80
  try:
81
  headers = {
82
  "Content-Type": "application/json",
 
85
  data = {
86
  "model": "chatgpt-4o-latest",
87
  "messages": [{"role": "system", "content": prompt}],
88
+ "max_tokens": 101
 
89
  }
90
  response = requests.post("https://api.openai.com/v1/chat/completions", json=data, headers=headers)
91
  response_data = response.json()
92
+ return response_data["choices"][0]["message"]["content"].strip()
93
  except Exception as e:
94
  return f"Ошибка при обращении к ChatGPT-4o-Latest: {e}"
95
 
 
96
  def clean_message(message):
97
  # Если сообщение не заканчивается на точку или восклицательный знак, обрезаем его до последней точки
98
  if not message.endswith(('.', '!', '?')):
 
102
  return message
103
 
104
  # Обновленные функции генерации сообщений с учетом обрезки незаконченных предложений
105
+ def generate_message_gigachat_pro(prompt, temperature=0.87):
106
  try:
107
  messages = [SystemMessage(content=prompt)]
108
  chat_pro = GigaChat(credentials=gc_key, model='GigaChat-Pro', max_tokens=68, temperature=temperature, verify_ssl_certs=False)
 
112
  except Exception as e:
113
  return f"Ошибка при обращении к GigaChat-Pro: {e}"
114
 
115
+ def generate_message_gigachat_lite(prompt, temperature=0.87):
116
  try:
117
  time.sleep(2)
118
  messages = [SystemMessage(content=prompt)]
 
123
  except Exception as e:
124
  return f"Ошибка при обращении к GigaChat-Lite: {e}"
125
 
126
+ def generate_message_gigachat_plus(prompt, temperature=0.87):
127
  try:
128
  time.sleep(2)
129
  messages = [SystemMessage(content=prompt)]
 
134
  except Exception as e:
135
  return f"Ошибка при обращении к GigaChat-Plus: {e}"
136
 
137
+ def generate_message_gpt4o_with_retry(prompt):
138
  for _ in range(10): # Максимум 10 попыток
139
+ message = generate_message_gpt4o(prompt)
140
  if len(message) <= 250:
141
  return message
142
  return message # Возвращаем последнее сгенерированное сообщение, если все попытки не удались
143
 
144
+ def generate_message_gigachat_pro_with_retry(prompt):
145
  for _ in range(10):
146
+ message = generate_message_gigachat_pro(prompt)
147
  if len(message) <= 250:
148
  return message
149
  return message
150
 
151
+ def generate_message_gigachat_lite_with_retry(prompt):
152
  for _ in range(10):
153
+ message = generate_message_gigachat_lite(prompt)
154
  if len(message) <= 250:
155
  return message
156
  return message
157
 
158
+ def generate_message_gigachat_plus_with_retry(prompt):
159
  for _ in range(10):
160
+ message = generate_message_gigachat_plus(prompt)
161
  if len(message) <= 250:
162
  return message
163
  return message
164
 
165
 
166
  # Обновляем генерацию сообщений для отображения в интерфейсе
167
+ def generate_messages(description, advantages, *selected_values):
168
  standard_prompt = generate_standard_prompt(description, advantages, *selected_values)
169
 
170
  results = {
 
177
 
178
  yield results["prompt"], "", "", "", "", "Генерация стандартного промпта завершена"
179
 
180
+ results["gpt4o"] = generate_message_gpt4o_with_retry(standard_prompt)
181
  gpt4o_length = len(results["gpt4o"])
182
+ gpt4o_display = f"{results['gpt4o']}\n\n------\nКоличество знаков: {gpt4o_length}"
183
  yield results["prompt"], gpt4o_display, "", "", "", "Сообщение GPT-4o сгенерировано"
184
 
185
+ results["gigachat_pro"] = generate_message_gigachat_pro_with_retry(standard_prompt)
186
  gigachat_pro_length = len(results["gigachat_pro"])
187
+ gigachat_pro_display = f"{results['gigachat_pro']}\n\n------\nКоличество знаков: {gigachat_pro_length}"
188
  yield results["prompt"], gpt4o_display, gigachat_pro_display, "", "", "Сообщение GigaChat-Pro сгенерировано"
189
 
190
  time.sleep(2)
191
 
192
+ results["gigachat_lite"] = generate_message_gigachat_lite_with_retry(standard_prompt)
193
  gigachat_lite_length = len(results["gigachat_lite"])
194
+ gigachat_lite_display = f"{results['gigachat_lite']}\n\n------\nКоличество знаков: {gigachat_lite_length}"
195
  yield results["prompt"], gpt4o_display, gigachat_pro_display, gigachat_lite_display, "", "Сообщение GigaChat-Lite сгенерировано"
196
 
197
  time.sleep(2)
198
 
199
+ results["gigachat_plus"] = generate_message_gigachat_plus_with_retry(standard_prompt)
200
  gigachat_plus_length = len(results["gigachat_plus"])
201
+ gigachat_plus_display = f"{results['gigachat_plus']}\n\n------\nКоличество знаков: {gigachat_plus_length}"
202
  yield results["prompt"], gpt4o_display, gigachat_pro_display, gigachat_lite_display, gigachat_plus_display, "Все сообщения сгенерированы"
203
 
204
  return results
205
 
206
 
207
+
208
  # Функция для генерации персонализированного промпта
209
  def generate_personalization_prompt(*selected_values):
210
  prompt = "Адаптируй, не превышая длину сообщения в 250 знаков с пробелами, текст с учетом следующих особенностей:\n"
 
388
  # Отправка POST-запроса на GitHub API для создания файла в репозитории
389
  response = requests.put(url, headers=headers, data=json.dumps(data))
390
 
391
+ if response.status_code == 201:
392
+ print("Файл успешно загружен на GitHub.")
393
+ else:
394
+ print(f"Ошибка при загрузке файла на GitHub: {response.status_code}")
395
+ print(f"Ответ сервера: {response.json()}")
396
+
397
 
398
  # Создание интерфейса Gradio
399
  with gr.Blocks() as demo:
400
  gr.Markdown("# Генерация SMS-сообщений по заданным признакам")
 
 
 
 
 
 
 
401
 
402
  with gr.Row():
403
  with gr.Column(scale=1):
 
438
  output_text_gigachat_lite = gr.Textbox(label="Неперсонализированное сообщение GigaChat-Lite", lines=3, interactive=False)
439
  output_text_gigachat_plus = gr.Textbox(label="Неперсонализированное сообщение GigaChat-Lite+", lines=3, interactive=False)
440
 
441
+ submit_btn.click(
442
+ generate_messages,
443
+ inputs=[
444
+ description_input,
445
+ advantages_input,
446
+ *selections,
447
+ gpt4o_temperature,
448
+ gigachat_pro_temperature,
449
+ gigachat_lite_temperature,
450
+ gigachat_plus_temperature
451
+ ],
452
+ outputs=[prompt_display, output_text_gpt4o, output_text_gigachat_pro, output_text_gigachat_lite, output_text_gigachat_plus]
453
+ )
454
+
455
 
456
  with gr.Row():
457
  personalize_btn = gr.Button("2. Выполнить персонализацию (нажимать только после кнопки 1)", elem_id="personalize_button")
 
600
  )
601
 
602
 
603
+ demo.launch()
604
+
605
+ Есть скрипт, в котором есть полезная для меня функция:
606
+
607
+ import gradio as gr
608
+ import requests
609
+ import os
610
+ import time
611
+ from langchain.schema import SystemMessage
612
+ from langchain_community.chat_models.gigachat import GigaChat
613
+
614
+ # Установка ключа API для OpenAI и GigaChat
615
+ openai_api_key = os.getenv('GPT_KEY')
616
+ gc_key = os.getenv('GC_KEY')
617
+
618
+ # Авторизация в сервисе GigaChat
619
+ def authenticate_gigachat(model, max_tokens, temperature):
620
+ return GigaChat(credentials=gc_key, model=model, max_tokens=max_tokens, temperature=temperature, verify_ssl_certs=False)
621
+
622
+ # Функция для генерации персонализированного промпта
623
+ def generate_personalization_prompt(text, opf):
624
+ if opf == "ИП":
625
+ prompt = (
626
+ "Текст должен быть адаптирован для индивидуальных предпринимателей, которые часто ведут бизнес самостоятельно или с минимальным количеством сотрудников. "
627
+ "Подчеркните простоту и эффективность использования продукта в условиях ограниченных ресурсов. Особое внимание уделите возможности быстрого и удобного управления финансами, "
628
+ "снижению административной нагрузки и оптимизации затрат. Важно, чтобы текст отражал преимущество в виде простоты интеграции продукта в повседневную деятельность ИП, "
629
+ "включая оперативность расчетов и гибкость условий. Если имеются льготные условия или специальные предложения для ИП, такие как сниженные комиссии или удобные условия оплаты, "
630
+ "обязательно упомяните их.\n"
631
+ f"Текст: \"{text}\""
632
+ )
633
+ elif opf == "ООО":
634
+ prompt = (
635
+ "Текст должен быть адаптирован для обществ с ограниченной ответственностью (ООО), которые управляют более структурированными и масштабными бизнес-процессами. "
636
+ "Уделите внимание возможностям продукта в контексте работы с большим количеством сотрудников, управлением бюджетами и финансовыми потоками компании. "
637
+ "Подчеркните преимущества использования продукта для оптимизации бизнес-процессов, включая автоматизацию расчетов, настройку прав доступа и интеграцию с корпоративными системами учета. "
638
+ "Важно указать на возможности улучшения операционной эффективности и соответствия юридическим и налоговым требованиям. Если продукт предлагает специальные условия ��ля корпоративных клиентов, "
639
+ "такие как комплексное обслуживание или индивидуальные тарифы, обязательно включите эту информацию в текст.\n"
640
+ f"Текст: \"{text}\""
641
+ )
642
+ return prompt
643
+
644
+ # Функция для очистки сообщений
645
+ def clean_message(message):
646
+ if not message.endswith(('.', '!', '?')):
647
+ last_period = max(message.rfind('.'), message.rfind('!'), message.rfind('?'))
648
+ if last_period != -1:
649
+ message = message[:last_period + 1]
650
+ return message
651
+
652
+ # Функция для генерации сообщений GPT-4o
653
+ def generate_message_gpt4o(prompt, temperature=1):
654
+ try:
655
+ headers = {
656
+ "Content-Type": "application/json",
657
+ "Authorization": f"Bearer {openai_api_key}"
658
+ }
659
+ data = {
660
+ "model": "chatgpt-4o-latest",
661
+ "messages": [{"role": "system", "content": prompt}],
662
+ "max_tokens": 101,
663
+ "temperature": temperature # Передача температуры
664
+ }
665
+ response = requests.post("https://api.openai.com/v1/chat/completions", json=data, headers=headers)
666
+ response_data = response.json()
667
+ return clean_message(response_data["choices"][0]["message"]["content"].strip())
668
+ except Exception as e:
669
+ return f"Ошибка при обращении к ChatGPT-4o-Latest: {e}"
670
+
671
+
672
+ # Функции для генерации сообщений GigaChat с учетом обрезки
673
+ def generate_message_gigachat_pro(prompt, max_tokens, temperature):
674
+ try:
675
+ messages = [SystemMessage(content=prompt)]
676
+ chat_pro = authenticate_gigachat('GigaChat-Pro', max_tokens, temperature)
677
+ res = chat_pro(messages)
678
+ cleaned_message = clean_message(res.content.strip())
679
+ return cleaned_message
680
+ except Exception as e:
681
+ return f"Ошибка при обращении к GigaChat-Pro: {e}"
682
+
683
+ def generate_message_gigachat_lite(prompt, max_tokens, temperature):
684
+ try:
685
+ time.sleep(2)
686
+ messages = [SystemMessage(content=prompt)]
687
+ chat_lite = authenticate_gigachat('GigaChat', max_tokens, temperature)
688
+ res = chat_lite(messages)
689
+ cleaned_message = clean_message(res.content.strip())
690
+ return cleaned_message
691
+ except Exception as e:
692
+ return f"Ошибка при обращении к GigaChat-Lite: {e}"
693
+
694
+ def generate_message_gigachat_plus(prompt, max_tokens, temperature):
695
+ try:
696
+ time.sleep(2)
697
+ messages = [SystemMessage(content=prompt)]
698
+ chat_plus = authenticate_gigachat('GigaChat-Plus', max_tokens, temperature)
699
+ res = chat_plus(messages)
700
+ cleaned_message = clean_message(res.content.strip())
701
+ return cleaned_message
702
+ except Exception as e:
703
+ return f"Ошибка при обращении к GigaChat-Plus: {e}"
704
+
705
+ # Обновление промпта при изменении ОПФ
706
+ def update_prompt(text, opf):
707
+ return generate_personalization_prompt(text, opf)
708
+
709
+ # Функция для постепенной генерации результатов
710
+ def personalize_message(text, opf, prompt, gpt4o_max_tokens, gpt4o_temperature, gigachat_max_tokens, gigachat_temperature):
711
+ yield prompt, "", "", "", ""
712
+
713
+ result_gpt4o = generate_message_gpt4o(prompt, gpt4o_max_tokens, gpt4o_temperature)
714
+ yield prompt, result_gpt4o, "", "", ""
715
+
716
+ result_pro = generate_message_gigachat_pro(prompt, gigachat_max_tokens, gigachat_temperature)
717
+ yield prompt, result_gpt4o, result_pro, "", ""
718
+
719
+ time.sleep(2)
720
+
721
+ result_lite = generate_message_gigachat_lite(prompt, gigachat_max_tokens, gigachat_temperature)
722
+ yield prompt, result_gpt4o, result_pro, result_lite, ""
723
+
724
+ time.sleep(2)
725
+
726
+ result_plus = generate_message_gigachat_plus(prompt, gigachat_max_tokens, gigachat_temperature)
727
+ yield prompt, result_gpt4o, result_pro, result_lite, result_plus
728
+
729
+ # Создание интерфейса Gradio
730
+ with gr.Blocks() as demo:
731
+ gr.Markdown("# Персонализация под ОПФ")
732
+
733
+ # Добавление элементов управления температурой для каждой модели
734
+ gpt4o_temperature = gr.Slider(label="GPT-4o: temperature", minimum=0, maximum=2, step=0.01, value=1)
735
+ gigachat_pro_temperature = gr.Slider(label="GigaChat-Pro: temperature", minimum=0, maximum=1.7, step=0.01, value=0.87)
736
+ gigachat_lite_temperature = gr.Slider(label="GigaChat-Lite: temperature", minimum=0, maximum=1.7, step=0.01, value=0.87)
737
+ gigachat_plus_temperature = gr.Slider(label="GigaChat-Plus: temperature", minimum=0, maximum=1.7, step=0.01, value=0.87)
738
+
739
+ with gr.Row():
740
+ with gr.Column():
741
+ # Параметры для GPT-4o
742
+ gpt4o_max_tokens = gr.Slider(label="GPT-4o: max_tokens", minimum=0, maximum=10000, step=1, value=103)
743
+ gpt4o_temperature = gr.Slider(label="GPT-4o: temperature", minimum=0, maximum=2, step=0.01, value=1)
744
+
745
+ # Параметры для всех моделей GigaChat
746
+ gigachat_max_tokens = gr.Slider(label="GigaChat: max_tokens", minimum=0, maximum=10000, step=1, value=68)
747
+ gigachat_temperature = gr.Slider(label="GigaChat: temperature", minimum=0, maximum=1.7, step=0.01, value=0.87)
748
+
749
+ # Предзаполненное значение текста
750
+ text_input = gr.Textbox(
751
+ label="Введите ваш текст",
752
+ lines=5,
753
+ value="Перечислять зарплату вашим сотрудникам удобно с зарплатным проектом от Сбера! Любые виды выплат в едином договоре, зачисление происходит от 1 минуты, в любое время 24/7. Оставить заявку ->"
754
+ )
755
+
756
+ opf_input = gr.Dropdown(choices=["ООО", "ИП"], label="Выберите ОПФ")
757
+
758
+ # Окно для отображения и редактирования сгенерированного промпта
759
+ prompt_display = gr.Textbox(label="Сгенерированный промпт", lines=5, interactive=True)
760
+
761
+ # Обновляем промпт при изменении ОПФ или текста
762
+ opf_input.change(fn=update_prompt, inputs=[text_input, opf_input], outputs=prompt_display)
763
+ text_input.change(fn=update_prompt, inputs=[text_input, opf_input], outputs=prompt_display)
764
+
765
+ personalize_button = gr.Button("Персонализировать")
766
+
767
+ output_gpt4o = gr.Textbox(label="Результат GPT-4o", lines=3, interactive=False)
768
+ output_gigachat_pro = gr.Textbox(label="Результат GigaChat-Pro", lines=3, interactive=False)
769
+ output_gigachat_lite = gr.Textbox(label="Результат GigaChat-Lite", lines=3, interactive=False)
770
+ output_gigachat_plus = gr.Textbox(label="Результат GigaChat-Lite+", lines=3, interactive=False)
771
+
772
+ personalize_button.click(
773
+ personalize_message,
774
+ inputs=[text_input, opf_input, prompt_display, gpt4o_max_tokens, gpt4o_temperature, gigachat_max_tokens, gigachat_temperature],
775
+ outputs=[prompt_display, output_gpt4o, output_gigachat_pro, output_gigachat_lite, output_gigachat_plus]
776
+ )
777
+
778
  demo.launch()