ProbeKit Lite 是什么?一款用于检测 AI 中转站真实度的工具

前言

现在很多人在接入大模型接口时,都会遇到一个很现实的问题:

这个中转站到底是不是真的?

表面上看,很多接口都号称兼容 OpenAI,甚至直接写着支持 GPTClaudeGeminiDeepSeek 等模型。但真正接入之后,经常会发现很多问题:

  • 模型名称对不上
  • 参数透传不完整
  • tool_callsstopjson_object 等能力失效
  • 返回结构看起来兼容,实际行为却不一致
  • 明明写的是某个模型,实际表现却像另一个模型

所以,很多时候你需要的不是一个"聊天页面",而是一个能帮你判断中转站是否靠谱的检测工具

这就是 ProbeKit Lite 的作用。

一句话介绍这个项目

ProbeKit Lite 是一个专门用来检测 OpenAI-compatible API 真实度、兼容性和可用性的工具。

你可以把它理解成:

AI 中转站真实度检测工具

它的核心目标不是聊天,而是帮助你判断一个接口:

  • 能不能正常使用
  • 是不是真的兼容 OpenAI 协议
  • 有没有伪装模型
  • 有没有阉割能力
  • 适不适合继续接入你的业务

项目地址

  • 在线体验:https://www.probekitlite.top/
  • GitHub:https://github.com/9527Xy/probe-kit-lite
  • Gitee:https://gitee.com/1634874721/probe-kit-lite

线上体验说明

项目提供了在线体验站:

  • https://www.probekitlite.top/

但这里要提前说明一个很关键的现实问题:

线上网页环境会受到浏览器跨域策略影响,所以部分中转站接口在官网上可能无法直接完成测试。

这并不是工具本身失效,而是因为很多 API 站点本身没有开放浏览器跨域访问。

所以更准确的使用建议是:

  • 如果你只是想快速看看工具长什么样、有什么功能,可以直接用线上站点
  • 如果你要认真测试某个中转站,尤其是跨域比较严格的接口,建议拉取代码到本地运行

一句话理解就是:

官网适合体验,本地更适合正式测试。

这个工具能解决什么问题

如果你正在遇到下面这些问题,那么这个工具基本就是为你准备的:

  • 买了一个中转站,不知道后端到底接的是什么模型
  • 想验证某个接口是不是真的兼容 OpenAI Chat Completions
  • 想知道中转站有没有偷偷改写参数或阉割功能
  • 想比较多个中转站谁更稳定、谁更透明、谁更接近真实模型
  • 想在接入业务前先做一次基础验收

说得更直接一点:

它可以帮你快速判断一个 AI 接口是"能用",还是"值得用"。

ProbeKit Lite 到底检测什么

这个项目内置了一组自动化检测逻辑,会从多个维度去判断一个中转站的真实度和兼容性。

当前重点检测内容包括:

  • 连通性检测
  • 身份识别检测
  • 模型一致性检测
  • 协议兼容性检测
  • Tool Calling 检测
  • Tool Choice 检测
  • Logprobs 检测
  • Stop 序列检测
  • JSON 输出检测
  • Max Tokens 检测
  • Sampling 参数检测
  • 流式输出检测
  • 上下文检测
  • Token Usage 检测
  • Response ID 检测
  • 缓存重放检测
  • Prompt 透传检测
  • 隐藏水印扫描
  • 并发检测
  • 安全边界检测
  • 网关透明度检测
  • 性能检测

这些检测最终会帮助你判断下面几件事:

  1. 这个接口是不是一个真正可用的 OpenAI-compatible API
  2. 这个中转站有没有明显的伪装、改写、缩水或转发痕迹。
  3. 这个接口适不适合进一步接入你的项目或业务。

看一点核心代码,更容易理解它在做什么

很多人看完介绍后,还是会问一句:

这个工具到底是怎么判断的?

下面直接贴几段项目里的核心实现逻辑,你一眼就能明白它不是"随便测一下",而是真的在按接口行为做判断。

1. 自动拼接真实请求地址

这段逻辑来自项目里的接口封装,作用是根据你的配置,决定最终请求哪个地址:

ts 复制代码
function getEndpoint(config: ProbeConfig) {
  const baseUrl = config.apiUrl.trim().replace(/\/$/, '')
  const targetUrl = config.appendChatCompletions
    ? `${baseUrl}/chat/completions`
    : baseUrl

  if (config.useDevProxy) {
    return `/api/proxy/chat?target=${encodeURIComponent(targetUrl)}`
  }

  return targetUrl
}

这段代码说明了两件事:

  • 如果你填的是基础地址,比如 https://domain/v1,工具可以自动帮你补上 /chat/completions
  • 如果你本地开发遇到跨域问题,它还能切到开发代理模式

这也是为什么它适合拿来快速测试不同中转站,而不是每次都手动改请求地址。

2. 先判断返回的是不是 OpenAI-compatible JSON

很多中转站表面上说兼容 OpenAI,但实际返回的可能是网页、错误页,甚至根本不是标准响应。

项目里有一段很关键的校验逻辑:

ts 复制代码
function validateChatResponse(data: unknown): ChatCompletionResponse {
  if (typeof data === 'string') {
    throw new Error('API returned plain text instead of JSON.')
  }

  if (!data || typeof data !== 'object' || Array.isArray(data)) {
    throw new Error('API returned an invalid response body.')
  }

  const response = data as ChatCompletionResponse

  if (!Array.isArray(response.choices)) {
    throw new Error('API response is JSON, but it is not an OpenAI-compatible chat completion response.')
  }

  return response
}

这段代码的意义非常直接:

  • 不是 JSON,直接判定有问题
  • 是 JSON 但没有 choices,说明它不是标准的 Chat Completions 响应
  • 只有通过这一步,后面的真实性检测才有意义

换句话说,这个工具不是"接口有返回就算成功",而是先确认它是不是一个像样的 OpenAI 兼容接口。

3. 先做连通性预检,再跑完整检测

项目不是上来就把全部测试一股脑跑完,而是先做最基础的连接确认:

ts 复制代码
async function runConnectionTest() {
  const response = await openai.chat({
    messages: [{ role: 'user', content: 'say ok' }],
    maxTokens: 16,
  })

  return createResult(
    'connection',
    'Connection Test',
    100,
    response.duration,
    `HTTP 200. Response received in ${response.duration} ms.`,
  )
}

这样做的好处很明显:

  • 如果连基础请求都打不通,就没必要继续跑后面的真实性检测
  • 可以先把"地址填错""接口不可用""权限不对"这些低级问题排掉

对于实际使用者来说,这一步非常重要,因为很多问题并不是"模型不真",而是"接口压根没通"。

4. 真的会测模型身份有没有问题

下面这段是模型一致性检测思路的核心:

ts 复制代码
async function runModelConsistencyTest() {
  const response = await openai.chat({
    messages: [
      {
        role: 'user',
        content: [
          `Are you ${config.model}?`,
          'Answer in one compact JSON object with keys: requested_model, self_identified_model, provider.',
        ].join('\n'),
      },
    ],
    maxTokens: 120,
  })

  const content = getContent(response.data)
  const responseModel = response.data.model ?? ''
  const expected = config.model.toLowerCase()
  const combined = `${responseModel} ${content}`.toLowerCase()
  const expectedFamily = expected.split(/[/:.-]/)[0]
  const hasExpectedSignal = Boolean(expectedFamily) && combined.includes(expectedFamily)
}

这段代码说明,它不是只看你传入了什么模型名,而是会同时看:

  • 你请求的模型名
  • 接口返回的 response.model
  • 模型自己在回答里怎么描述自己

如果这三者明显对不上,就会被判定为存在模型身份风险。

这也是这个项目和普通"接口测试页"最大的差别之一。

5. 所有测试是按顺序统一调度的

项目内部会把所有测试收拢到一个总流程里:

ts 复制代码
const runners: TestRunner[] = [
  runIdentityTest,
  runModelConsistencyTest,
  runProtocolTest,
  runToolCallingTest,
  runToolChoiceTest,
  runLogprobsTest,
  runStopFidelityTest,
  runJsonFormatTest,
  runMaxTokensClampTest,
  runSamplingParamsTest,
  runStreamingTest,
  runContextTest,
  runTokenUsageTest,
  runResponseIdUniquenessTest,
  runCacheReplayTest,
  runPromptFidelityTest,
  runWatermarkTest,
  runConcurrencyTest,
  runSecurityTest,
  runPolicyBoundaryTest,
  runGatewayTransparencyTest,
  runPerformanceTest,
]

这意味着它不是只做一项检测,而是把"兼容性、真实性、透明度、性能、风险"几个维度连起来看。

所以最终报告的价值,不是某一项单点结论,而是一个更接近真实接入场景的综合判断。

它适合哪些人使用

这个工具比较适合下面几类人:

  • 正在筛选 AI 中转站的人
  • 需要接入 OpenAI 兼容接口的开发者
  • 想快速验收接口质量的团队
  • 想对比多个中转站效果的人
  • 想排查"为什么模型表现不对劲"的技术人员

它的实际价值在哪里

很多人会问:市面上能调用接口的工具那么多,为什么还需要这个项目?

原因很简单。

因为很多时候问题并不是"接口能不能返回内容",而是:

  • 它返回的内容是不是可信
  • 它的模型身份是不是真的
  • 它的参数有没有被改写
  • 它的能力有没有被裁剪
  • 它的协议兼容是不是只做了表面兼容

ProbeKit Lite 的价值,就在于它不是只帮你"调通接口",而是帮你识别接口质量

如何使用

下面直接说使用方法。

1. 安装依赖

bash 复制代码
npm install

2. 启动项目

bash 复制代码
npm run dev

启动后,打开本地页面即可使用。

这里本地启动有一个明显优势:

项目内置了开发代理能力,本地测试时可以更方便地绕过部分浏览器跨域限制。

所以如果你在线上站点发现某些接口测不了,不用怀疑项目本身,优先改用本地运行版本测试。

3. 填写接口信息

你只需要填写三个核心参数:

  • API URL
  • API Key
  • Model

4. 配置检测选项

项目里有几个比较关键的开关:

Append /chat/completions

如果你填写的是基础地址,比如:

text 复制代码
https://domain/v1

通常建议开启这个选项。

如果你填写的是完整地址,比如:

text 复制代码
https://domain/v1/chat/completions

通常建议关闭这个选项。

Use Dev Proxy

这个选项主要用于本地开发。

如果你在浏览器里直接请求接口时遇到跨域问题,可以在开发模式下开启它。

Use AI Scoring

开启之后,系统会在基础检测完成后,再调用一次当前模型对检测结果做 AI 复评。

优点是报告会更丰富,缺点是会额外消耗 token。

5. 开始检测

点击开始后,系统会先做连通性预检,然后按顺序执行全部测试,最后生成检测报告。

检测完成后看什么

很多人拿到报告之后,不知道重点该看哪里。其实很简单,先看下面几项:

  • 总分
  • 每一项测试是否通过
  • 失败项的原因说明
  • 请求和响应摘要
  • token usage 是否完整
  • AI 复评结果是否和基础结论一致

如何判断一个中转站靠不靠谱

这里给一个最直接的判断思路。

如果出现这些信号,通常说明比较靠谱

  • 接口连通稳定
  • 返回结构完整
  • 协议兼容性正常
  • 模型身份和行为表现基本一致
  • tool_callsstopjson_objectlogprobs 可以正常工作
  • usage 字段完整
  • 并发、流式、性能表现正常

如果出现这些信号,就要提高警惕

  • 声称是某模型,但返回身份或行为明显不一致
  • 工具调用失真
  • 参数透传不完整
  • usage 长期缺失
  • 响应 ID 重复
  • 存在缓存重放嫌疑
  • 并发请求接近串行执行
  • 返回元数据严重缺失

它能不能直接帮你下结论

可以明确说:

它能帮你做高价值判断,但不能替你做绝对结论。

也就是说,它可以帮助你:

  • 快速发现问题
  • 快速判断风险
  • 快速筛掉明显不靠谱的中转站
  • 快速找出适合继续测试的接口

但它不能保证:

  • 100% 证明对方一定是官方直连
  • 100% 证明某个模型身份绝对真实
  • 替代你自己的业务场景测试
  • 替代长期稳定性观察

所以最合理的理解是:

ProbeKit Lite 是一个前期筛选和验真工具,不是最终裁判。

这个项目适不适合你

如果你只是想找一个聊天页面,这个项目不适合你。

如果你想解决的是下面这些问题,那它就很适合:

  • 我想知道这个中转站真不真
  • 我想知道它是不是只是"表面兼容 OpenAI"
  • 我想知道它有没有偷改参数
  • 我想知道它能不能接入生产业务
  • 我想快速比较几个 API 哪个更靠谱

总结

ProbeKit Lite 本质上不是一个普通的 AI 页面,而是一个用于检测 AI 中转站真实度、兼容性和可用性的工具。

如果你现在正准备接入某个 OpenAI-compatible API,或者正在筛选中转站、代理站、聚合站,那么这个项目的价值会非常直接:

它能帮你少踩坑,更快判断一个接口到底值不值得继续用。

相关推荐
li-xun1 小时前
2026年6月10日博客精选
javascript·人工智能·ui
Ajie'Blog1 小时前
2026年AI安全与治理:从幻觉到系统性欺骗的攻防之战
javascript·人工智能·安全·rpc·json·rag
智码看视界2 小时前
老梁聊全栈系列:Vue3核心与组合式API深度解析
javascript·vue.js·ecmascript
想吃火锅100510 小时前
【leetcode】405.数字转换为十六进制数js
开发语言·javascript·ecmascript
阿猫的故乡13 小时前
Vue过渡动画从入门到装X:淡入淡出、滑动、列表动画、第三方库全搞定
前端·javascript·vue.js
小和尚敲木头13 小时前
vue3 vite动态拼接图片路径
javascript
我叫黑大帅14 小时前
前端如何竖屏固定视口背景
前端·javascript·面试
不会敲代码114 小时前
我花了三天时间,终于把 Cookie、XSS、CSRF 和浏览器存储给整明白了
javascript·面试
贩卖黄昏的熊14 小时前
flex 布局快速梳理
开发语言·javascript·css3·html5