v1.8.5-beta1

This commit is contained in:
lanqian528 2025-03-22 20:07:40 +08:00
parent c63d9308aa
commit d2f2fde0ac
7 changed files with 42 additions and 18 deletions

View File

@ -1,4 +1,5 @@
import asyncio
import hashlib
import json
import random
import uuid
@ -86,9 +87,12 @@ class ChatService:
self.host_url = random.choice(chatgpt_base_url_list) if chatgpt_base_url_list else "https://chatgpt.com"
self.ark0se_token_url = random.choice(ark0se_token_url_list) if ark0se_token_url_list else None
self.s = Client(proxy=self.proxy_url, impersonate=self.impersonate)
session_id = hashlib.md5(self.req_token.encode()).hexdigest()
proxy_url = self.proxy_url.replace("{}", session_id) if self.proxy_url else None
self.s = Client(proxy=proxy_url, impersonate=self.impersonate)
if sentinel_proxy_url_list:
self.ss = Client(proxy=random.choice(sentinel_proxy_url_list), impersonate=self.impersonate)
sentinel_proxy_url = (random.choice(sentinel_proxy_url_list)).replace("{}", session_id) if sentinel_proxy_url_list else None
self.ss = Client(proxy=sentinel_proxy_url, impersonate=self.impersonate)
else:
self.ss = self.s

View File

@ -1,3 +1,4 @@
import hashlib
import json
import random
import time
@ -34,7 +35,9 @@ async def chat_refresh(refresh_token):
"redirect_uri": "com.openai.chat://auth0.openai.com/ios/com.openai.chat/callback",
"refresh_token": refresh_token
}
client = Client(proxy=random.choice(proxy_url_list) if proxy_url_list else None)
session_id = hashlib.md5(refresh_token.encode()).hexdigest()
proxy_url = random.choice(proxy_url_list).replace("{}", session_id) if proxy_url_list else None
client = Client(proxy=proxy_url)
try:
r = await client.post("https://auth0.openai.com/oauth/token", json=data, timeout=15)
if r.status_code == 200:

View File

@ -1,3 +1,4 @@
import hashlib
import json
import random
import re
@ -295,9 +296,12 @@ if no_sentinel:
}
headers.update(fp)
headers.update({"authorization": f"Bearer {access_token}"})
session_id = hashlib.md5(req_token.encode()).hexdigest()
proxy_url = proxy_url.replace("{}", session_id) if proxy_url else None
client = Client(proxy=proxy_url, impersonate=impersonate)
if sentinel_proxy_url_list:
clients = Client(proxy=random.choice(sentinel_proxy_url_list), impersonate=impersonate)
sentinel_proxy_url = random.choice(sentinel_proxy_url_list).replace("{}", session_id) if sentinel_proxy_url_list else None
clients = Client(proxy=sentinel_proxy_url, impersonate=impersonate)
else:
clients = client
@ -390,9 +394,12 @@ if no_sentinel:
headers.update({"authorization": f"Bearer {access_token}"})
try:
session_id = hashlib.md5(req_token.encode()).hexdigest()
proxy_url = proxy_url.replace("{}", session_id) if proxy_url else None
client = Client(proxy=proxy_url, impersonate=impersonate)
if sentinel_proxy_url_list:
clients = Client(proxy=random.choice(sentinel_proxy_url_list), impersonate=impersonate)
sentinel_proxy_url = random.choice(sentinel_proxy_url_list).replace("{}", session_id) if sentinel_proxy_url_list else None
clients = Client(proxy=sentinel_proxy_url, impersonate=impersonate)
else:
clients = client

View File

@ -1,3 +1,4 @@
import hashlib
import json
import random
import time
@ -211,6 +212,8 @@ async def chatgpt_reverse_proxy(request: Request, path: str):
req_token = await get_real_req_token(cookie_token)
fp = get_fp(req_token).copy()
session_id = hashlib.md5(req_token.encode()).hexdigest()
proxy_url = fp.pop("proxy_url", None)
impersonate = fp.pop("impersonate", "safari15_3")
user_agent = fp.get("user-agent")
@ -248,9 +251,11 @@ async def chatgpt_reverse_proxy(request: Request, path: str):
data = json.dumps(req_json).encode("utf-8")
if sentinel_proxy_url_list and "backend-api/sentinel/chat-requirements" in path:
client = Client(proxy=random.choice(sentinel_proxy_url_list))
if "backend-api/sentinel/chat-requirements" in path and sentinel_proxy_url_list:
sentinel_proxy_url = random.choice(sentinel_proxy_url_list).replace("{}", session_id) if sentinel_proxy_url_list else None
client = Client(proxy=sentinel_proxy_url)
else:
proxy_url = proxy_url.replace("{}", session_id) if proxy_url else None
client = Client(proxy=proxy_url, impersonate=impersonate)
try:
background = BackgroundTask(client.close)

View File

@ -1,3 +1,4 @@
import hashlib
import json
import random
import time
@ -136,6 +137,8 @@ async def chatgpt_account_check(access_token):
headers.update(fp)
headers.update({"authorization": f"Bearer {access_token}"})
session_id = hashlib.md5(access_token.encode()).hexdigest()
proxy_url = random.choice(proxy_url_list).replace("{}", session_id) if proxy_url_list else None
client = Client(proxy=proxy_url, impersonate=impersonate)
r = await client.get(f"{host_url}/backend-api/models?history_and_training_disabled=false", headers=headers,
timeout=10)
@ -182,7 +185,9 @@ async def chatgpt_account_check(access_token):
async def chatgpt_refresh(refresh_token):
client = Client(proxy=random.choice(proxy_url_list) if proxy_url_list else None)
session_id = hashlib.md5(refresh_token.encode()).hexdigest()
proxy_url = random.choice(proxy_url_list).replace("{}", session_id) if proxy_url_list else None
client = Client(proxy=proxy_url)
try:
data = {
"client_id": "pdlLIX2Y72MIl2rhLhTE9VV9bN905kBh",

View File

@ -13,15 +13,15 @@ with open("templates/initialize.json", "r") as f:
@app.post("/v1/initialize")
async def initialize(request: Request):
# initialize_response = (await chatgpt_reverse_proxy(request, f"v1/initialize"))
# if not initialize_response:
# return Response(status_code=204)
# initialize_str = initialize_response.body.decode('utf-8')
# if not initialize_str:
# return Response(status_code=204)
# initialize_json = json.loads(initialize_str)
# set_value_for_key_dict(initialize_json, "ip", "8.8.8.8")
# set_value_for_key_dict(initialize_json, "country", "US")
initialize_response = (await chatgpt_reverse_proxy(request, f"v1/initialize"))
if not initialize_response:
return Response(status_code=204)
initialize_str = initialize_response.body.decode('utf-8')
if not initialize_str:
return Response(status_code=204)
initialize_json = json.loads(initialize_str)
set_value_for_key_dict(initialize_json, "ip", "8.8.8.8")
set_value_for_key_dict(initialize_json, "country", "US")
return Response(content=json.dumps(initialize_json, indent=4), media_type="application/json")

View File

@ -1 +1 @@
1.8.4
1.8.5-beta1