yxmiler commited on
Commit
6178388
·
verified ·
1 Parent(s): a559500

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -13
app.py CHANGED
@@ -104,6 +104,8 @@ CONFIG = {
104
  "PROXY": os.environ.get("PROXY") or None
105
  },
106
  "SERVER": {
 
 
107
  "PORT": int(os.environ.get("PORT", 5200))
108
  },
109
  "RETRY": {
@@ -443,6 +445,7 @@ class Utils:
443
 
444
  if proxy:
445
  logger.info(f"使用代理: {proxy}", "Server")
 
446
  if proxy.startswith("socks5://"):
447
  proxy_options["proxy"] = proxy
448
 
@@ -510,7 +513,7 @@ class GrokApiClient:
510
  url,
511
  headers={
512
  **DEFAULT_HEADERS,
513
- "Cookie": CONFIG["API"]["SIGNATURE_COOKIE"]
514
  },
515
  json=upload_data,
516
  impersonate="chrome133a",
@@ -724,7 +727,7 @@ def handle_image_response(image_url):
724
  f"https://assets.grok.com/{image_url}",
725
  headers={
726
  **DEFAULT_HEADERS,
727
- "Cookie": CONFIG["API"]["SIGNATURE_COOKIE"]
728
  },
729
  impersonate="chrome120",
730
  **proxy_options
@@ -974,6 +977,7 @@ def get_models():
974
 
975
  @app.route('/v1/chat/completions', methods=['POST'])
976
  def chat_completions():
 
977
  try:
978
  auth_token = request.headers.get('Authorization',
979
  '').replace('Bearer ', '')
@@ -993,35 +997,36 @@ def chat_completions():
993
  retry_count = 0
994
  grok_client = GrokApiClient(model)
995
  request_payload = grok_client.prepare_chat_request(data)
996
- response_status_code = 500
997
 
998
  while retry_count < CONFIG["RETRY"]["MAX_ATTEMPTS"]:
999
  retry_count += 1
1000
- CONFIG["API"]["SIGNATURE_COOKIE"] = Utils.create_auth_headers(
1001
- model)
1002
 
1003
  if not CONFIG["API"]["SIGNATURE_COOKIE"]:
1004
  raise ValueError('该模型无可用令牌')
1005
 
1006
  logger.info(
1007
- f"当前令牌: {json.dumps(CONFIG['API']['SIGNATURE_COOKIE'], indent=2)}",
1008
- "Server")
1009
  logger.info(
1010
- f"当前可用模型的全部可用数量: {json.dumps(token_manager.get_remaining_token_request_capacity(), indent=2)}",
1011
- "Server")
1012
-
 
 
1013
  try:
1014
  proxy_options = Utils.get_proxy_options()
1015
  response = curl_requests.post(
1016
  f"{CONFIG['API']['BASE_URL']}/rest/app-chat/conversations/new",
1017
  headers={
1018
  **DEFAULT_HEADERS,
1019
- "Cookie":f"{CONFIG['API']['SIGNATURE_COOKIE']}; cf_clearance=ndxDqSPPQQQicT0vsP6JSSudjOUBQ_G7fufmUuOnsm4-1741270561-1.2.1.1-dlueDEYSJbFuyAUcbUdn0xFpXSXqRppz8euI.sQhX0ZQyKgjLQBm2kL32e6.FpA8pgcPyLxfXYYkHJg_.5iS4C3T7lwDJDNjE7AIEAXOYxyhas6jvb71l7FBPpnDnCF97kVPxlAOLMHMUZegxCm7Ln8EGftiMb9qCDSVxyqO14eEVQyRJK6ziLnEdg3Vk9_aAaf6E3Dbk6nM7X1eRa2SBGehoLy8FNR7Jw.Uz2TA1VxRIPoR8tyvcl19PxEtPwr9snvquFuGLUfF8QxrOU.bi2JdSOYVD9P28oaL4xy_OgN9EL.CY2R4TARzlcho7vJUA4HHRcWVDB0X3OM96ZRCvocqXqf7_r3GZFzypNTphkLK3TvNC6NGH2HbDMlJ_BHhlBFL2Hy3ap5h4rGXfpmRnfo01XDoQCGq9enjYw6QQujNzNc.2KN7u5oNyUyUdRp9rHPhGDY.BNcFOKV33bFG2sMwmNarEEUQ2Z5hx3nIkfI;"
1020
  },
1021
  data=json.dumps(request_payload),
1022
  impersonate="chrome133a",
1023
  stream=True,
1024
  **proxy_options)
 
1025
  if response.status_code == 200:
1026
  response_status_code = 200
1027
  logger.info("请求成功", "Server")
@@ -1055,7 +1060,7 @@ def chat_completions():
1055
  token_manager.reduce_token_request_count(model,1)#重置去除当前因为错误未成功请求的次数,确保不会因为错误未成功请求的次数导致次数上限
1056
  if token_manager.get_token_count_for_model(model) == 0:
1057
  raise ValueError(f"{model} 次数已达上限,请切换其他模型或者重新对话")
1058
- raise ValueError(f"IP暂时被封黑无法破盾,请稍后重试或者更换ip")
1059
  elif response.status_code == 429:
1060
  response_status_code = 429
1061
  token_manager.reduce_token_request_count(model,1)
@@ -1085,7 +1090,7 @@ def chat_completions():
1085
  raise
1086
  continue
1087
  if response_status_code == 403:
1088
- raise ValueError('IP暂时被封黑无法破盾,请稍后重试或者更换ip')
1089
  elif response_status_code == 500:
1090
  raise ValueError('当前模型所有令牌暂无可用,请稍后重试')
1091
 
 
104
  "PROXY": os.environ.get("PROXY") or None
105
  },
