{% extends "base.html" %} {# Server-computed metadata, with generic fallbacks for legacy reports. #} {% block title %}{{ seo_title or '检测结果 · API快连' }}{% endblock %} {% block description %}{{ seo_description or 'API快连模型验真报告' }}{% endblock %} {% block og_title %}{{ seo_title or '模型验真报告 · API快连' }}{% endblock %} {% block og_description %}{{ seo_og_description or seo_description or 'API快连模型验真报告' }}{% endblock %} {% block robots %}noindex,nofollow,noarchive{% endblock %} {% block canonical %}https://check.apikl.ai/r/{{ job_id }}{% endblock %} {% block og_url %}https://check.apikl.ai/r/{{ job_id }}{% endblock %} {# 微信 / 推特 / Reddit / Discord 分享时显示报告卡片 — JPG 由 /r/{id}.jpg 按需渲染,1400×1000,内含分数、verdict、扣分项摘要。 #} {% block og_image %} {% endblock %} {% block content %} {# The final crumb identifies the detected model; legacy reports without one fall back to the stable report id. #} {% set perf = report.performance or {} %} {% set usage = perf.usage or {} %} {% set score = report.total_score or 0 %} {% set verdict = report.verdict or 'failed' %} {% set protocol = report.protocol or 'anthropic' %} {# verdict drives both caption and color so any critical-issue downgrade applied in scorer.effective_verdict() is honored. The classification was previously score-driven, which let a 75% relay with detected impersonation render as a green circle and "基本通过" caption — visually contradicting the red critical findings below. #} {% if verdict == 'passed' and score >= 95 and protocol == 'anthropic' %} {% set caption = '完全一致' %}{% set verdict_class = 'ok' %} {% elif verdict == 'passed' and score >= 85 %} {% set caption = '协议表现良好' if protocol in ['openai', 'gemini'] else '优秀' %} {% set verdict_class = 'ok' %} {% elif verdict == 'passed' %} {% set caption = '基本通过' if protocol in ['openai', 'gemini'] else '通过' %} {% set verdict_class = 'ok-dim' %} {% elif verdict == 'marginal' %} {% set caption = '存在风险' if protocol in ['openai', 'gemini'] else '基本合格' %} {% set verdict_class = 'warn' %} {% else %} {% set caption = '未达标' %}{% set verdict_class = 'fail' %} {% endif %}

检测结果

模型:{{ report.target_model }} · 模式 {{ report.mode }} · 接口 {{ report.base_url }}

下载 JPG
{% if report.run_error %}
检测无效: {{ report.run_error }}
{% endif %} {% if report.tier_title or report.tier_message %}
{{ report.tier_title or report.tier }}: {{ report.tier_message }}
{% endif %}
{{ '%.0f' | format(score) }}%
{{ caption }}

由 API快连自托管 Veridrop 引擎生成

{% if report_notes %}

这份结果怎么理解?

{% for note in report_notes %}
{{ note.title }}

{{ note.body }}

{% endfor %}
{% endif %}
首 TOKEN
{% if perf.ttft_ms is not none %}{{ '{:,}'.format(perf.ttft_ms) }}ms{% else %}—{% endif %}
总耗时
{{ '{:,}'.format(perf.total_latency_ms or 0) }}ms
吞吐 (T/S)
{% set out_t = (usage.output_tokens or 0) %} {% set lat = (perf.total_latency_ms or 0) %} {% if out_t and lat %} {{ '%.1f' | format(out_t * 1000.0 / lat) }} {% else %}—{% endif %}
输入 TOKENS
{{ '{:,}'.format(usage.input_tokens or 0) }}
输出 TOKENS
{{ '{:,}'.format(usage.output_tokens or 0) }}
{% if protocol == 'anthropic' and report.detected_non_anthropic_brands %}
⚠ 检测到非 Anthropic 后端品牌: {{ report.detected_non_anthropic_brands | join(', ') }}
{% endif %}
{% if protocol == 'openai' %} OpenAI 检测项各自检查什么?
基础请求 (Basic Request)
发送最小 Chat Completions 请求,确认接口可用且能提取 assistant 文本。
模型一致性 (Model Consistency)
验证 response.model 与请求模型匹配,并检查低温多次调用的输出 token 稳定性。
函数调用 (Function Calling)
强制 tool_choice,验证 call_ ID、type=function、函数名和 arguments JSON。
结构化输出 (Structured Output)
使用 response_format=json_schema,检查返回内容能否按 schema 解析。
协议规范性 (Protocol)
被动检查 chatcmpl- ID、chat.completion、choices、finish_reason、usage 等官方字段。
流式一致性 (Integrity)
比较同一 prompt 的 stream 与 non-stream 文本、finish_reason 和 usage 是否一致。
Token 计费
检查中转站返回的输入/输出 Token 数是否自洽,并和同一次检测里的流式/非流式结果、本地可预期的变化进行对比。
长上下文真实性 (Long Context)
需在提交时勾选启用 — 用 needle-in-haystack 在 32k → 100k → 200k tokens 三档探针,验证中转站是否真兑现宣传的 context window(识别截断 / 路由到小窗口模型)。极限档可按模型完整上限自适应探到 950k+。
{% elif protocol == 'gemini' %} Gemini 检测项各自检查什么?
基础请求
发送最小 generateContent 请求,确认接口可用且能提取 Gemini 文本响应。
模型响应形状
检查 modelVersionresponseIdfinishReason、candidate 和 safety 字段是否完整。
函数调用
强制 Gemini 返回 functionCall,检查函数名和 args 是否是结构化对象。
结构化输出
使用 responseMimeType=application/jsonresponseSchema,检查返回内容能否按 schema 解析。
协议规范性
被动检查 candidatescontent.partssafetyRatingsusageMetadata 等 Gemini 原生字段。
流式一致性
比较同一 prompt 的 generateContentstreamGenerateContent 文本、结束原因和用量字段是否一致。
Token 用量
检查 usageMetadata 是否存在、Token 统计是否自洽,以及长短文本带来的 Token 增量是否合理。
{% else %} 12 项检测各自检查什么?
身份一致性 (Identity)
询问模型自报身份,响应必须包含 "Claude" 与 "Anthropic",且不能自称是其他品牌(如 Kiro、AWS Q 等)。
行为签名验证 (Behavioral)
3 道行为指纹题(markdown 风格、列表偏好、拒绝语气),正版 Claude 有特征鲜明的回答模式。
思维签名验证 (Thinking) ⭐
核心检测:Claude thinking 块返回的加密 signature 字节,任何中转站都无法伪造。
模型一致性 (Consistency)
验证 response.model 与请求一致,且多次调用输出长度稳定(变异系数 CV)。
知识准确度 (Knowledge)
5 道关于 Anthropic 公司的常识题(CEO、HQ、Constitutional AI 等),错答多则说明背后不是真 Claude。
PDF 文档识别
提交一份 base64 PDF + magic 字符串,检查模型能否正确提取——剥离 multimodal 的中转站会失败。
结构化输出 (Tool Use)
真实 tool_use 调用,验证 toolu_ ID 前缀、JSON schema 匹配、stop_reason 等 5 项子项。
协议规范性 (Protocol)
SSE 事件序列、content block 类型必须符合 Anthropic 官方规范(被动检测,不发额外请求)。
响应完整性 (Integrity)
同一 prompt 流式与非流式调用必须返回一致的文本、input_tokensstop_reason
Token 用量
检查 Claude Messages 的 usage.input_tokens/output_tokens 是否存在、长短 prompt 增量是否合理、短输出是否没有超报,并用 stream 与 count_tokens 做交叉验证。
消息标识规范 (Message ID)
消息 id 必须以 msg_ 开头、tool 块以 toolu_ 开头。UUID 或硬编码 tool_1 是典型造假特征。
长上下文真实性 (Long Context)
需在提交时勾选启用 — 用 needle-in-haystack 在 32k → 100k → 200k tokens 三档探针,验证中转站是否真兑现宣传的 context window(识别截断 / 路由到小窗口模型)。Anthropic 路径用官方 count_tokens 端点精准预算 token,极限档可按模型完整上限自适应探到 950k+(Sonnet 4.6 / Opus 4.6/4.7 都是 1M)。
{% endif %}
{% endblock %}