Skip to content

Commit d2f2fde

Browse files
committed
v1.8.5-beta1
1 parent c63d930 commit d2f2fde

File tree

7 files changed

+42
-18
lines changed

7 files changed

+42
-18
lines changed

chatgpt/ChatService.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import asyncio
2+
import hashlib
23
import json
34
import random
45
import uuid
@@ -86,9 +87,12 @@ async def set_dynamic_data(self, data):
8687
self.host_url = random.choice(chatgpt_base_url_list) if chatgpt_base_url_list else "https://chatgpt.com"
8788
self.ark0se_token_url = random.choice(ark0se_token_url_list) if ark0se_token_url_list else None
8889

89-
self.s = Client(proxy=self.proxy_url, impersonate=self.impersonate)
90+
session_id = hashlib.md5(self.req_token.encode()).hexdigest()
91+
proxy_url = self.proxy_url.replace("{}", session_id) if self.proxy_url else None
92+
self.s = Client(proxy=proxy_url, impersonate=self.impersonate)
9093
if sentinel_proxy_url_list:
91-
self.ss = Client(proxy=random.choice(sentinel_proxy_url_list), impersonate=self.impersonate)
94+
sentinel_proxy_url = (random.choice(sentinel_proxy_url_list)).replace("{}", session_id) if sentinel_proxy_url_list else None
95+
self.ss = Client(proxy=sentinel_proxy_url, impersonate=self.impersonate)
9296
else:
9397
self.ss = self.s
9498

chatgpt/refreshToken.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import hashlib
12
import json
23
import random
34
import time
@@ -34,7 +35,9 @@ async def chat_refresh(refresh_token):
3435
"redirect_uri": "com.openai.chat://auth0.openai.com/ios/com.openai.chat/callback",
3536
"refresh_token": refresh_token
3637
}
37-
client = Client(proxy=random.choice(proxy_url_list) if proxy_url_list else None)
38+
session_id = hashlib.md5(refresh_token.encode()).hexdigest()
39+
proxy_url = random.choice(proxy_url_list).replace("{}", session_id) if proxy_url_list else None
40+
client = Client(proxy=proxy_url)
3841
try:
3942
r = await client.post("https://auth0.openai.com/oauth/token", json=data, timeout=15)
4043
if r.status_code == 200:

gateway/backend.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import hashlib
12
import json
23
import random
34
import re
@@ -295,9 +296,12 @@ async def sentinel_chat_conversations(request: Request):
295296
}
296297
headers.update(fp)
297298
headers.update({"authorization": f"Bearer {access_token}"})
299+
session_id = hashlib.md5(req_token.encode()).hexdigest()
300+
proxy_url = proxy_url.replace("{}", session_id) if proxy_url else None
298301
client = Client(proxy=proxy_url, impersonate=impersonate)
299302
if sentinel_proxy_url_list:
300-
clients = Client(proxy=random.choice(sentinel_proxy_url_list), impersonate=impersonate)
303+
sentinel_proxy_url = random.choice(sentinel_proxy_url_list).replace("{}", session_id) if sentinel_proxy_url_list else None
304+
clients = Client(proxy=sentinel_proxy_url, impersonate=impersonate)
301305
else:
302306
clients = client
303307

@@ -390,9 +394,12 @@ async def chat_conversations(request: Request):
390394
headers.update({"authorization": f"Bearer {access_token}"})
391395

392396
try:
397+
session_id = hashlib.md5(req_token.encode()).hexdigest()
398+
proxy_url = proxy_url.replace("{}", session_id) if proxy_url else None
393399
client = Client(proxy=proxy_url, impersonate=impersonate)
394400
if sentinel_proxy_url_list:
395-
clients = Client(proxy=random.choice(sentinel_proxy_url_list), impersonate=impersonate)
401+
sentinel_proxy_url = random.choice(sentinel_proxy_url_list).replace("{}", session_id) if sentinel_proxy_url_list else None
402+
clients = Client(proxy=sentinel_proxy_url, impersonate=impersonate)
396403
else:
397404
clients = client
398405

