star5o
February 28, 2025, 6:38pm
1
项目地址 :GitHub | 网站1(vercel域名) | 网站2(我的域名)
受各位大佬启发并参考官方API文档,开发了一个基于是否支持官方参数的逆向检测工具。该工具检测失败的API极大概率是逆向的。
目前项目处于初步阶段,暂时需要人工对比响应结果与示例进行判断。
使用方法
选择模型提供商、检测参数,输入模型名称、base URL、key,点击开始检测。
对比示例与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
增加推理模型的支持
增加vercel等平台一键部署
增加docker镜像一键run
实现自动化判断是否逆向
实现与Uptime Kuma联动,实现持续监测
参考 :https://linux.do/t/topic/256917 、https://linux.do/t/topic/195972 、https://linux.do/t/topic/282026 等等。
75 Likes
star5o
February 28, 2025, 6:49pm
3
项目预告:正在开发LLM-Fingerprint-Check,以解决reverse-check无法检测模型掺假(如用GPT-4omini冒充GPT-4o)。
7 Likes
Harp
(Harp)
February 28, 2025, 8:20pm
5
6 Likes
VTSTG233
(VTSTG233)
March 6, 2025, 7:01am
8
太强了佬 因为一直都是Postman/APIfox进行调用,佬的这个也蛮方便的了,不过前段时间我好像测了其他家,有的Claude,居然会显示2378输入,但是内容却是逆向道歉的,比官的多了一个Token,我怀疑后续有人会不断校准Tokenizer的返回,接近官,所以,这个只是我的感觉,后续会不会出现这批人呢,我就不太清楚了,所以后续我想想有木有其他新检测方法
3 Likes
VTSTG233
(VTSTG233)
March 6, 2025, 7:31am
10
意思就是 官的是2377的输入Token量,然后呢 2378和官的2377的Token量对不上这样咩
2 Likes
star5o
March 6, 2025, 7:48am
11
是这个佬的方法吗
再次接贴,Claude API 我的测官/逆向区分方法,仅供参考
目前我测试max_tokens参数和stop参数就能检测出来所有的逆向站,后续可能会增加这个佬的方法吧
1 Like
star5o
March 6, 2025, 7:50am
12
可以看一下我项目的参数解释 ,和Tokenizer无关哦。
1 Like
佬的方法很好用,但是我遇到一个问题,我测出来一家claude官转max_token=10,但是stop参数过不了,这种情况怎么判断呢?
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
NTFS
(微软中国)
March 6, 2025, 12:34pm
19
这里的逆向检查,是指通过爬虫调用WebAPI而不是官方的OpenAPI 吗?
GoGo
(GoGo)
March 6, 2025, 12:39pm
20
这些方法对于含推理的模型也有效吗?例如我用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不支持的情况。