dan92 commited on
Commit
0261a69
·
verified ·
1 Parent(s): 76de461

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -13
app.py CHANGED
@@ -107,7 +107,7 @@ def create_custom_session():
107
  return session
108
 
109
  # 添加速率限制相关的常量
110
- AUTH_RETRY_DELAY = 60 # 认证重试延迟(秒)
111
  AUTH_BACKOFF_FACTOR = 2 # 退避因子
112
  AUTH_MAX_RETRIES = 3 # 最大重试次数
113
  AUTH_CHECK_INTERVAL = 300 # 健康检查间隔(秒)
@@ -322,27 +322,39 @@ class MultiAuthManager:
322
  if auth_manager.is_model_available(model) and auth_manager.ensure_valid_token():
323
  logger.info(f"Using last successful account for model {model}: {auth_manager._email}")
324
  return auth_manager
 
 
 
 
325
 
326
  # 如果该模型没有成功记录或上次的账号不可用,从头开始尝试所有账号
327
  tried_accounts = set()
328
-
329
- # 从当前位置开始尝试
330
- current = self.current_index
331
  while len(tried_accounts) < len(self.auth_managers):
332
  auth_manager = self.auth_managers[current]
333
 
334
  if auth_manager._email not in tried_accounts:
335
  tried_accounts.add(auth_manager._email)
 
336
 
337
- if auth_manager.is_model_available(model) and auth_manager.ensure_valid_token():
338
- # 更新该模型的成功账号记录
339
- self.model_usage[model] = current
340
- self.current_index = current
341
- logger.info(f"Found available account for model {model}: {auth_manager._email}")
342
- return auth_manager
 
 
 
 
 
343
 
344
  current = (current + 1) % len(self.auth_managers)
345
-
 
 
346
  # 如果是新的一天,重置所有状态
347
  if datetime.now().date() > self.last_success_date:
348
  logger.info("New day started, resetting all model status")
@@ -353,7 +365,7 @@ class MultiAuthManager:
353
  # 重新尝试第一个账号
354
  auth_manager = self.auth_managers[0]
355
  if auth_manager.ensure_valid_token():
356
- self.current_index = 0
357
  self.model_usage[model] = 0
358
  logger.info(f"Using first account after reset: {auth_manager._email}")
359
  return auth_manager
@@ -824,7 +836,7 @@ def make_request(payload, auth_manager, model_id):
824
  else:
825
  raise Exception("无法注册新账号")
826
 
827
- # 记录���尝试的账号
828
  tried_accounts = set()
829
 
830
  while len(tried_accounts) < len(multi_auth_manager.auth_managers):
 
107
  return session
108
 
109
  # 添加速率限制相关的常量
110
+ AUTH_RETRY_DELAY = 60 # 认证���试延迟(秒)
111
  AUTH_BACKOFF_FACTOR = 2 # 退避因子
112
  AUTH_MAX_RETRIES = 3 # 最大重试次数
113
  AUTH_CHECK_INTERVAL = 300 # 健康检查间隔(秒)
 
322
  if auth_manager.is_model_available(model) and auth_manager.ensure_valid_token():
323
  logger.info(f"Using last successful account for model {model}: {auth_manager._email}")
324
  return auth_manager
325
+ else:
326
+ logger.info(f"Last successful account {auth_manager._email} is no longer available for model {model}")
327
+ # 从模型使用记录中移除不可用的账号
328
+ del self.model_usage[model]
329
 
330
  # 如果该模型没有成功记录或上次的账号不可用,从头开始尝试所有账号
331
  tried_accounts = set()
332
+ start_index = self.current_index
333
+ current = start_index
334
+
335
  while len(tried_accounts) < len(self.auth_managers):
336
  auth_manager = self.auth_managers[current]
337
 
338
  if auth_manager._email not in tried_accounts:
339
  tried_accounts.add(auth_manager._email)
340
+ logger.info(f"Trying account {auth_manager._email} for model {model}")
341
 
342
+ if auth_manager.is_model_available(model):
343
+ if auth_manager.ensure_valid_token():
344
+ # 更新该模型的成功账号记录
345
+ self.model_usage[model] = current
346
+ self.current_index = (current + 1) % len(self.auth_managers) # 更新当前索引为下一个
347
+ logger.info(f"Found available account for model {model}: {auth_manager._email}")
348
+ return auth_manager
349
+ else:
350
+ logger.info(f"Token validation failed for account {auth_manager._email}")
351
+ else:
352
+ logger.info(f"Model {model} not available for account {auth_manager._email}")
353
 
354
  current = (current + 1) % len(self.auth_managers)
355
+ if current == start_index:
356
+ break
357
+
358
  # 如果是新的一天,重置所有状态
359
  if datetime.now().date() > self.last_success_date:
360
  logger.info("New day started, resetting all model status")
 
365
  # 重新尝试第一个账号
366
  auth_manager = self.auth_managers[0]
367
  if auth_manager.ensure_valid_token():
368
+ self.current_index = 1 # 设置为下一个账号
369
  self.model_usage[model] = 0
370
  logger.info(f"Using first account after reset: {auth_manager._email}")
371
  return auth_manager
 
836
  else:
837
  raise Exception("无法注册新账号")
838
 
839
+ # 记录尝试的账号
840
  tried_accounts = set()
841
 
842
  while len(tried_accounts) < len(multi_auth_manager.auth_managers):