dan92 commited on
Commit
30b9adc
·
verified ·
1 Parent(s): 90b5495

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -38
app.py CHANGED
@@ -374,7 +374,8 @@ def get_notdiamond_headers(auth_manager):
374
  'accept-language': 'zh-CN,zh;q=0.9',
375
  'content-type': 'application/json',
376
  'user-agent': _USER_AGENT,
377
- 'authorization': f'Bearer {auth_manager.get_jwt_value()}'
 
378
  }
379
  headers_cache[cache_key] = headers
380
  return headers
@@ -953,56 +954,57 @@ def make_request(payload, auth_manager, model_id):
953
  logger.info(f"尝试使用账号 {auth_manager._email}")
954
 
955
  for attempt in range(max_retries):
956
- # 获取代理
957
- proxy_manager = get_proxy_manager()
958
- proxy = proxy_manager.get_proxy()
959
- proxies = {'https': proxy} if proxy else None
960
-
961
  try:
962
  url = get_notdiamond_url()
963
  headers = get_notdiamond_headers(auth_manager)
964
 
965
- logger.info(f"使用代理: {proxy}" if proxy else "不使用代理")
966
-
967
- # 添加重试和超时设置
968
  session = requests.Session()
969
- session.mount('https://', CustomHTTPAdapter(max_retries=3))
 
 
970
 
971
- response = session.post(
972
- url,
973
- headers=headers,
974
- json=payload,
975
- stream=True,
976
- proxies=proxies,
977
- timeout=(5, 30) # (连接超时, 读取超时)
978
- )
979
 
980
- if response.status_code == 200:
981
- return response
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
982
 
983
- if response.status_code == 429 and proxy: # 代理限流
984
- proxy_manager.mark_proxy_failed(proxy)
 
 
 
 
985
  continue
986
 
987
- if response.status_code == 401:
988
- logger.info(f"Token expired for account {auth_manager._email}, attempting refresh")
989
- if auth_manager.ensure_valid_token():
990
- continue
991
-
992
- if response.status_code == 403:
993
- logger.warning(f"Model {model_id} usage limit reached for account {auth_manager._email}")
994
- auth_manager.set_model_unavailable(model_id)
995
- break
996
-
997
- logger.error(f"Request failed with status {response.status_code}")
998
-
999
- except requests.exceptions.RequestException as e:
1000
- logger.error(f"Request attempt {attempt + 1} failed: {e}")
1001
- if proxy:
1002
- proxy_manager.mark_proxy_failed(proxy)
1003
  if attempt < max_retries - 1:
1004
  time.sleep(retry_delay)
1005
  continue
 
 
1006
 
1007
  if len(tried_accounts) == len(multi_auth_manager.auth_managers):
1008
  logger.info("所有现有账号都已尝试,开始注册新账号")
 
374
  'accept-language': 'zh-CN,zh;q=0.9',
375
  'content-type': 'application/json',
376
  'user-agent': _USER_AGENT,
377
+ 'authorization': f'Bearer {auth_manager.get_jwt_value()}',
378
+ 'Host': NOTDIAMOND_DOMAIN # 添加 Host 头
379
  }
380
  headers_cache[cache_key] = headers
381
  return headers
 
954
  logger.info(f"尝试使用账号 {auth_manager._email}")
955
 
956
  for attempt in range(max_retries):
 
 
 
 
 
957
  try:
958
  url = get_notdiamond_url()
959
  headers = get_notdiamond_headers(auth_manager)
960
 
961
+ # 创建新的会话
 
 
962
  session = requests.Session()
963
+ adapter = CustomHTTPAdapter(max_retries=3)
964
+ session.mount('https://', adapter)
965
+ session.mount('http://', adapter)
966
 
967
+ # 直接使用IP而不是域名
968
+ url = url.replace(NOTDIAMOND_DOMAIN, NOTDIAMOND_IP)
 
 
 
 
 
 
969
 
970
+ try:
971
+ response = session.post(
972
+ url,
973
+ headers=headers,
974
+ json=payload,
975
+ stream=True,
976
+ timeout=(5, 30), # (连接超时, 读取超时)
977
+ verify=False # 禁用SSL验证
978
+ )
979
+
980
+ if response.status_code == 200:
981
+ return response
982
+
983
+ if response.status_code == 401:
984
+ logger.info(f"Token expired for account {auth_manager._email}, attempting refresh")
985
+ if auth_manager.ensure_valid_token():
986
+ continue
987
+
988
+ if response.status_code == 403:
989
+ logger.warning(f"Model {model_id} usage limit reached for account {auth_manager._email}")
990
+ auth_manager.set_model_unavailable(model_id)
991
+ break
992
 
993
+ logger.error(f"Request failed with status {response.status_code}")
994
+
995
+ except requests.exceptions.RequestException as e:
996
+ logger.error(f"Request attempt {attempt + 1} failed: {e}")
997
+ if attempt < max_retries - 1:
998
+ time.sleep(retry_delay)
999
  continue
1000
 
1001
+ except Exception as e:
1002
+ logger.error(f"Unexpected error during request: {e}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1003
  if attempt < max_retries - 1:
1004
  time.sleep(retry_delay)
1005
  continue
1006
+ finally:
1007
+ session.close()
1008
 
1009
  if len(tried_accounts) == len(multi_auth_manager.auth_managers):
1010
  logger.info("所有现有账号都已尝试,开始注册新账号")