# ModelTrace **Repository Path**: ganzhenghao/ModelTrace ## Basic Information - **Project Name**: ModelTrace - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-01 - **Last Updated**: 2026-09-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ModelTrace ModelTrace 是一个本地运行的主动模型归因工具。它通过三条独立的长整数生成挑战提取输出指纹,在统一候选库中自动判断模型家族和具体版本。 ## 运行 ```powershell python -m pip install -r requirements.txt python start.py ``` 页面地址为 `http://127.0.0.1:7860/`。 ## 使用 - **手动测试**:复制三条挑战,分别发送给同一个待测模型,再粘贴每次完整输出。 - **API 自动测试**:填写 Base URL、API Key 和模型名。程序会自动尝试 OpenAI Chat Completions 与 Anthropic Messages 格式,以三份有效回答为目标完成归因。 - **指纹库管理**:可以新建指纹库,或通过 API 为现有指纹库添加模型指纹。 API Key 只用于当前页面发起请求,不写入磁盘。 新执行的自动采集会在对应的 `*_reference.jsonl` 中保存实际 user prompt、base prompt、system prompt 和 user prefix;拟合后的 `*_bank.json` 与 `unified_bank.json` 只保存统计指纹和校准参数。 ## 指纹方法 所有模型使用同一个全局特征空间、同一套特征与权重: ```text 0.75 × 去除环境方向后的 Hellinger 模型中心相似度 + 0.25 × 有序块数字序列特征 ``` 建库时使用共享环境的平均偏移估计主要干扰方向。归因时先从数字分布和有序特征中投影掉这些方向,再同时与全部模型中心比较。三份回答分别评分后取平均,并使用与查询数量对应的校准温度转换为概率。 具体模型概率由一次全局 softmax 得到,家族概率是该家族下各模型概率之和: ```text P(具体模型) = softmax(β × 全局模型得分) P(模型家族) = Σ P(该家族中的具体模型) ``` 结果是当前候选库内、均匀先验下的闭集概率。未收录模型仍会被归到最相似的现有候选。 ## 项目结构 ```text app.py Web 接口 fingerprint.py 指纹提取与归因 bank_builder.py 指纹库构建与概率校准 challenge_suite.py 自动建库挑战 enrollment.py API 调用与指纹采集 rebuild_unified_bank.py 重建统一全局库 data/ 参考数据与指纹库 static/ 页面资源 templates/ 页面模板 ``` ## 指纹库说明 项目中现有指纹库共包含两个模型家族、12 个模型: ``` gpt-5.4 gpt-5.5 gpt-5.6-luna gpt-5.6-terra gpt-5.6-sol claude-haiku-4-5-20251001 claude-sonnet-4-6 claude-sonnet-5 claude-opus-4-6 claude-opus-4-7 claude-opus-4-8 claude-opus-5 ``` GPT 采集自官方订阅 Codex,Claude 采集自 [OAIPro](https://api.oaipro.com/)。 ## 致谢 感谢 [hanlinwenyuan/hlwy-ai-checker](https://github.com/hanlinwenyuan/hlwy-ai-checker)。该项目较早将语言模型的随机数字生成偏差用于第三方 API 渠道一致性检查,为 ModelTrace 提供了重要参考。 [LINUX DO](https://linux.do/)