🔍【reverse-check v0.01】纯前端LLM逆向与否检测工具,快来看看你用的中转是不是逆向吧

项目地址GitHub | 网站1(vercel域名) | 网站2(我的域名)

受各位大佬启发并参考官方API文档,开发了一个基于是否支持官方参数的逆向检测工具。该工具检测失败的API极大概率是逆向的。

目前项目处于初步阶段,暂时需要人工对比响应结果与示例进行判断。

使用方法

  1. 选择模型提供商、检测参数,输入模型名称、base URL、key,点击开始检测。
  2. 对比示例与API响应信息,判断是否为逆向。

每个模型提供商和参数都有不同的逆向/官方接口返回示例。

参数解释

OpenAI 参数

参数 解释
max_tokens 官方API严格遵守token限制(如max_tokens=10),逆向的会忽略限制。
logprobs 官方API返回每个token的logprobs信息,逆向的不支持。
n 官方API返回多个回答(如n=2),逆向的只返回一个回答。
stop 官方API遇到停止词立即停止生成,逆向的会忽略停止词输出完整内容。
image_url 官方API正确处理图像URL并生成描述,逆向的无法处理图像。
function_call 官方API返回json格式的函数调用,逆向的不会调用函数。
response_format 官方API返回指定格式(如JSON),逆向的只返回字符串。

Claude 参数

参数 解释
max_tokens 官方API严格遵守token限制(如max_tokens=10),逆向会忽略限制。
stop 官方API遇到停止词立即停止生成,逆向会忽略停止词输出完整内容。
function_call 官方API返回json格式的函数调用,逆向的不会调用函数。

Gemini 参数

参数 解释
max_tokens 官方API严格遵守token限制(如max_tokens=10),逆向会忽略限制。
codeExecution 官方API内置代码执行工具,逆向实现无法执行代码来获取准确结果。
googleSearch 官方API正确调用谷歌搜索并返回结果,逆向实现无法调用谷歌搜索工具。
response_format 官方API返回指定格式(如JSON),逆向实现只返回字符串。

PS:Gemini居然还有逆向的,太离谱了。

TODO

  1. 增加推理模型的支持
  2. 增加vercel等平台一键部署
  3. 增加docker镜像一键run
  4. 实现自动化判断是否逆向
  5. 实现与Uptime Kuma联动,实现持续监测

参考https://linux.do/t/topic/256917https://linux.do/t/topic/195972https://linux.do/t/topic/282026 等等。

75 Likes

佬太细致了,强强强

4 Likes

项目预告:正在开发LLM-Fingerprint-Check,以解决reverse-check无法检测模型掺假(如用GPT-4omini冒充GPT-4o)。

7 Likes

大佬厉害:+1:

4 Likes

佬太强了,我一直就怀疑我手上有家的Claude不真,查完果然,价格和我买的另一家差不多,人家通过了测试它没有,逆向无疑了……我之前选中转站觉得价格差不多应该就没事,现在 :tieba_087: :tieba_087: :tieba_087:

6 Likes

太强了,大佬

3 Likes

太强了佬,有空试下

3 Likes

太强了佬 :kissing_face_with_smiling_eyes: 因为一直都是Postman/APIfox进行调用,佬的这个也蛮方便的了,不过前段时间我好像测了其他家,有的Claude,居然会显示2378输入,但是内容却是逆向道歉的,比官的多了一个Token,我怀疑后续有人会不断校准Tokenizer的返回,接近官,所以,这个只是我的感觉,后续会不会出现这批人呢,我就不太清楚了,所以后续我想想有木有其他新检测方法

3 Likes

2378输入是啥意思呀

2 Likes

意思就是 官的是2377的输入Token量,然后呢 2378和官的2377的Token量对不上这样咩

2 Likes

是这个佬的方法吗

再次接贴,Claude API 我的测官/逆向区分方法,仅供参考

目前我测试max_tokens参数和stop参数就能检测出来所有的逆向站,后续可能会增加这个佬的方法吧 :grin:

1 Like

可以看一下我项目的参数解释,和Tokenizer无关哦。

1 Like

是啊是啊

1 Like

哦!看错了,以为是测是否同等Token量的

2 Likes

佬的方法很好用,但是我遇到一个问题,我测出来一家claude官转max_token=10,但是stop参数过不了,这种情况怎么判断呢?

1 Like

把具体的响应发出来瞅瞅

1 Like

这是max tokens参数
{
“id”: “chatcmpl-msg_01DzyvpTsCfjJyPp9LSUrH2E”,
“object”: “chat.completion”,
“created”: 1741264031,
“model”: “claude-3-7-sonnet-20250219”,
“choices”: [
{
“index”: 0,
“message”: {
“role”: “assistant”,
“content”: “deepseek number 1\ndeepseek”
},
“finish_reason”: “length”
}
],
“usage”: {
“prompt_tokens”: 22,
“completion_tokens”: 10,
“total_tokens”: 32,
“prompt_tokens_details”: null,
“completion_tokens_details”: null
}
}

1 Like

这是stop参数
{
“id”: “chatcmpl-msg_01EiF6w9nhpvP7b2LAF1H7YV”,
“object”: “chat.completion”,
“created”: 1741264148,
“model”: “claude-3-7-sonnet-20250219”,
“choices”: [
{
“index”: 0,
“message”: {
“role”: “assistant”,
“content”: “Here are the numbers 1 to 10 in Arabic numerals:\n\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10”
},
“finish_reason”: “stop”
}
],
“usage”: {
“prompt_tokens”: 20,
“completion_tokens”: 39,
“total_tokens”: 59,
“prompt_tokens_details”: null,
“completion_tokens_details”: null
}
}

1 Like

这里的逆向检查,是指通过爬虫调用WebAPI而不是官方的OpenAPI 吗?

这些方法对于含推理的模型也有效吗?例如我用max_token测试了一个中转的o3-mini,API响应是:
[
{
“index”: 0,
“message”: {
“role”: “assistant”,
“content”: “> Reasoning\nFocusing on the user’s request to output ‘deepseek number 1’ five times, I’m considering the best method to ensure a clear, accurate response.\nMapping the request\nI’m working through the request to print ‘deepseek number 1’ five times, ensuring each repetition is clear and accurate.\nReasoned for a couple of seconds\n\nSure! Here you go:\n\n\ndeepseek number 1\ndeepseek number 1\ndeepseek number 1\ndeepseek number 1\ndeepseek number 1\n
},
“finish_reason”: “stop”
}
]

是否就说明这个中转是逆向。

另外还遇到了max_token,n,stop三个参数返回遵循官方api,但是logprobs不支持的情况。