Spaces:
Paused
Paused
Upload app.py
Browse files
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 |
-
|
| 966 |
-
|
| 967 |
-
# 添加重试和超时设置
|
| 968 |
session = requests.Session()
|
| 969 |
-
|
|
|
|
|
|
|
| 970 |
|
| 971 |
-
|
| 972 |
-
|
| 973 |
-
headers=headers,
|
| 974 |
-
json=payload,
|
| 975 |
-
stream=True,
|
| 976 |
-
proxies=proxies,
|
| 977 |
-
timeout=(5, 30) # (连接超时, 读取超时)
|
| 978 |
-
)
|
| 979 |
|
| 980 |
-
|
| 981 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 982 |
|
| 983 |
-
|
| 984 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 985 |
continue
|
| 986 |
|
| 987 |
-
|
| 988 |
-
|
| 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("所有现有账号都已尝试,开始注册新账号")
|