dan92 commited on
Commit
1d472bb
·
verified ·
1 Parent(s): e2562c8

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -5
app.py CHANGED
@@ -789,6 +789,7 @@ def make_request(payload, auth_manager, model_id):
789
  global multi_auth_manager
790
  max_retries = 3
791
  retry_delay = 1
 
792
 
793
  logger.info(f"尝试发送请求,模型:{model_id}")
794
 
@@ -809,7 +810,8 @@ def make_request(payload, auth_manager, model_id):
809
  tried_accounts = set()
810
 
811
  while len(tried_accounts) < len(multi_auth_manager.auth_managers):
812
- auth_manager = multi_auth_manager.get_next_auth_manager(model_id)
 
813
  if not auth_manager:
814
  break
815
 
@@ -824,19 +826,22 @@ def make_request(payload, auth_manager, model_id):
824
  try:
825
  url = get_notdiamond_url()
826
  headers = get_notdiamond_headers(auth_manager)
 
 
827
  response = executor.submit(
828
  requests.post,
829
  url,
830
  headers=headers,
831
  json=payload,
832
- stream=True
833
- ).result()
 
834
 
835
  if response.status_code == 200 and response.headers.get('Content-Type') == 'text/event-stream':
836
  logger.info(f"请求成功,使用账号 {auth_manager._email}")
837
- # 更新最后成功使用的账号索引
838
  current_index = multi_auth_manager.auth_managers.index(auth_manager)
839
- multi_auth_manager.update_last_successful(current_index)
 
840
  return response
841
 
842
  headers_cache.clear()
@@ -853,6 +858,9 @@ def make_request(payload, auth_manager, model_id):
853
 
854
  logger.error(f"Request failed with status {response.status_code} for account {auth_manager._email}")
855
 
 
 
 
856
  except Exception as e:
857
  logger.error(f"Request attempt {attempt + 1} failed for account {auth_manager._email}: {e}")
858
  if attempt < max_retries - 1:
 
789
  global multi_auth_manager
790
  max_retries = 3
791
  retry_delay = 1
792
+ request_timeout = 30 # 设置请求超时时间
793
 
794
  logger.info(f"尝试发送请求,模型:{model_id}")
795
 
 
810
  tried_accounts = set()
811
 
812
  while len(tried_accounts) < len(multi_auth_manager.auth_managers):
813
+ # 使用 ensure_valid_token 替代 get_next_auth_manager
814
+ auth_manager = multi_auth_manager.ensure_valid_token(model_id)
815
  if not auth_manager:
816
  break
817
 
 
826
  try:
827
  url = get_notdiamond_url()
828
  headers = get_notdiamond_headers(auth_manager)
829
+
830
+ # 使用超时参数
831
  response = executor.submit(
832
  requests.post,
833
  url,
834
  headers=headers,
835
  json=payload,
836
+ stream=True,
837
+ timeout=request_timeout
838
+ ).result(timeout=request_timeout)
839
 
840
  if response.status_code == 200 and response.headers.get('Content-Type') == 'text/event-stream':
841
  logger.info(f"请求成功,使用账号 {auth_manager._email}")
 
842
  current_index = multi_auth_manager.auth_managers.index(auth_manager)
843
+ multi_auth_manager.last_successful_index = current_index # 直接更新索引
844
+ multi_auth_manager.last_success_date = datetime.now().date() # 更新日期
845
  return response
846
 
847
  headers_cache.clear()
 
858
 
859
  logger.error(f"Request failed with status {response.status_code} for account {auth_manager._email}")
860
 
861
+ except (requests.Timeout, concurrent.futures.TimeoutError) as e:
862
+ logger.error(f"Request timeout for account {auth_manager._email}: {e}")
863
+ break
864
  except Exception as e:
865
  logger.error(f"Request attempt {attempt + 1} failed for account {auth_manager._email}: {e}")
866
  if attempt < max_retries - 1: