- tcaptcha/web/:FastAPI + SSE + 零构建单页。把同步阻塞的 solve() 包成可观测 后台任务(工作线程 + 全局串行,因 onnxruntime session 非线程安全),用 logging.Handler 零侵入把 client 日志变成事件流;按靶子实测 min_interval 强制节流。 - tcaptcha/render.py:标注图(点击顺序编号 + 质心偏差)与点位量尺,CLI 与 web 共用。 - tcaptcha/targets.py:靶子表提为单一来源(含实测频控间隔 1ms=60s / mliev=3s)。 - fastapi/uvicorn 走 optional extra `web`,核心包零 web 依赖(带回归断言)。 - 修两个真 bug:hook 求解器时 args[0] 是实例自身(真入参从 args[1] 起); client 默认每次新建 solver,预热实例未被复用(每发重载 56MB ONNX)。 - 复验:icon/text/slider 三题型各拿到 errorCode=0;selftest 全绿;依赖隔离通过。 用法:uv run --extra web python -m tcaptcha.web.app
27 lines
1.0 KiB
TOML
27 lines
1.0 KiB
TOML
[project]
|
|
name = "hello-js-reverse-skill"
|
|
version = "0.2.0"
|
|
description = "腾讯验证码(TDC)纯算还原 + 文字点选/图标点选/滑块求解"
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
"curl-cffi>=0.16.3", # protocol.transport 的传输指纹实现(可选路径)
|
|
"ddddocr>=1.6.1", # ocr.engines 集成识别
|
|
"httpx>=0.28.1", # protocol.client 默认传输
|
|
"numpy>=2.5.3",
|
|
"onnxruntime>=1.20.0", # solvers.icon_click 的 YOLO/ResNet18 推理
|
|
"opencv-python-headless>=5.0.0.93",
|
|
"pillow>=12.3.0",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
web = [
|
|
"fastapi>=0.143.0",
|
|
"uvicorn>=0.54.0",
|
|
]
|
|
|
|
# 说明:
|
|
# * 训练/标注用的 ultralytics + torch 已随 train_*/prepare_yolo/web_labeler 一并移除
|
|
# —— 线上只跑 onnxruntime,不需要 PyTorch 栈。
|
|
# * 唯一的外部运行时依赖是 **浏览器**(仅在做同会话标定时用):
|
|
# tools/cdp_*.js 通过 Chrome 的 --remote-debugging-port 工作,不参与出包。
|