Skip to content

Commit

Permalink
⚡ [Enhance] Use requests to replace httpx for cleaner headers
Browse files Browse the repository at this point in the history
  • Loading branch information
Hansimov committed Dec 10, 2023
1 parent dd0dbb2 commit f05e49d
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 15 deletions.
24 changes: 10 additions & 14 deletions conversations/conversation_creator.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import httpx
import json
import requests
from pprint import pprint
from utils.enver import enver
from networks import ConversationCreateHeadersConstructor
Expand All @@ -12,9 +11,7 @@ def __init__(self, cookies: dict = {}):
self.cookies = cookies

def construct_cookies(self):
self.httpx_cookies = httpx.Cookies()
for key, val in self.cookies.items():
self.httpx_cookies.set(key, val)
pass

def construct_headers(self):
# New Bing 封锁原理探讨 #78
Expand All @@ -25,28 +22,27 @@ def create(self):
self.construct_cookies()
self.construct_headers()
enver.set_envs(proxies=True)
self.response = httpx.get(
self.response = requests.get(
self.conversation_create_url,
headers=self.request_headers,
proxies=enver.proxy,
cookies=self.httpx_cookies,
proxies=enver.requests_proxies,
)
try:
self.response_content = json.loads(self.response.content.decode("utf-8"))
self.response_data = self.response.json()
except:
print(self.response.content)
print(self.response.text)
raise Exception(
f"x Failed to create conversation: {self.response.status_code}"
)
self.response_headers = dict(self.response.headers)
pprint(self.response_content)
self.response_headers = self.response.headers
pprint(self.response_data)

# These info would be used in ConversationConnector
self.sec_access_token = self.response_headers[
"x-sydney-encryptedconversationsignature"
]
self.client_id = self.response_content["clientId"]
self.conversation_id = self.response_content["conversationId"]
self.client_id = self.response_data["clientId"]
self.conversation_id = self.response_data["conversationId"]


if __name__ == "__main__":
Expand Down
4 changes: 3 additions & 1 deletion networks/conversation_create_headers_constructor.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,7 @@ def __init__(self):

def construct(self):
self.request_headers = {
"X-Forwarded-For": "65.49.22.66",
"Referer": "https://www.bing.com/search?q=Bing+AI&showconv=1&setlang=en&cc=us",
"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",
"X-Ms-Useragent": "azsdk-js-api-client-factory/1.0.0-beta.1 core-rest-pipeline/1.12.0 OS/Windows",
}
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ fastapi
httpx
openai
pydantic
requests
sse_starlette
termcolor
uvicorn
Expand Down
4 changes: 4 additions & 0 deletions utils/enver.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,10 @@ def set_envs(self, secrets=True, proxies=None, store_envs=True):
or self.envs.get("https_proxy")
or None
)
self.requests_proxies = {
"http": self.proxy,
"https": self.proxy,
}


enver = OSEnver()

0 comments on commit f05e49d

Please sign in to comment.