Spaces:
Paused
Paused
:zap: [Enhance] Use requests to replace httpx for cleaner headers
Browse files
conversations/conversation_creator.py
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
-
import
|
2 |
-
import json
|
3 |
from pprint import pprint
|
4 |
from utils.enver import enver
|
5 |
from networks import ConversationCreateHeadersConstructor
|
@@ -12,9 +11,7 @@ class ConversationCreator:
|
|
12 |
self.cookies = cookies
|
13 |
|
14 |
def construct_cookies(self):
|
15 |
-
|
16 |
-
for key, val in self.cookies.items():
|
17 |
-
self.httpx_cookies.set(key, val)
|
18 |
|
19 |
def construct_headers(self):
|
20 |
# New Bing 封锁原理探讨 #78
|
@@ -25,28 +22,27 @@ class ConversationCreator:
|
|
25 |
self.construct_cookies()
|
26 |
self.construct_headers()
|
27 |
enver.set_envs(proxies=True)
|
28 |
-
self.response =
|
29 |
self.conversation_create_url,
|
30 |
headers=self.request_headers,
|
31 |
-
proxies=enver.
|
32 |
-
cookies=self.httpx_cookies,
|
33 |
)
|
34 |
try:
|
35 |
-
self.
|
36 |
except:
|
37 |
-
print(self.response.
|
38 |
raise Exception(
|
39 |
f"x Failed to create conversation: {self.response.status_code}"
|
40 |
)
|
41 |
-
self.response_headers =
|
42 |
-
pprint(self.
|
43 |
|
44 |
# These info would be used in ConversationConnector
|
45 |
self.sec_access_token = self.response_headers[
|
46 |
"x-sydney-encryptedconversationsignature"
|
47 |
]
|
48 |
-
self.client_id = self.
|
49 |
-
self.conversation_id = self.
|
50 |
|
51 |
|
52 |
if __name__ == "__main__":
|
|
|
1 |
+
import requests
|
|
|
2 |
from pprint import pprint
|
3 |
from utils.enver import enver
|
4 |
from networks import ConversationCreateHeadersConstructor
|
|
|
11 |
self.cookies = cookies
|
12 |
|
13 |
def construct_cookies(self):
|
14 |
+
pass
|
|
|
|
|
15 |
|
16 |
def construct_headers(self):
|
17 |
# New Bing 封锁原理探讨 #78
|
|
|
22 |
self.construct_cookies()
|
23 |
self.construct_headers()
|
24 |
enver.set_envs(proxies=True)
|
25 |
+
self.response = requests.get(
|
26 |
self.conversation_create_url,
|
27 |
headers=self.request_headers,
|
28 |
+
proxies=enver.requests_proxies,
|
|
|
29 |
)
|
30 |
try:
|
31 |
+
self.response_data = self.response.json()
|
32 |
except:
|
33 |
+
print(self.response.text)
|
34 |
raise Exception(
|
35 |
f"x Failed to create conversation: {self.response.status_code}"
|
36 |
)
|
37 |
+
self.response_headers = self.response.headers
|
38 |
+
pprint(self.response_data)
|
39 |
|
40 |
# These info would be used in ConversationConnector
|
41 |
self.sec_access_token = self.response_headers[
|
42 |
"x-sydney-encryptedconversationsignature"
|
43 |
]
|
44 |
+
self.client_id = self.response_data["clientId"]
|
45 |
+
self.conversation_id = self.response_data["conversationId"]
|
46 |
|
47 |
|
48 |
if __name__ == "__main__":
|
networks/conversation_create_headers_constructor.py
CHANGED
@@ -4,5 +4,7 @@ class ConversationCreateHeadersConstructor:
|
|
4 |
|
5 |
def construct(self):
|
6 |
self.request_headers = {
|
7 |
-
"
|
|
|
|
|
8 |
}
|
|
|
4 |
|
5 |
def construct(self):
|
6 |
self.request_headers = {
|
7 |
+
"Referer": "https://www.bing.com/search?q=Bing+AI&showconv=1&setlang=en&cc=us",
|
8 |
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
|
9 |
+
"X-Ms-Useragent": "azsdk-js-api-client-factory/1.0.0-beta.1 core-rest-pipeline/1.12.0 OS/Windows",
|
10 |
}
|
requirements.txt
CHANGED
@@ -3,6 +3,7 @@ fastapi
|
|
3 |
httpx
|
4 |
openai
|
5 |
pydantic
|
|
|
6 |
sse_starlette
|
7 |
termcolor
|
8 |
uvicorn
|
|
|
3 |
httpx
|
4 |
openai
|
5 |
pydantic
|
6 |
+
requests
|
7 |
sse_starlette
|
8 |
termcolor
|
9 |
uvicorn
|
utils/enver.py
CHANGED
@@ -50,6 +50,10 @@ class OSEnver:
|
|
50 |
or self.envs.get("https_proxy")
|
51 |
or None
|
52 |
)
|
|
|
|
|
|
|
|
|
53 |
|
54 |
|
55 |
enver = OSEnver()
|
|
|
50 |
or self.envs.get("https_proxy")
|
51 |
or None
|
52 |
)
|
53 |
+
self.requests_proxies = {
|
54 |
+
"http": self.proxy,
|
55 |
+
"https": self.proxy,
|
56 |
+
}
|
57 |
|
58 |
|
59 |
enver = OSEnver()
|