🌋【超简单】零门槛!NextChat 一键调用 Google 联网搜索!免费!!

终于蹲到了!早就写好了这个脚本一直用不上。

原理贴:🌋 Gemini 2.0 Flash 已免费支持 Google 联网搜索!API 也支持!!

和 GCP Vertex AI 一样,但 GCP 要 $35/1000次! 无法普及,且走 Vertex AI 渠道的用户群远不如 Google AI Studio 的多。现在 Gemini 2.0 Flash 免费量大管饱 Google 联网搜索集成终于可以飞入寻常百姓家了!

直接上代码

// 保存原始的 fetch 函数
const originalFetch = window.fetch;

// 重写 fetch 函数
window.fetch = async function(...args) {
    const [url, options] = args;
    
    // 检查 URL 是否以 'gemini-2.0-flash-exp' 结尾
    if (url.endsWith('gemini-2.0-flash-exp:streamGenerateContent')) {
        if (options?.method === 'POST') {
            try {
                // 获取请求体
                const body = JSON.parse(options.body);
                
                // 添加 tools 参数
                body.tools = [{
                    "googleSearch": {}
                }];
                
                // 更新请求参数
                options.body = JSON.stringify(body);
            } catch (e) {
                console.log('解析请求体失败:', e);
            }
        }
    }
    
    // 调用原始的 fetch 函数
    return originalFetch.apply(this, args);
};

// 监听发送按钮点击
const sendButton = document.querySelector('button.button_icon-button__VwAMf.chat_chat-input-send__GFQZo');
if (sendButton) {
    console.log('已设置请求拦截器');
}

使用方法:

  1. 先打开 NextChat 聊天界面
  2. 摁一下 F12,在「控制台」粘贴上述函数,回车
  3. 看到显示 已设置请求拦截器 即可

效果:

注意事项:

  1. 需要使用 gemini-2.0-flash-exp 模型,和 AI Stuido 名称一致。
  2. 刷新页面失效,要用就重复上述步骤。
  3. 如果你用搜索很频繁,可以丢到油猴里保持生效。

此外,还有两种更便捷但 有门槛 的方法:

  • 把脚本写到中转的 Cloudflare Worker 里。 用别人的中转也可以。
  • 直接魔改 NextChat 客户端。

但 F12 的方式有手就行,所以,就这样。


最后,硅!基!流!动!点击图片登陆你我各得 14 元! :arrow_lower_left: AFF

SiliconFlow


中转 塞参数的方式已有两个佬写好:

Uni-API:[开源] (支持o1,道德审查)开发了一个适合宝宝体质的 API 转发器 uni-api,目前已经 200+ star - #597,来自 fangyuan99

huggingface部署gemini代理:https://linux.do/t/topic/292029


↑ 上面是 Gemini 原始格式的,用 New API 的 OpenAI 格式的话可以用这位佬的 :arrow_lower_left:

// 保存原始的 fetch 函数
const originalFetch = window.fetch;

// 重写 fetch 函数
window.fetch = async function(...args) {
    // 如果是 POST 请求
    if (args[1]?.method === 'POST') {
        try {
           // 获取请求体
           const body = JSON.parse(args[1].body);
            // 如果包含 messages 数组,说明是目标请求
            if (Array.isArray(body.messages) && body.model.toLowerCase().includes("gemini-2.0-flash-exp")) {
               // 添加 tools 参数
               body.tools = [
             {
                "type": "function",
               "function": {
                "name": "googleSearch"
                }
               }]
             // 更新请求参数
               args[1].body = JSON.stringify(body);
           }
       } catch (e) {
           console.log('解析请求体失败:', e);
       }
   } 
    // 调用原始的 fetch 函数
    return originalFetch.apply(this, args);
};

// 监听发送按钮点击
const sendButton = document.querySelector('button.button_icon-button__VwAMf.chat_chat-input-send__GFQZo');
if (sendButton) {
    console.log('已设置请求拦截器');
187 Likes

前排围观

1 Like

好哇!果然有硅基!我也来! :laughing:
AFF 硅基流动统一登录

3 Likes

前排围观支持一下,open webui能适用的方法希望也加上

2 Likes

有点强啊。佬友

3 Likes

大佬牛逼 這個攔截器是不是丟到 owu也可以用

:tieba_087: :tieba_087: :tieba_087:
这个拦截器是监听 NextChat 的「发送」按钮,OpenWebUI 的话需要改成适配 OI 的,但我没用过 OI 因为我老鸡只有 512M 还挂载了 N 个项目带不动。

需要 @ 使用 OI 的佬且稍微懂一点前端能找到按钮 dom 就行。(具体代码丢给 Claude,会自己写也丢 Claude 因为又快又好)

大佬太牛

2 Likes

原來如此
我可能會考慮建一個本地的或者 用cf
對了能順便教一下 vertax如果要請求網路的格式是什麼樣的嗎

点这里,看看硅基大法好不好
硅基流动统一登录 AFF

1 Like

这个贴 :arrow_lower_left: 用的 CF

前人的輪子


我咋没有

AFF 硅基流动统一登录 我也来, 注册送2000W tokens

NextChat 官方没第一时间更新,你在自定义模型加进去就行

+gemini-2.0-flash-exp

1 Like

有没有大佬写到脚本或者中转的 Cloudflare Worker 里,直接复制到F12的好像用不了

可以试试这种中转,类似 New API :arrow_lower_left:

我的 NextChat 还是 2.12.X 版本的,如果官方最新版更改了前端 Class 可能就需要重写下适配。

佬友 有点强啊。

注册啦,你这个AFF有什么好处吗

1 Like

:tieba_087: 顺手把自己的硅基贴上来了

1 Like