106
  "SERVER": {
107
+ "COOKIE": None,
108
+ "CF_CLEARANCE":os.environ.get("CF_CLEARANCE") or None,
109
  "PORT": int(os.environ.get("PORT", 5200))
110
  },
111
  "RETRY": {
 
445
 
446
  if proxy:
447
  logger.info(f"使用代理: {proxy}", "Server")
448
+
449
  if proxy.startswith("socks5://"):
450
  proxy_options["proxy"] = proxy
451
 
 
513
  url,
514
  headers={
515
  **DEFAULT_HEADERS,
516
+ "Cookie":CONFIG["SERVER"]['COOKIE']
517
  },
518
  json=upload_data,
519
  impersonate="chrome133a",
 
727
  f"https://assets.grok.com/{image_url}",
728
  headers={
729
  **DEFAULT_HEADERS,
730
+ "Cookie":CONFIG["SERVER"]['COOKIE']
731
  },
732
  impersonate="chrome120",
733
  **proxy_options
 
977
 
978
  @app.route('/v1/chat/completions', methods=['POST'])
979
  def chat_completions():
980
+ response_status_code = 500
981
  try:
982
  auth_token = request.headers.get('Authorization',
983
  '').replace('Bearer ', '')
 
997
  retry_count = 0
998
  grok_client = GrokApiClient(model)
999
  request_payload = grok_client.prepare_chat_request(data)
1000
+
1001
 
1002
  while retry_count < CONFIG["RETRY"]["MAX_ATTEMPTS"]:
1003
  retry_count += 1
1004
+ CONFIG["API"]["SIGNATURE_COOKIE"] = Utils.create_auth_headers(model)
 
1005
 
1006
  if not CONFIG["API"]["SIGNATURE_COOKIE"]:
1007
  raise ValueError('该模型无可用令牌')
1008
 
1009
  logger.info(
1010
+ f"当前令牌: {json.dumps(CONFIG['API']['SIGNATURE_COOKIE'], indent=2)}","Server")
 
1011
  logger.info(
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']};cf_clearance={CONFIG['SERVER']['CF_CLEARANCE']}"
1015
+ else:
1016
+ CONFIG["SERVER"]['COOKIE'] = CONFIG['API']['SIGNATURE_COOKIE']
1017
  try:
1018
  proxy_options = Utils.get_proxy_options()
1019
  response = curl_requests.post(
1020
  f"{CONFIG['API']['BASE_URL']}/rest/app-chat/conversations/new",
1021
  headers={
1022
  **DEFAULT_HEADERS,
1023
+ "Cookie":CONFIG["SERVER"]['COOKIE']
1024
  },
1025
  data=json.dumps(request_payload),
1026
  impersonate="chrome133a",
1027
  stream=True,
1028
  **proxy_options)
1029
+ print(CONFIG["SERVER"]['COOKIE'])
1030
  if response.status_code == 200:
1031
  response_status_code = 200
1032
  logger.info("请求成功", "Server")
 
1060
  token_manager.reduce_token_request_count(model,1)#重置去除当前因为错误未成功请求的次数,确保不会因为错误未成功请求的次数导致次数上限
1061
  if token_manager.get_token_count_for_model(model) == 0:
1062
  raise ValueError(f"{model} 次数已达上限,请切换其他模型或者重新对话")
1063
+ raise ValueError(f"IP暂时被封无法破盾,请稍后重试或者更换ip")
1064
  elif response.status_code == 429:
1065
  response_status_code = 429
1066
  token_manager.reduce_token_request_count(model,1)
 
1090
  raise
1091
  continue
1092
  if response_status_code == 403:
1093
+ raise ValueError('IP暂时被封无法破盾,请稍后重试或者更换ip')
1094
  elif response_status_code == 500:
1095
  raise ValueError('当前模型所有令牌暂无可用,请稍后重试')
1096