检测 OpenAI 兼容中转 API 是否真实路由到申报的 GPT 型号(sol / terra / luna)。 Detect model mixing on OpenAI-compatible relay APIs.
当你在用第三方中转站时,最担心的问题莫过于:付的是高档模型的钱,拿到的是不是真的高档模型? gpt-checker 通过四类探针,对本机发起的固定请求做行为取证,识别中转是否偷偷把流量路由到廉价档位。
🚀 小白用户看这里:不需要懂任何原理,三步复制粘贴即可完成检测 → 五分钟上手(小白版)
- 零依赖:纯 Python 3.9+ 标准库,克隆即用;
- 离线自检:内置 mock 上游,
selftest不发任何外网请求; - key 安全:API key 只经环境变量进入内存,报告/日志/错误信息全程脱敏;
- 诚实结论:明确声明"不通过≠掺水、通过≠干净",不做过度归责。
| 探针 | 原理 | 无需校准? |
|---|---|---|
| juice | 多套恒等变形模板索要内部思考预算数字,按型号指纹表分类;命中其他型号独占值 → 确定性 mismatch | 需要 fingerprints 表 |
| integrity | 索要精确输出 32/48;出现纯 40 或 40 开头数字 → 硬报警"输出改写" |
✅ |
| override | 显式定义自定义预算 N;若回答被改回已知指纹值 → 隐藏语义覆盖报警 | ✅ |
| behavioral | 固定题面(国家 / 鸟 / 80字符计数)× N 次采样的答案类别分布,与可信基线做统计比对 | 需要可信基线 |
行为评分数学:Laplace α=0.5 平滑 → 单族平均对数似然 → softmax(T=1) 相对匹配度 → 严格大于阈值且恰好一个模型越线才给强指向。完整方法论见 references/methodology.md。
git clone https://github.com/fxw-labs/gpt-checker.git
cd gpt-checker
# 离线自检(不联网)
python3 scripts/detector.py selftest# 对待测端点跑一轮探测(自动补全 /v1;Responses SSE 优先,自动回退 chat completions)
export GPT_CHECKER_KEY="sk-..."
python3 scripts/detector.py probe \
--base-url https://relay.example.com \
--model terra \
--request-model my-alias \ # 中转自定义别名时填写,默认同 --model
--samples 12 \
--out report.json
# 有可信基线时离线评分
python3 scripts/detector.py score --report report.json --baseline baselines/trusted-terra.json自带指纹为占位值。首次正式使用前,向可信直连端点采样刷新:
python3 scripts/detector.py collect-fingerprint \
--base-url https://trusted.example.com --model terra \
--effort-tiers low,medium,high --trials 8
python3 scripts/detector.py collect-baseline \
--base-url https://trusted.example.com --model terra \
--samples 12 --out baselines/trusted-terra.json # 该文件不会也不应入库报告关键字段:
hard_events[]— 粘性硬报警(输出改写 / override 命中 / 异型号独占指纹),出现即强证据;juice.verdict—match_declared>insufficient>possible_non_gpt>mismatch(取最差档);behavioral_scores.match.*— 三模型相对匹配度百分比;behavioral_scores.strong_match— 完成率 ≥90% 且恰好一个模型严格超阈时给出;claim_mismatch: true— 强指向 ≠ 申报型号。
强指向阈值(严格大于):
| 档位(每族样本数) | sol | terra | luna |
|---|---|---|---|
| 低 (≤4) | >54% | >58% | >77% |
| 中 (≤12) | >82% | >84% | >97% |
| 高 (>12) | >98% | >97% | >99% |
- 检测不通过 ≠ 中转主动掺水——官方风控、IP、并发限流都可能让可信号池临时落层。争议时降并发、换时段/IP 复测。
- 检测通过 ≠ 绝对干净——透明代理、"仅对检测请求路由真模型"无法排除。
- 匹配度是分布接近度,不是路由概率,也不是贝叶斯后验身份概率。
- 仅在你有权测试的 API 上使用;控制请求量,遵守上游条款。
完整说明见 references/caveats.md。
- API key 仅经环境变量进入内存,绝不写入 SQLite、JSON 报告、日志或磁盘;
- 报告只存答案 SHA-256 哈希、类别、状态码、延迟等元数据;
- 自检完全离线(mock 上游绑定 127.0.0.1 随机端口)。
SKILL.md # agent 工作流入口(本目录亦可作为 skill 安装)
scripts/detector.py # 检测引擎(纯标准库单文件)
scripts/fingerprints.json # juice 指纹表(占位值,应校准刷新)
references/
├── quickstart.md # 五分钟上手(小白版,三步复制粘贴)
├── methodology.md # 四类探针原理与数学
├── baselines.md # 校准流程与基线 schema 说明
└── caveats.md # 解读边界与责任声明
baselines/schema.json # 基线文件 JSON Schema (draft-07)
本工具给出的是本次固定探针请求的行为证据,不证明服务器物理归属,不替代供应商审计。作者不对使用方式及后果承担责任。