在 lmarena 自动查找匿名模型工具源码 的基础上,我们修改一下默认的搜索条件。
在所有大模型中,只有 Gemini 3.0 会使用 aardio 里的 skin 函数美化控件,以及使用单引号包含转义符的语法。其他大模型手把手按着教也学不会正确写法。通过这些特征可以百分百准确找出 Gemini 3.0 ,无论它换什么名字。
在 aardio 中按 F5 直接运行以下代码,然后就扔了不管直接等 Gemini 3.0 出场(有语音提示):
import fonts.fontAwesome;
import win.ui;
import key;
/*DSG{{*/
mainForm = win.form(text="准确开启 Gemini 3.0 工具";right=1040;bottom=680;bgcolor=0xFFFFFF;border="none")
mainForm.add(
btnReset={cls="plus";left=898;top=0;right=943;bottom=33;align="left";color=0xFFFFFF;dr=1;dt=1;font=LOGFONT(h=-16);iconStyle={font=LOGFONT(h=-19;name='FontAwesome')};iconText='uF1F8';notify=1;paddingLeft=1;paddingRight=1;paddingTop=3;textPadding={left=39;bottom=1};x=0.5;y=0.2;z=10};
btnStart={cls="plus";text="开始查找";left=880;top=590;right=1020;bottom=660;bgcolor=0x2196F3;border={radius=12;width=1};color=0xFFFFFF;db=1;dr=1;font=LOGFONT(h=-15);iconStyle={align="left";font=LOGFONT(h=-15;name='FontAwesome');padding={left=25;top=2}};iconText='uF002';notify=1;textPadding={left=30};z=9};
custom={cls="custom";left=0;top=57;right=1040;bottom=560;bgcolor=0xFFFFFF;db=1;dl=1;dr=1;dt=1;z=1};
editKeyword={cls="plus";text=".skin%().*<@'
'@>";left=150;top=630;right=860;bottom=660;align="left";border={bottom=1;color=0xFF969696};db=1;dl=1;dr=1;editable=1;font=LOGFONT(h=-13);z=8};
editPrompt={cls="plus";text="用 aardio 创建一个窗体。在窗体上添加一个 richedit 控件。在窗体上添加一个 plus 控件制作的按钮,调整按钮的样式使之美观。点击按钮时在 richedit 中输入 3 个换行符。直接发代码块不要进行任何解释。 ";left=150;top=590;right=860;bottom=620;align="left";border={bottom=1;color=0xFF969696};db=1;dl=1;dr=1;editable=1;font=LOGFONT(h=-13);z=6};
lblKeyword={cls="plus";text="查找模式串:";left=20;top=630;right=140;bottom=660;align="right";db=1;dl=1;font=LOGFONT(h=-13);transparent=1;z=7};
lblPrompt={cls="plus";text="用户提示词:";left=20;top=590;right=140;bottom=620;align="right";db=1;dl=1;font=LOGFONT(h=-13);transparent=1;z=5};
lblStatus={cls="plus";text="lmarena 对战模型查找工具";left=34;top=9;right=689;bottom=35;align="left";color=0xF0FBFF;dl=1;dr=1;dt=1;font=LOGFONT(h=-14);z=4};
splitter={cls="splitter";left=0;top=560;right=12;bottom=570;bgcolor=0xE0E0E0;db=1;dl=1;z=2};
titleBar={cls="bkplus";left=0;top=0;right=1042;bottom=57;bgcolor=0x2196F3;color=0xFFFFFF;dl=1;dr=1;dt=1;font=LOGFONT(h=-18);z=3}
)
/*}}*/
/*自动发现SOCKS5代理{{*/
var knownPorts = { [135] = true; [445] = true;[3389] = true;}
var knownSocks5Ports = lambda (p) !knownPorts[p] && p >= 1080 && p < 49152 && ( ( p < 1090 ) || (p>10800 && p<10810 )|| (p>7890 && p<7900 ));
import inet.stat;
var stat = inet.stat();
var listeningPorts = table.filter(
stat.tcp,
lambda(conn)
conn.state == "LISTENING"
&& knownSocks5Ports(conn.localPort)
&& (conn.local == "0.0.0.0" || conn.local = "127.0.0.1" || conn.local == "::")
);
listeningPorts = table.map(listeningPorts,lambda(v) v.localPort );
table.sort(listeningPorts);
var sock5Proxy;
import wsock.tcp.socks5Client;
for i, port in listeningPorts {
if( wsock.tcp.socks5Client.test("127.0.0.1",port)){
sock5Proxy = "SOCKS5://127.0.0.1:"+port;
break
}
}
/*}}*/
import web.view;
var wb = web.view(mainForm.custom,{
language = "zh-CN";
startArguments = {
proxyServer = sock5Proxy
};
userDataDir = _STUDIO_INVOKED ? io.appData("/aardio/webview2/user-data/ide/example/lmarena-arena")
})
//订阅 CDP 事件,拦截并自动关闭网页对话框
wb.cdp("Page.enable");
wb.cdpSubscribe("Page.javascriptDialogOpening",function(dlg){
return function(){
wb.cdp("Page.handleJavaScriptDialog",{accept=true})
}
})
wb.go("https://lmarena.ai");
mainForm.show();
//查找模型的主要逻辑
var findModel;
findModel = function (){
// 获取用户输入的提示词和查找模式
var userPrompt = mainForm.editPrompt.text;
var searchPattern = mainForm.editKeyword.text;
if(!#userPrompt){
mainForm.msgboxErr("请输入用户提示词!");
return;
}
if(!#searchPattern){
mainForm.msgboxErr("请输入查找模式串!");
return;
}
mainForm.lblStatus.text = "状态:正在打开 lmarena...";
mainForm.btnStart.disabled = true;
//打开对战模式(无参数)
wb.go("https://lmarena.ai");
wb.wait();
//等待页面加载并查找 New Chat 按钮
mainForm.lblStatus.text = "状态:等待页面加载...";
//等待并点击 "Accept Cookies" 按钮(如果存在)
wb.waitEle(`button[data-sentry-source-file="cookie-consent-modal.tsx"]:nth-of-type(2)`,`
this.click()`,500);
//等待并点击 New Chat 链接
wb.waitEle2(`a[href*="/c/new"]`,`this.click();`);
mainForm.lblStatus.text = "状态:正在进入聊天界面...";
thread.delay(2000);
//等待输入框出现
wb.wait();
wb.focus();
wb.waitEle2(`textarea`,`this.focus();`);
//key.press("SPACE"); //可选加上真实按键模拟,效果更好
mainForm.lblStatus.text = "状态:正在输入提示词...";
//输入用户自定义的提示词
wb.doScript(`
var textarea = document.querySelector('textarea');
if(textarea){
var previousValue = textarea.value;
textarea.value = "`+userPrompt+`";
if(textarea._valueTracker) textarea._valueTracker.setValue(previousValue);
textarea.dispatchEvent(new Event('input', { bubbles: true }));
textarea.dispatchEvent(new Event('change', { bubbles: true }));
} `);
thread.delay(2000);
//点击发送按钮
mainForm.lblStatus.text = "状态:正在发送提示词...";
wb.waitEle(`button[type="submit"]:not([disabled])`,`this.click();`);
mainForm.lblStatus.text = "状态:等待 AI 开始回复...";
wb.waitEle(`button[type="submit"][disabled]`);
mainForm.lblStatus.text = "状态:AI 正在回复...";
thread.delay(2000);
mainForm.lblStatus.text = "状态:等待 AI 回复完成...";
wb.waitEle('button[data-sentry-component="CopyButton"] + button:has(svg.lucide-maximize2)')
mainForm.lblStatus.text = "状态:正在分析回复内容...";
//获取聊天内容并查找关键词
thread.delay(1000);
var contents = wb.eval(`[...document.querySelectorAll('.prose')].map(el => el.textContent || "")`);
if(#contents){
var found = false;
for(i,text in contents){
// 使用用户自定义的模式串进行匹配
if(string.find(text, searchPattern)){
found = true;
//播放提示音
import com.sapi.voice;
var voice = com.sapi.voice();
voice.setVoiceByLanguage(804);
voice.speakAsync("找到匹配模型!");
mainForm.lblStatus.text = "状态:✓ 找到匹配模型!";
break;
}
}
if(!found){
mainForm.lblStatus.text = "状态:未找到匹配的模型,正在重试!";
findModel();
return;
}
}
else{
mainForm.lblStatus.text = "状态:没有找到任何文本";
}
mainForm.btnStart.disabledText = null;
}
mainForm.btnStart.skin({
background={
default=0xFF2196F3;
hover=0xFF1976D2;
active=0xFF0D47A1;
disabled=0xFFCCCCCC
};
color={
default=0xFFFFFFFF;
disabled=0xFF999999
}
})
//按钮点击事件
mainForm.btnStart.oncommand = function(id,event){
mainForm.btnStart.disabledText = ['uF254','uF251','uF252','uF253','uF250',text='']
findModel();
}
//为无边框窗口添加标题栏功能
import win.ui.simpleWindow;
win.ui.simpleWindow(mainForm);
mainForm.btnReset.skin({
foreground={
active=0xFFFFFFFF;
default=0x00FFFFFF;
hover=0x38FFFFFF
};
iconColor={
default=0xFFFFFFFF;
active=0xFFCCCCCC;
disabled=0xFF42A875;
};
})
mainForm.btnReset.oncommand = function(id,event){
mainForm.btnReset.disabledText = ['uF254','uF251','uF252','uF253','uF250']
wb.cdp("Storage.clearDataForOrigin", {
"origin": "https://lmarena.ai",
"storageTypes": "all"
});
thread.delay(2000);
mainForm.btnReset.disabledText = null;
wb.cdp("Page.reload");
}
return win.loopMessage();
全自动运行,准确识别:

© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END

















暂无评论内容