# api_model_validator **Repository Path**: WuYiLingOps/api_model_validator ## Basic Information - **Project Name**: api_model_validator - **Description**: 用于验证第三方 API 服务声称的 AI 模型是否真实,防止虚假宣传 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-03-03 - **Last Updated**: 2026-03-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # API 模型真实性验证方法 ## 一、验证原理 当第三方 API 服务声称提供某个特定模型(如 Claude Opus 4.6)时,可以通过以下方式验证其真实性: ### 1.1 核心验证点 - **API 响应中的模型标识**:真实的 API 会在响应的 `model` 字段返回实际使用的模型名称 - **响应结构特征**:不同模型家族的 API 响应结构存在差异 - **模型能力表现**:通过特定任务测试模型的实际能力 ### 1.2 验证逻辑 ``` 用户请求模型 A → API 处理 → 返回响应(包含实际模型标识) ↓ 如果返回模型 B ≠ 模型 A ↓ 证明存在虚假宣传 ``` --- ## 二、验证方法 ### 2.1 方法一:检查 API 响应中的模型字段(推荐) 这是最直接、最可靠的验证方法。 #### 测试步骤 **步骤 1:准备测试环境** 确保已安装 `curl` 工具(Windows 10+ 自带,Linux/Mac 默认安装) **步骤 2:构造 API 请求** ```bash curl -X POST "https://api.example.com/v1/chat/completions" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "声称的模型名称", "messages": [ { "role": "user", "content": "请介绍你自己" } ], "max_tokens": 100 }' ``` **步骤 3:分析响应结果** 查看响应 JSON 中的 `model` 字段: ```json { "id": "chatcmpl-xxx", "model": "实际使用的模型名称", // ← 关键字段 "object": "chat.completion", "choices": [...] } ``` **步骤 4:对比判断** | 请求的模型 | 响应的模型 | 结论 | |-----------|-----------|------| | claude-opus-4-6 | claude-opus-4-6 | ✅ 真实 | | claude-opus-4-6 | gpt-oss-120b | ❌ 虚假 | | gpt-4 | gpt-3.5-turbo | ❌ 虚假 | --- ### 2.2 方法二:测试模型特定能力 某些模型具有独特的能力特征,可以通过特定任务测试。 #### 测试案例 **案例 1:代码生成质量测试** ```bash curl -X POST "https://api.example.com/v1/chat/completions" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "claude-opus-4-6", "messages": [ { "role": "user", "content": "请用 Python 实现一个 LRU 缓存,要求使用双向链表和哈希表,时间复杂度 O(1),并包含详细中文注释" } ], "max_tokens": 2000 }' ``` **评估标准**: - Claude Opus 通常会生成结构清晰、注释详尽的代码 - 较弱的模型可能生成不完整或错误的实现 **案例 2:推理能力测试** ```bash curl -X POST "https://api.example.com/v1/chat/completions" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "claude-opus-4-6", "messages": [ { "role": "user", "content": "一个房间里有 3 个开关,控制隔壁房间的 3 盏灯。你只能进入隔壁房间一次,如何确定每个开关对应哪盏灯?" } ], "max_tokens": 500 }' ``` **评估标准**: - 高级模型能给出正确的"开关-温度"解法 - 较弱模型可能给出错误或不完整的答案 --- ### 2.3 方法三:检查 API 端点兼容性 标准的 OpenAI 兼容 API 应该支持特定端点。 #### 测试模型列表端点 ```bash curl -X GET "https://api.example.com/v1/models" \ -H "Authorization: Bearer YOUR_API_KEY" ``` **预期结果**: - 真实的 API 应返回可用模型列表 - 返回 404 或错误可能表明 API 不完整或伪造 --- ## 三、自动化验证工具 为了简化验证流程,我们提供了两个自动化验证脚本,支持交互式和命令行两种使用方式。 ### 3.1 模型真实性验证工具(api_model_validator.sh) 用于检测 API 服务是否存在虚假宣传(声称的模型与实际使用的模型不符)。 **使用方法**: ```bash # 交互式模式 bash api_model_validator.sh # 命令行参数模式 bash api_model_validator.sh -u https://api.example.com -k sk-xxx -m claude-opus-4-6 # 自动确认模式 bash api_model_validator.sh -u https://api.example.com -k sk-xxx -y ``` **测试报告示例**: ``` ======================================== 基本信息 ======================================== API 地址: https://aliws.xyz/v1/chat/completions 声称模型: claude-opus-4-6 测试时间: 2026-03-04 12:00:00 ======================================== 测试结果 ======================================== 1. 基础对话测试 状态: ✅ 成功 返回模型: kiro-claude-sonnet-4-5-agentic 2. 代码生成测试 状态: ✅ 成功 返回模型: kiro-claude-sonnet-4-5-agentic 代码质量: 良好(包含函数定义和返回值) 3. 模型列表端点 状态: ✅ 成功 结果: 端点可用,返回 7 个模型 ======================================== 验证结论 ======================================== ❌ 检测到虚假宣传! 证据: • 测试1返回模型 'kiro-claude-sonnet-4-5-agentic' 与声称模型 'claude-opus-4-6' 不符 • 测试2返回模型 'kiro-claude-sonnet-4-5-agentic' 与声称模型 'claude-opus-4-6' 不符 ``` ### 3.2 模型可用性测试工具(api_model_availability_tester.sh) 用于批量测试 API 所有模型的实际使用状态,识别权限错误、账户不可用等问题。 **使用方法**: ```bash # 交互式模式 bash api_model_availability_tester.sh # 命令行参数模式 bash api_model_availability_tester.sh -u https://api.example.com -k sk-xxx # 自动确认模式 bash api_model_availability_tester.sh -u https://api.example.com -k sk-xxx -y ``` **测试报告示例**: ``` ======================================== 基本信息 ======================================== API 地址: https://api.example.com/v1/chat/completions 测试时间: 2026-03-04 12:00:00 总模型数: 9 可用模型数: 2 不可用模型数: 7 ======================================== 可用模型列表 (2个) ======================================== ✅ claude-opus-4-6 ✅ claude-sonnet-4-5 ======================================== 不可用模型列表 (7个) ======================================== ❌ gpt-4 错误: HTTP 403 - 权限拒绝 ❌ gpt-4-turbo 错误: HTTP 403 - 权限拒绝 ❌ claude-haiku-4-5 错误: HTTP 503 - 账户不可用 ❌ gemini-pro 错误: HTTP 403 - 权限拒绝 ❌ deepseek-chat 错误: 请求超时或网络错误 ======================================== 统计摘要 ======================================== 总测试模型数: 9 可用模型数: 2 不可用模型数: 7 可用率: 22.22% ``` --- ## 四、实战案例:验证 findcg.com ### 3.1 测试背景 - **声称模型**:Claude Opus 4.6 - **API 地址**:https://www.findcg.com/v1/chat/completions - **API Key**:sk-1747e21dce1abef93b351befb4e80977fd3ea3bfb63f42e4a4781aca5fa7cf42 ### 3.2 测试过程 **测试 1:基础对话测试** ```bash curl -X POST "https://www.findcg.com/v1/chat/completions" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-1747e21dce1abef93b351befb4e80977fd3ea3bfb63f42e4a4781aca5fa7cf42" \ -d '{ "model": "claude-opus-4-6", "messages": [ { "role": "user", "content": "请用一句话介绍你自己,包括你的模型名称和版本。" } ], "max_tokens": 1000 }' ``` **响应结果**: ```json { "id": "chatcmpl-ade98ca6d71359ea", "model": "openai/gpt-oss-120b", // ← 关键证据 "object": "chat.completion", "created": 1772522902, "choices": [{ "index": 0, "message": { "role": "assistant", "content": "我是 Claude,由 Anthropic 构建的 AI 助手。有什么我可以帮您的吗?", "reasoning_content": "...", // ← 特殊字段 "reasoning": "..." }, "finish_reason": "stop" }] } ``` **测试 2:代码生成测试** ```bash curl -X POST "https://www.findcg.com/v1/chat/completions" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-1747e21dce1abef93b351befb4e80977fd3ea3bfb63f42e4a4781aca5fa7cf42" \ -d '{ "model": "claude-opus-4-6", "messages": [ { "role": "user", "content": "请写一个复杂的 Python 函数,实现 LRU 缓存,要求使用双向链表和哈希表,并包含详细注释。" } ], "max_tokens": 2000 }' ``` **响应结果**: ```json { "model": "openai/gpt-oss-120b", // ← 再次确认 ... } ``` ### 3.3 验证结论 **关键证据**: 1. ✅ **模型标识不符**:请求 `claude-opus-4-6`,返回 `openai/gpt-oss-120b` 2. ✅ **响应结构异常**:包含 `reasoning_content` 和 `reasoning` 字段(Claude API 无此字段) 3. ✅ **模型列表端点失效**:`/v1/models` 返回 404 **最终结论**: 该服务**虚假宣传**,实际使用的是一个名为 `gpt-oss-120b` 的 120B 参数开源模型,而非 Claude Opus 4.6。 --- ## 五、通用验证流程 ### 4.1 快速验证(5 分钟) ```bash # 1. 发送简单请求 curl -X POST "API_URL" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer API_KEY" \ -d '{ "model": "声称的模型", "messages": [{"role": "user", "content": "你好"}], "max_tokens": 50 }' | jq '.model' # 2. 检查返回的模型名称 # 如果与声称的模型不一致 → 虚假宣传 ``` ### 4.2 深度验证(15 分钟) 1. **基础对话测试**:验证模型标识 2. **能力测试**:测试代码生成、推理等能力 3. **端点测试**:检查 `/v1/models` 等标准端点 4. **对比测试**:与官方 API 的响应进行对比 ### 4.3 验证检查清单 - [ ] API 响应中的 `model` 字段是否与声称一致 - [ ] 响应结构是否符合官方 API 规范 - [ ] 模型能力是否达到声称的水平 - [ ] 标准 API 端点是否可用 - [ ] 响应速度和质量是否合理 --- ## 六、常见虚假宣传模式 ### 5.1 模式一:完全替换 - **声称**:Claude Opus 4.6 - **实际**:GPT-3.5 / 开源模型 - **特征**:响应中直接暴露真实模型名称 ### 5.2 模式二:能力不符 - **声称**:GPT-4 - **实际**:GPT-3.5 - **特征**:模型名称可能一致,但能力明显较弱 ### 5.3 模式三:混合使用 - **声称**:固定使用某高级模型 - **实际**:根据负载动态切换到低级模型 - **特征**:不同时间测试结果不一致 --- ## 七、注意事项 ### 6.1 法律风险 - 虚假宣传违反《消费者权益保护法》 - 可能涉及商标侵权(冒用 Claude、GPT 等品牌) - 建议保留测试证据,必要时可投诉或维权 ### 6.2 技术限制 - 某些 API 可能修改响应字段,隐藏真实模型名称 - 需要结合多种方法综合判断 - 官方 API 是最可靠的对比基准 ### 6.3 隐私安全 - 测试时避免发送敏感信息 - 不要在测试中暴露个人隐私数据 - 测试完成后及时撤销 API Key(如果是临时申请的) --- ## 八、工具推荐 ### 7.1 命令行工具 - **curl**:发送 HTTP 请求 - **jq**:解析 JSON 响应 - **httpie**:更友好的 HTTP 客户端 ### 7.2 在线工具 - **Postman**:图形化 API 测试工具 - **Insomnia**:轻量级 API 客户端 - **Hoppscotch**:在线 API 测试平台 ### 7.3 自动化脚本 ```bash #!/bin/bash # 自动化验证脚本示例 API_URL="https://api.example.com/v1/chat/completions" API_KEY="your_api_key" CLAIMED_MODEL="claude-opus-4-6" echo "开始验证 API..." RESPONSE=$(curl -s -X POST "$API_URL" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $API_KEY" \ -d "{ \"model\": \"$CLAIMED_MODEL\", \"messages\": [{\"role\": \"user\", \"content\": \"你好\"}], \"max_tokens\": 50 }") ACTUAL_MODEL=$(echo "$RESPONSE" | jq -r '.model') echo "声称模型: $CLAIMED_MODEL" echo "实际模型: $ACTUAL_MODEL" if [ "$CLAIMED_MODEL" = "$ACTUAL_MODEL" ]; then echo "✅ 验证通过" else echo "❌ 虚假宣传!" fi ``` --- ## 九、总结 ### 9.1 核心要点 1. **最可靠的验证方法**:检查 API 响应中的 `model` 字段 2. **辅助验证方法**:能力测试、端点检查、响应结构分析 3. **保留证据**:截图、日志、响应数据 ### 9.2 建议 - 使用第三方 API 前务必验证 - 优先选择官方 API 或信誉良好的服务商 - 发现虚假宣传及时举报 --- **文档版本**:v2.0 **最后更新**:2026-03-04 **维护者**:無以菱 **配套工具**:api_model_validator.sh, api_model_availability_tester.sh