XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/gpt4free

Improve reading .har file in OpenaiChat

1e2c1858
Heiner Lohaus <hlohaus@users.noreply.github.com>
提交于

代码差异

2 个文件 +22 -20
Modified g4f/Provider/needs_auth/OpenaiChat.py +7 -7
@@ -412,7 +412,7 @@ class OpenaiChat(AsyncGeneratorProvider, ProviderModelMixin):
412 412 if "proofofwork" in chat_requirements:
413 413 proofofwork = generate_proof_token(
414 414 **chat_requirements["proofofwork"],
415 user_agent=cls._headers["user-agent"],
415 user_agent=cls._headers.get("user-agent"),
416 416 proof_token=RequestConfig.proof_token
417 417 )
418 418 [debug.log(text) for text in (
@@ -439,15 +439,15 @@ class OpenaiChat(AsyncGeneratorProvider, ProviderModelMixin):
439 439 messages = messages if conversation_id is None else [messages[-1]]
440 440 data["messages"] = cls.create_messages(messages, image_request)
441 441 headers = {
442 "Accept": "text/event-stream",
443 "Content-Type": "application/json",
444 "Openai-Sentinel-Chat-Requirements-Token": chat_token,
445 **cls._headers
442 **cls._headers,
443 "accept": "text/event-stream",
444 "content-type": "application/json",
445 "openai-sentinel-chat-requirements-token": chat_token,
446 446 }
447 447 if RequestConfig.arkose_token:
448 headers["Openai-Sentinel-Arkose-Token"] = RequestConfig.arkose_token
448 headers["openai-sentinel-arkose-token"] = RequestConfig.arkose_token
449 449 if proofofwork is not None:
450 headers["Openai-Sentinel-Proof-Token"] = proofofwork
450 headers["openai-sentinel-proof-token"] = proofofwork
451 451 if need_turnstile and RequestConfig.turnstile_token is not None:
452 452 headers['openai-sentinel-turnstile-token'] = RequestConfig.turnstile_token
453 453 async with session.post(
Modified g4f/Provider/openai/har_file.py +15 -13
@@ -63,26 +63,28 @@ def readHAR():
63 63 continue
64 64 for v in harFile['log']['entries']:
65 65 v_headers = get_headers(v)
66 try:
67 if "openai-sentinel-proof-token" in v_headers:
68 RequestConfig.proof_token = json.loads(base64.b64decode(
69 v_headers["openai-sentinel-proof-token"].split("gAAAAAB", 1)[-1].encode()
70 ).decode())
71 if "openai-sentinel-turnstile-token" in v_headers:
72 RequestConfig.turnstile_token = v_headers["openai-sentinel-turnstile-token"]
73 except Exception as e:
74 debug.log(f"Read proof token: {e}")
75 66 if arkose_url == v['request']['url']:
76 67 RequestConfig.arkose_request = parseHAREntry(v)
77 elif v['request']['url'] == start_url or v['request']['url'].startswith(conversation_url):
68 elif v['request']['url'].startswith(start_url):
78 69 try:
79 70 match = re.search(r'"accessToken":"(.*?)"', v["response"]["content"]["text"])
80 71 if match:
81 72 RequestConfig.access_token = match.group(1)
82 73 except KeyError:
83 continue
84 RequestConfig.cookies = {c['name']: c['value'] for c in v['request']['cookies']}
85 RequestConfig.headers = v_headers
74 pass
75 try:
76 if "openai-sentinel-proof-token" in v_headers:
77 RequestConfig.headers = v_headers
78 RequestConfig.proof_token = json.loads(base64.b64decode(
79 v_headers["openai-sentinel-proof-token"].split("gAAAAAB", 1)[-1].encode()
80 ).decode())
81 if "openai-sentinel-turnstile-token" in v_headers:
82 RequestConfig.turnstile_token = v_headers["openai-sentinel-turnstile-token"]
83 if "authorization" in v_headers:
84 RequestConfig.access_token = v_headers["authorization"].split(" ")[1]
85 RequestConfig.cookies = {c['name']: c['value'] for c in v['request']['cookies']}
86 except Exception as e:
87 debug.log(f"Error on read headers: {e}")
86 88 if RequestConfig.proof_token is None:
87 89 raise NoValidHarFileError("No proof_token found in .har files")
88 90