fruitpicker01 commited on
Commit
57f547a
1 Parent(s): 0e76abd

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -10
app.py CHANGED
@@ -191,14 +191,17 @@ def generate_message_mistral_generate(prompt, max_retries=5):
191
  cleaned_message = clean_message(chat_response.choices[0].message.content.strip())
192
  return cleaned_message
193
  except Exception as e:
194
- if "Status 429" in str(e):
195
- wait_time = 3 # Можно установить фиксированную задержку
196
- print(f"Превышен лимит запросов. Ожидание {wait_time} секунд перед повторной попыткой...")
197
- time.sleep(wait_time)
198
- retries += 1
199
- else:
200
- print(f"Ошибка при обращении к Mistral: {e}")
201
- return None
 
 
 
202
 
203
  def generate_message_mistral_check(prompt, max_retries=5):
204
  retries = 0
@@ -237,7 +240,8 @@ def generate_message_mistral_check(prompt, max_retries=5):
237
 
238
  # Функция для замены сокращений с 'k' или 'К' на тысячи
239
  def replace_k_with_thousands(message):
240
- # Замена и для 'k' и для 'К', с учётом регистра
 
241
  message = re.sub(r'(\d+)[kкКK]', r'\1 000', message, flags=re.IGNORECASE)
242
  return message
243
 
@@ -512,6 +516,10 @@ def generate_message_mistral_with_retry(prompt, current_prefix, description, key
512
  for attempt in range(20):
513
  gr.Info(f"Итерация {attempt + 1}: генерируется сообщение...")
514
  message = generate_message_mistral_generate(prompt)
 
 
 
 
515
  message = replace_k_with_thousands(message)
516
  message = correct_dash_usage(message)
517
  message_length = len(message)
@@ -526,7 +534,7 @@ def generate_message_mistral_with_retry(prompt, current_prefix, description, key
526
  if passed is False:
527
  approach_stats[current_prefix]["failed_checks"][check_name] += 1
528
  break
529
- notify_failed_checks(checks) # Вызываем функцию независимо от результата проверок
530
  if all(checks.values()):
531
  return message
532
  prompt = append_errors_to_prompt(prompt, checks)
 
191
  cleaned_message = clean_message(chat_response.choices[0].message.content.strip())
192
  return cleaned_message
193
  except Exception as e:
194
+ error_message = str(e)
195
+ if "Status 429" in error_message or "Server disconnected without sending a response" in error_message:
196
+ wait_time = 3
197
+ print(f"Превышен лимит запросов или сервер не ответил. Ожидание {wait_time} секунд перед повторной попыткой...")
198
+ time.sleep(wait_time)
199
+ retries += 1
200
+ else:
201
+ print(f"Ошибка при обращении к Mistral: {e}")
202
+ return None
203
+ print("Не удалось получить ответ от Mistral после максимального числа попыток.")
204
+ return None
205
 
206
  def generate_message_mistral_check(prompt, max_retries=5):
207
  retries = 0
 
240
 
241
  # Функция для замены сокращений с 'k' или 'К' на тысячи
242
  def replace_k_with_thousands(message):
243
+ if not isinstance(message, str):
244
+ return message # or you can return an empty string
245
  message = re.sub(r'(\d+)[kкКK]', r'\1 000', message, flags=re.IGNORECASE)
246
  return message
247
 
 
516
  for attempt in range(20):
517
  gr.Info(f"Итерация {attempt + 1}: генерируется сообщение...")
518
  message = generate_message_mistral_generate(prompt)
519
+ if message is None:
520
+ print("Не удалось получить сообщение от Mistral, повторная попытка...")
521
+ time.sleep(1)
522
+ continue # Retry
523
  message = replace_k_with_thousands(message)
524
  message = correct_dash_usage(message)
525
  message_length = len(message)
 
534
  if passed is False:
535
  approach_stats[current_prefix]["failed_checks"][check_name] += 1
536
  break
537
+ notify_failed_checks(checks)
538
  if all(checks.values()):
539
  return message
540
  prompt = append_errors_to_prompt(prompt, checks)