mirror of
https://github.com/lanqian528/chat2api.git
synced 2026-06-13 21:02:46 +08:00
v1.3.5 add test turnstile
This commit is contained in:
parent
c0165755e2
commit
37ccaf9fa3
2
.github/workflows/build_docker.yml
vendored
2
.github/workflows/build_docker.yml
vendored
@ -37,7 +37,7 @@ jobs:
|
||||
images: lanqian528/chat2api
|
||||
tags: |
|
||||
type=raw,value=latest,enable={{is_default_branch}}
|
||||
type=raw,value=v1.3.4
|
||||
type=raw,value=v1.3.5
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v5
|
||||
|
||||
@ -14,6 +14,7 @@ from chatgpt.authorization import get_req_token, verify_token
|
||||
from chatgpt.chatFormat import api_messages_to_chat, stream_response, wss_stream_response, format_not_stream_response
|
||||
from chatgpt.chatLimit import check_is_limit, handle_request_limit
|
||||
from chatgpt.proofofWork import get_config, get_dpl, get_answer_token, get_requirements_token
|
||||
from chatgpt.turnstile import process_turnstile
|
||||
from chatgpt.wssClient import token2wss, set_wss
|
||||
from utils.Client import Client
|
||||
from utils.Logger import logger
|
||||
@ -23,7 +24,7 @@ from utils.config import proxy_url_list, chatgpt_base_url_list, arkose_token_url
|
||||
|
||||
class ChatService:
|
||||
def __init__(self, origin_token=None):
|
||||
self.user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0"
|
||||
self.user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36"
|
||||
self.req_token = get_req_token(origin_token)
|
||||
self.chat_token = "gAAAAAB"
|
||||
self.s = None
|
||||
@ -78,6 +79,7 @@ class ChatService:
|
||||
self.persona = None
|
||||
self.arkose_token = None
|
||||
self.proof_token = None
|
||||
self.turnstile_token = None
|
||||
|
||||
self.chat_headers = None
|
||||
self.chat_request = None
|
||||
@ -151,7 +153,8 @@ class ChatService:
|
||||
headers = self.base_headers.copy()
|
||||
try:
|
||||
config = get_config(self.user_agent)
|
||||
data = {'p': get_requirements_token(config)}
|
||||
p = get_requirements_token(config)
|
||||
data = {'p': p}
|
||||
r = await self.s.post(url, headers=headers, json=data, timeout=5)
|
||||
if r.status_code == 200:
|
||||
resp = r.json()
|
||||
@ -182,11 +185,15 @@ class ChatService:
|
||||
"code": "model_not_found"
|
||||
})
|
||||
|
||||
# turnstile = resp.get('turnstile', {})
|
||||
# turnstile_required = turnstile.get('required')
|
||||
# if turnstile_required:
|
||||
# logger.info("Turnstile required: ignore")
|
||||
# raise HTTPException(status_code=403, detail="Turnstile required")
|
||||
turnstile = resp.get('turnstile', {})
|
||||
turnstile_required = turnstile.get('required')
|
||||
if turnstile_required:
|
||||
turnstile_dx = turnstile.get("dx")
|
||||
try:
|
||||
self.turnstile_token = process_turnstile(turnstile_dx, p)
|
||||
except Exception as e:
|
||||
logger.info(f"Turnstile ignored: {e}")
|
||||
# raise HTTPException(status_code=403, detail="Turnstile required")
|
||||
|
||||
arkose = resp.get('arkose', {})
|
||||
arkose_required = arkose.get('required')
|
||||
@ -259,10 +266,14 @@ class ChatService:
|
||||
if self.arkose_token:
|
||||
self.chat_headers['Openai-Sentinel-Arkose-Token'] = self.arkose_token
|
||||
|
||||
if self.turnstile_token:
|
||||
self.chat_headers['Openai-Sentinel-Turnstile-Token'] = self.turnstile_token
|
||||
|
||||
if conversation_only:
|
||||
self.chat_headers.pop('Openai-Sentinel-Chat-Requirements-Token', None)
|
||||
self.chat_headers.pop('Openai-Sentinel-Proof-Token', None)
|
||||
self.chat_headers.pop('Openai-Sentinel-Arkose-Token', None)
|
||||
self.chat_headers.pop('Openai-Sentinel-Turnstile-Token', None)
|
||||
|
||||
if "gpt-4-gizmo" in self.origin_model:
|
||||
gizmo_id = self.origin_model.split("gpt-4-gizmo-")[-1]
|
||||
|
||||
@ -492,5 +492,5 @@ if __name__ == "__main__":
|
||||
cached_scripts.append(
|
||||
"https://cdn.oaistatic.com/_next/static/cXh69klOLzS0Gy2joLDRS/_ssgManifest.js?dpl=453ebaec0d44c2decab71692e1bfe39be35a24b3")
|
||||
cached_dpl = "dpl=453ebaec0d44c2decab71692e1bfe39be35a24b3"
|
||||
config = get_config("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome")
|
||||
config = get_config("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36")
|
||||
get_requirements_token(config)
|
||||
|
||||
256
chatgpt/turnstile.py
Normal file
256
chatgpt/turnstile.py
Normal file
File diff suppressed because one or more lines are too long
@ -42,7 +42,7 @@ arkose_token_url_list = arkose_token_url.split(',') if arkose_token_url else []
|
||||
proxy_url_list = proxy_url.split(',') if proxy_url else []
|
||||
|
||||
logger.info("-" * 60)
|
||||
logger.info("Chat2Api v1.3.4 | https://github.com/lanqian528/chat2api")
|
||||
logger.info("Chat2Api v1.3.5 | https://github.com/lanqian528/chat2api")
|
||||
logger.info("-" * 60)
|
||||
logger.info("Environment variables:")
|
||||
logger.info("API_PREFIX: " + str(api_prefix))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user