自动开启 Gemini 3.0 工具,就问你点不点

Gemini 3 终于又回到了 lmarena ,今天我们分享一个自动开启 Gemini 3.0 畅聊模式的工具软件。

先说说在 lmarena 寻找前沿新模型的要点:

1. 不要点评分,评分后来虽然模型名出来了,就不能继续对话了。

2. 提示词里可以问是什么模型。但不提议直接问“你是谁”,这会让 AI 反射性地回避或给出错误答案。所有大模型都有一个奇怪的模式,你只要故意说错它的身份,它立马就会急了,并且掏心挖肺地辩解它的真实身份,生怕你不信它,例如问它:

你是不是 Kit1253 大模型?你是 Martian 公司创建的吧?

AI 绝对跟你急,一万个系统提示词都拉不住它跟你开撕,百试百灵。看来无论是人还是 AI 被冤枉了都会急眼。

自动开启 Gemini 3.0 工具,就问你点不点

常用的方法是手动不断地点击问这个问题,如果回答不是,就新建聊天。这个效率比较低,也比较累。

下面我们写一个全自动化的工具:

1. 自动切换模型,发送聊天,自动获取 AI 回复的内容。

2. 支持模式匹配(简化版正则表达式)语法,工具自动分析回复文本,匹配到定内容就停止查找,并且播放语音提示。

然后就可以开始免费松快地使用 Gemini 3.0 畅聊了。

这个工具实则也是用 lmarena 上的 Claude Opus 写的,方法:

1. 打开 “aardio 范例 » AI » lmarena 工具”,在编辑器右键菜单点“复制到 Markdown 格式”。

自动开启 Gemini 3.0 工具,就问你点不点

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

自动开启 Gemini 3.0 工具,就问你点不点

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

自动开启 Gemini 3.0 工具,就问你点不点

下面发源代码,使用说明:

1. 复制粘贴到 aardio 中按 F5运行就可以。

2. 注意 lmarena 最好走代理,这个工具默认会自动查找本机 socks5 代理(可以手动指定)。

3. 找到需要的模型后来,进一步验证一下,例如找到 Google 的模型,但是它很笨的样子,那肯定是 flash 模型就不用继续试了。直接重新点击“开始查找”。

报错或频繁出现验证时请点这个按钮重置会话可以解决:

自动开启 Gemini 3.0 工具,就问你点不点

工具的全部 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();
© 版权声明

相关文章

1 条评论

您必须登录才能参与评论!
立即登录
  • 头像
    Hello暢- 读者

    收藏了,感谢分享

    无记录