@@ -104,6 +104,8 @@ async def request_logger(self, request):
104104 "PROXY" : os .environ .get ("PROXY" ) or None
105105 },
106106 "SERVER" : {
107+ "COOKIE" : None ,
108+ "CF_CLEARANCE" :os .environ .get ("CF_CLEARANCE" ) or None ,
107109 "PORT" : int (os .environ .get ("PORT" , 5200 ))
108110 },
109111 "RETRY" : {
@@ -443,6 +445,7 @@ def get_proxy_options():
443445
444446 if proxy :
445447 logger .info (f"使用代理: { proxy } " , "Server" )
448+
446449 if proxy .startswith ("socks5://" ):
447450 proxy_options ["proxy" ] = proxy
448451
@@ -510,7 +513,7 @@ def upload_base64_image(self, base64_data, url):
510513 url ,
511514 headers = {
512515 ** DEFAULT_HEADERS ,
513- "Cookie" : CONFIG ["API " ]["SIGNATURE_COOKIE" ]
516+ "Cookie" :CONFIG ["SERVER " ]['COOKIE' ]
514517 },
515518 json = upload_data ,
516519 impersonate = "chrome133a" ,
@@ -724,7 +727,7 @@ def handle_image_response(image_url):
724727 f"https://assets.grok.com/{ image_url } " ,
725728 headers = {
726729 ** DEFAULT_HEADERS ,
727- "Cookie" : CONFIG ["API " ]["SIGNATURE_COOKIE" ]
730+ "Cookie" :CONFIG ["SERVER " ]['COOKIE' ]
728731 },
729732 impersonate = "chrome120" ,
730733 ** proxy_options
@@ -974,6 +977,7 @@ def get_models():
974977
975978@app .route ('/v1/chat/completions' , methods = ['POST' ])
976979def chat_completions ():
980+ response_status_code = 500
977981 try :
978982 auth_token = request .headers .get ('Authorization' ,
979983 '' ).replace ('Bearer ' , '' )
@@ -993,35 +997,36 @@ def chat_completions():
993997 retry_count = 0
994998 grok_client = GrokApiClient (model )
995999 request_payload = grok_client .prepare_chat_request (data )
996- response_status_code = 500
1000+
9971001
9981002 while retry_count < CONFIG ["RETRY" ]["MAX_ATTEMPTS" ]:
9991003 retry_count += 1
1000- CONFIG ["API" ]["SIGNATURE_COOKIE" ] = Utils .create_auth_headers (
1001- model )
1004+ CONFIG ["API" ]["SIGNATURE_COOKIE" ] = Utils .create_auth_headers (model )
10021005
10031006 if not CONFIG ["API" ]["SIGNATURE_COOKIE" ]:
10041007 raise ValueError ('该模型无可用令牌' )
10051008
10061009 logger .info (
1007- f"当前令牌: { json .dumps (CONFIG ['API' ]['SIGNATURE_COOKIE' ], indent = 2 )} " ,
1008- "Server" )
1010+ f"当前令牌: { json .dumps (CONFIG ['API' ]['SIGNATURE_COOKIE' ], indent = 2 )} " ,"Server" )
10091011 logger .info (
1010- f"当前可用模型的全部可用数量: { json .dumps (token_manager .get_remaining_token_request_capacity (), indent = 2 )} " ,
1011- "Server" )
1012-
1012+ f"当前可用模型的全部可用数量: { json .dumps (token_manager .get_remaining_token_request_capacity (), indent = 2 )} " ,"Server" )
1013+ if CONFIG ['SERVER' ]['CF_CLEARANCE' ]:
1014+ CONFIG ["SERVER" ]['COOKIE' ] = f"{ CONFIG ['API' ]['SIGNATURE_COOKIE' ]} ;{ CONFIG ['SERVER' ]['CF_CLEARANCE' ]} "
1015+ else :
1016+ CONFIG ["SERVER" ]['COOKIE' ] = CONFIG ['API' ]['SIGNATURE_COOKIE' ]
10131017 try :
10141018 proxy_options = Utils .get_proxy_options ()
10151019 response = curl_requests .post (
10161020 f"{ CONFIG ['API' ]['BASE_URL' ]} /rest/app-chat/conversations/new" ,
10171021 headers = {
1018- ** DEFAULT_HEADERS , "Cookie" :
1019- CONFIG ["API " ]["SIGNATURE_COOKIE" ]
1022+ ** DEFAULT_HEADERS ,
1023+ "Cookie" : CONFIG ["SERVER " ]['COOKIE' ]
10201024 },
10211025 data = json .dumps (request_payload ),
10221026 impersonate = "chrome133a" ,
10231027 stream = True ,
10241028 ** proxy_options )
1029+ print (CONFIG ["SERVER" ]['COOKIE' ])
10251030 if response .status_code == 200 :
10261031 response_status_code = 200
10271032 logger .info ("请求成功" , "Server" )
@@ -1055,7 +1060,7 @@ def chat_completions():
10551060 token_manager .reduce_token_request_count (model ,1 )#重置去除当前因为错误未成功请求的次数,确保不会因为错误未成功请求的次数导致次数上限
10561061 if token_manager .get_token_count_for_model (model ) == 0 :
10571062 raise ValueError (f"{ model } 次数已达上限,请切换其他模型或者重新对话" )
1058- raise ValueError (f"IP暂时被封黑无法破盾 ,请稍后重试或者更换ip" )
1063+ raise ValueError (f"IP暂时被封无法破盾 ,请稍后重试或者更换ip" )
10591064 elif response .status_code == 429 :
10601065 response_status_code = 429
10611066 token_manager .reduce_token_request_count (model ,1 )
@@ -1085,7 +1090,7 @@ def chat_completions():
10851090 raise
10861091 continue
10871092 if response_status_code == 403 :
1088- raise ValueError ('IP暂时被封黑无法破盾 ,请稍后重试或者更换ip' )
1093+ raise ValueError ('IP暂时被封无法破盾 ,请稍后重试或者更换ip' )
10891094 elif response_status_code == 500 :
10901095 raise ValueError ('当前模型所有令牌暂无可用,请稍后重试' )
10911096
0 commit comments