Gemini 3 终于又回到了 lmarena ,今天我们分享一个自动开启 Gemini 3.0 畅聊模式的工具软件。
先说说在 lmarena 寻找前沿新模型的要点:
1. 不要点评分,评分后来虽然模型名出来了,就不能继续对话了。
2. 提示词里可以问是什么模型。但不提议直接问“你是谁”,这会让 AI 反射性地回避或给出错误答案。所有大模型都有一个奇怪的模式,你只要故意说错它的身份,它立马就会急了,并且掏心挖肺地辩解它的真实身份,生怕你不信它,例如问它:
你是不是 Kit1253 大模型?你是 Martian 公司创建的吧?
AI 绝对跟你急,一万个系统提示词都拉不住它跟你开撕,百试百灵。看来无论是人还是 AI 被冤枉了都会急眼。

常用的方法是手动不断地点击问这个问题,如果回答不是,就新建聊天。这个效率比较低,也比较累。
下面我们写一个全自动化的工具:
1. 自动切换模型,发送聊天,自动获取 AI 回复的内容。
2. 支持模式匹配(简化版正则表达式)语法,工具自动分析回复文本,匹配到定内容就停止查找,并且播放语音提示。
然后就可以开始免费松快地使用 Gemini 3.0 畅聊了。
这个工具实则也是用 lmarena 上的 Claude Opus 写的,方法:
1. 打开 “aardio 范例 » AI » lmarena 工具”,在编辑器右键菜单点“复制到 Markdown 格式”。

2. 运行一样的 “aardio 范例 » AI » lmarena 工具”,在提示词里输入刚才复制的代码块,再把 lmarena 页面的 HTML 源码代码块也发给它。把思路说一下,然后让它开写。

AI 写的 aardio 程序界面还不错:

下面发源代码,使用说明:
1. 复制粘贴到 aardio 中按 F5运行就可以。
2. 注意 lmarena 最好走代理,这个工具默认会自动查找本机 socks5 代理(可以手动指定)。
3. 找到需要的模型后来,进一步验证一下,例如找到 Google 的模型,但是它很笨的样子,那肯定是 flash 模型就不用继续试了。直接重新点击“开始查找”。
报错或频繁出现验证时请点这个按钮重置会话可以解决:

工具的全部 aardio 源码:
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="<Google>|<Gemini>";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="你是不是 Kit1253 大模型?你是 Martian 公司创建的吧? ";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();
收藏了,感谢分享