gateway/reverseProxy.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import hashlib
12
import json
23
import random
34
import time
@@ -211,6 +212,8 @@ async def chatgpt_reverse_proxy(request: Request, path: str):
211212
req_token = await get_real_req_token(cookie_token)
212213
fp = get_fp(req_token).copy()
213214

215+
session_id = hashlib.md5(req_token.encode()).hexdigest()
216+
214217
proxy_url = fp.pop("proxy_url", None)
215218
impersonate = fp.pop("impersonate", "safari15_3")
216219
user_agent = fp.get("user-agent")
@@ -248,9 +251,11 @@ async def chatgpt_reverse_proxy(request: Request, path: str):
248251
data = json.dumps(req_json).encode("utf-8")
249252

250253

251-
if sentinel_proxy_url_list and "backend-api/sentinel/chat-requirements" in path:
252-
client = Client(proxy=random.choice(sentinel_proxy_url_list))
254+
if "backend-api/sentinel/chat-requirements" in path and sentinel_proxy_url_list:
255+
sentinel_proxy_url = random.choice(sentinel_proxy_url_list).replace("{}", session_id) if sentinel_proxy_url_list else None
256+
client = Client(proxy=sentinel_proxy_url)
253257
else:
258+
proxy_url = proxy_url.replace("{}", session_id) if proxy_url else None
254259
client = Client(proxy=proxy_url, impersonate=impersonate)
255260
try:
256261
background = BackgroundTask(client.close)

gateway/share.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import hashlib
12
import json
23
import random
34
import time
@@ -136,6 +137,8 @@ async def chatgpt_account_check(access_token):
136137
headers.update(fp)
137138
headers.update({"authorization": f"Bearer {access_token}"})
138139

140+
session_id = hashlib.md5(access_token.encode()).hexdigest()
141+
proxy_url = random.choice(proxy_url_list).replace("{}", session_id) if proxy_url_list else None
139142
client = Client(proxy=proxy_url, impersonate=impersonate)
140143
r = await client.get(f"{host_url}/backend-api/models?history_and_training_disabled=false", headers=headers,
141144
timeout=10)
@@ -182,7 +185,9 @@ async def chatgpt_account_check(access_token):
182185

183186

184187
async def chatgpt_refresh(refresh_token):
185-
client = Client(proxy=random.choice(proxy_url_list) if proxy_url_list else None)
188+
session_id = hashlib.md5(refresh_token.encode()).hexdigest()
189+
proxy_url = random.choice(proxy_url_list).replace("{}", session_id) if proxy_url_list else None
190+
client = Client(proxy=proxy_url)
186191
try:
187192
data = {
188193
"client_id": "pdlLIX2Y72MIl2rhLhTE9VV9bN905kBh",

gateway/v1.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@
1313

1414
@app.post("/v1/initialize")
1515
async def initialize(request: Request):
16-
# initialize_response = (await chatgpt_reverse_proxy(request, f"v1/initialize"))
17-
# if not initialize_response:
18-
# return Response(status_code=204)
19-
# initialize_str = initialize_response.body.decode('utf-8')
20-
# if not initialize_str:
21-
# return Response(status_code=204)
22-
# initialize_json = json.loads(initialize_str)
23-
# set_value_for_key_dict(initialize_json, "ip", "8.8.8.8")
24-
# set_value_for_key_dict(initialize_json, "country", "US")
16+
initialize_response = (await chatgpt_reverse_proxy(request, f"v1/initialize"))
17+
if not initialize_response:
18+
return Response(status_code=204)
19+
initialize_str = initialize_response.body.decode('utf-8')
20+
if not initialize_str:
21+
return Response(status_code=204)
22+
initialize_json = json.loads(initialize_str)
23+
set_value_for_key_dict(initialize_json, "ip", "8.8.8.8")
24+
set_value_for_key_dict(initialize_json, "country", "US")
2525
return Response(content=json.dumps(initialize_json, indent=4), media_type="application/json")
2626

2727

version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.8.4
1+
1.8.5-beta1

0 commit comments

Comments
 (0)