ChatGPT2API 不能用了,什么情况

github.com/basketikun/chatgpt2api

fix: update sentinel handshake for 2026-10 (#418)

main ← pansx:fix/sentinel-turnstile-2026-10

已打开 10:31AM - 15 Oct 26 UTC

pansx +1215 -269

## What this fixes Since 2026-10-14 chatgpt.com scores the sentinel handsha…ke for both text (`/backend-api/conversation`) and image (`/backend-api/f/conversation`) turns. When handshake quality is too low, the conversation endpoint returns a disguised `404 {"detail":"Model not found"}` rather than 403; a missing Turnstile still returns 403 `Unusual activity`. This makes valid accounts look unavailable and consumes retries. This PR ports the 2026-10 handshake fix: - FNV-1a/avalanche PoW with the current `~S` proof marker. - Resident Chromium sentinel solver service, with the page's own Turnstile module preferred and the ported VM as fallback. The solver is optional; when it is not configured, the main service fails closed with a clear error instead of sending an empty token. - Solver UA propagation, restricted `oai-sc` cookie cleanup, `chrome146` fingerprinting, and the Cloudflare-safe target header. - Current image `auto` payload shape, shared turn trace, and exact image 404 account cooldown. The cooldown is local and temporary; it does not clear quota, invalidate the account, or penalize proxy health. The solver VM is attributed in `sentinel_solver/README.md` to MEIZU16/chatgpt2api (MIT); the page-module approach is attributed to 239573049/WebImage (MIT). ## Validation Focused sentinel/image regression tests pass: ``` uv run python -m unittest test.test_sentinel_handshake test.test_image_stream_retry -v Ran 21 tests ... OK ``` `node --check sentinel_solver/vm.js`, Python compilation, and `git diff --check` also pass. The requested full `python -m unittest discover -s test` run cannot be fully green in this checkout: integration tests that call `localhost:8000` fail because no server is running, and the test discovery/import environment reports the repository's existing `test/utils.py` versus `utils` package collision (plus the pytest-only database test when run through unittest). No deployment was performed. ## Production smoke test Validated PR commit `56f01db` in an isolated temporary directory on the production pod, using the production SQLite account and proxy with the existing sentinel solver. Prompt: `A simple red apple on a white plate, clean studio photograph.` Result: **success in 28.4 s**, fully decoded **PNG, 1536×1024, 1,759,926 bytes**. This check completed after the PR was opened. No deployment or production service replacement was performed. ## Solver container startup The solver image does not bundle Chromium. Its entrypoint runs `playwright install --with-deps --no-shell chromium` when the container starts, then executes the HTTP service. Startup therefore needs network access and root permissions for system dependencies; mount `/ms-playwright` to retain the browser cache. `HTTP_PROXY`/`HTTPS_PROXY` configure installation downloads, while `SENTINEL_SOLVER_PROXY` configures browser egress.

添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论