docs: README 补全求解器风格、预热环境变量与架构清单
- Turnstile 说明补充 api_style = "ezsolver"(本地求解服务、直连旁路) - 环境变量表补充 TURNSTILE_TIMEOUT_SECONDS 与 TURNSTILE_WARM_* - 架构清单补充 internal/logfile / internal/quota,turnstile 行标注后台预热 - [sites.*] / [turnstile] 行与管理台 Turnstile 行同步补全
This commit is contained in:
1 parent
69743d53bd
commit
63f228d2c7
1 file changed
+11
-4
@@ -143,8 +143,8 @@ dsfree2api -config config.toml -check
|
||||
| `[proxypool]` | 代理池总开关、健康检查间隔 / 超时 / URL、裸 `ip:port` 默认协议、Xray 路径 / 版本 / 自动下载;`[proxypool.entries.*]` 手动节点(分享链接或端点)、`[proxypool.subscriptions.*]` 订阅自动拉取 |
|
||||
| `[quota]` | 配额哨兵:`enabled` / `check_seconds` / `warn_ratio`,定期用池内会话读取站点免费额度,低额告警与重置留档 |
|
||||
| `[upstream]` | 超时、配置缓存 TTL、会话自动刷新、`cross_site_failover` 跨站切换、`continue_rounds` 工具调用截断续写轮数(0 = 不续写、直接截断补全) |
|
||||
| `[turnstile]` | **默认 `enabled = false` 且不内置任何求解服务**;`provider` 三选一:`api`(填 `api_url` / `api_key`)、`browser`(填 `browser_path` 指向本机 Chrome/Edge)、`manual`(只用控制台导入的 Cookie),另有 Cookie TTL、重试次数、单次求解超时(`timeout_seconds`)与 Cookie 池(`warm_enabled` / `warm_ratio` / `warm_check_seconds`,后台预热,请求零等待) |
|
||||
| `[sites.*]` | 三个站点的 `base_url` / `ajax_url` / `sitekey` / `language` / `proxies`(站点级出口绑定,按顺序粘性选路) |
|
||||
| `[turnstile]` | **默认 `enabled = false` 且不内置任何求解服务**;`provider` 三选一:`api`(填 `api_url` / `api_key`)、`browser`(填 `browser_path` 指向本机 Chrome/Edge)、`manual`(只用控制台导入的 Cookie),另有 Cookie TTL、重试次数、单次求解超时(`timeout_seconds`)、求解服务风格(`api_style`)与 Cookie 池(`warm_enabled` / `warm_ratio` / `warm_check_seconds`,后台预热,请求零等待) |
|
||||
| `[sites.*]` | 三个站点的 `base_url` / `ajax_url` / `sitekey` / `language` / `proxies`(站点级出口绑定,按顺序粘性选路)/ `warm_pool_only`(只预热池绑定线路) |
|
||||
| `[models.*]` | 模型到 `site` + `upstream_id` + `bot_id` / `post_id` 的映射 |
|
||||
|
||||
### Turnstile 说明
|
||||
@@ -157,6 +157,7 @@ dsfree2api -config config.toml -check
|
||||
| `browser` | 2 · 本地浏览器自动获取 | `browser_path` | CDP 直连你配置的 Chrome / Edge:打开站点 → 注入 Turnstile widget → 可信点击 → 轮询拿到 Token;等价于 heartmore/cloudflare-solver 的做法,但**无需 Playwright / FlareSolverr / Docker**,单二进制即可。可选 `browser_user_data_dir`(真实 profile)、`browser_timezone` / `browser_locale`(对齐代理出口) |
|
||||
| `manual` | 3 · 手动导入 Cookie | — | 不自动求解,只使用控制台导入的 Cookie |
|
||||
|
||||
- **求解服务风格**:`api_style = "ezsolver"` 时兼容本地 EzSolver 形态的求解服务(`{sitekey,siteurl,timeout}` → `{token}`),`api_key` 可留空;环回 / 内网求解地址直连(不随 `[proxy]` 线路,避免 `127.0.0.1` 被解析到隧道另一侧);
|
||||
- **手动导入 Cookie**:在走同一条出口线路的浏览器里过一次验证,把 `document.cookie` 粘到控制台 **Turnstile → 手动导入 Cookie**,在 `cookie_ttl_seconds` 内免求解(Cookie 与出口 IP / UA 绑定,换线路需重新导入);
|
||||
- **浏览器模式提示**:求解期间会短暂弹出浏览器窗口(`browser_headless = true` 可关闭,但过验证率更低);带账号密码的代理暂不支持 Chrome,请用 IP 白名单代理;浏览器被系统策略锁定时会报 `browser launch failed` 并附 stderr。
|
||||
|
||||
@@ -269,7 +270,7 @@ curl http://127.0.0.1:8000/v1/messages \
|
||||
| 模型与站点 | 编辑标签、路径、bot_id/post_id,启停模型与站点,修改站点 URL / 语言 |
|
||||
| API Key | 生成 / 删除 / 复制下游 key,立即写回配置 |
|
||||
| 代理线路 | 主线路、备用线路增删、连通性测试、slow-start / 并发 / 限流 / 跨站切换、代理池(节点 / 订阅 / 每站点绑定 / Xray 核心状态) |
|
||||
| Turnstile | 三种 Token 获取方式的模式面板(求解服务 API / 本地浏览器自动获取 / 手动导入 Cookie)、各站 Cookie 状态与 TTL、强制刷新、求解历史 |
|
||||
| Turnstile | 三种 Token 获取方式的模式面板(求解服务 API / 本地浏览器自动获取 / 手动导入 Cookie)、求解器风格(`api_style`)、各站 Cookie 状态与 TTL、Cookie 池预热状态、强制刷新、求解历史 |
|
||||
| 对话调试 | 选模型 / 系统提示 / tools JSON,流式或非流式,带连接计时与取消 |
|
||||
| 实时日志 | 级别过滤 + SSE 实时推送 |
|
||||
| 设置 | 服务与上游参数、数据目录、危险操作 |
|
||||
@@ -295,6 +296,10 @@ curl http://127.0.0.1:8000/v1/messages \
|
||||
| `TURNSTILE_API_KEY` | Turnstile 求解服务 key(仅在 `provider=api` 且开启时校验) | 配置文件 |
|
||||
| `TURNSTILE_PROVIDER` | Token 获取方式:`api` / `browser` / `manual` | `api` |
|
||||
| `TURNSTILE_BROWSER_PATH` | 浏览器模式的 Chrome / Edge 可执行文件路径 | — |
|
||||
| `TURNSTILE_TIMEOUT_SECONDS` | 单次求解超时秒数(5–600) | `90` |
|
||||
| `TURNSTILE_WARM_ENABLED` | Cookie 池后台预热开关 | `false` |
|
||||
| `TURNSTILE_WARM_RATIO` | 剩余 TTL 低于该比例时自动续期(0–1) | `0.3` |
|
||||
| `TURNSTILE_WARM_CHECK_SECONDS` | 预热巡检间隔秒数(5–3600) | `60` |
|
||||
| `ADMIN_ENABLED` / `ADMIN_HOST` / `ADMIN_PORT` / `ADMIN_PASSWORD` | 管理台 | `true` / `127.0.0.1` / `8001` |
|
||||
| `DATA_DIR` | 统计等运行时数据目录 | `./data` |
|
||||
|
||||
@@ -307,15 +312,17 @@ cmd/dsfree2api 入口:配置加载、日志、双 HTTP server、优雅
|
||||
internal/config TOML 结构 + 默认值 + env 覆盖 + 校验 + 写回
|
||||
internal/httpx TLS 指纹会话封装(bogdanfinn/tls-client, Chrome_120)
|
||||
internal/proxypool 代理池:Xray 核心管理 / 订阅拉取 / 分享链接解析 / 粘性选路与健康探测
|
||||
internal/quota 配额哨兵:站点余额轮询 / 低额告警 / 重置留档
|
||||
internal/openai OpenAI 协议类型、prompt 拼接、tool_calls 解析
|
||||
internal/anthropic Anthropic Messages 协议类型 + 与 OpenAI 消息的互转
|
||||
internal/turnstile Turnstile 三种求解方式(API / 浏览器 CDP / 手动)+ 按线路/站点的 Cookie 缓存
|
||||
internal/turnstile Turnstile 三种求解方式(API / 浏览器 CDP / 手动)+ 按线路/站点的 Cookie 缓存与后台预热(warmer)
|
||||
internal/upstream 上游逆向核心:data-config/nonce → SSE → 事件翻译,
|
||||
线路降级、慢启动、会话刷新、跨站切换
|
||||
internal/api OpenAI / Anthropic 路由、鉴权、限流、流式写出
|
||||
internal/admin 管理台后端 + go:embed 前端
|
||||
internal/metrics 计数/分模型/分站点/按日/延迟分位数,JSON 持久化
|
||||
internal/logbuf 环形日志 + 订阅广播(供 SSE 日志页)
|
||||
internal/logfile 文件日志:按日轮转 + gzip 归档(`[server].log_file`)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in new issue
Block a user