Spaces:
Paused
Paused
Upload app.py
Browse files
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 |
-
|
|
|
|
| 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 |
-
|
|
|
|
| 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.
|
|
|
|
| 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:
|