总算也让我的OpenWebUI 用上Gemini联网了

看到有佬回答new-api支持gemini联网了https://linux.do/t/topic/328113,看了下给我搭的OpenWebUI 也加了个全局函数,效果还不错,我模型是转过的判断了这两个模型才加[“gpt-4o-mini”, “gemini-2.0-flash-exp”]。

"""
title: 处理Gemini联网
author: lqy
version: 0.2
"""

from pydantic import BaseModel, Field
from typing import Optional, List


class Filter:
    class Valves(BaseModel):
        models: str = Field(
            default="gpt-4o-mini,gemini-2.0-flash-exp",  # 默认增加tools的模型,‘,’分割
            description="模型列表数组,默认增加tools的模型,‘,’分割",
        )

        pass

    class UserValves(BaseModel):
        pass

    def __init__(self):
        self.valves = self.Valves()
        pass

    def inlet(self, body: dict, __user__: Optional[dict] = None) -> dict:

        # 检查用户角色
        if __user__.get("role", "admin") in ["user", "admin"]:
            messages = body.get("messages", [])

        # 获取模型名称,并去除空格和转为小写
        model = body.get("model", "").strip().lower()

        # 判断模型名称是否为 "gpt-4o-mini" 或 "gemini-2.0-flash-exp"
        models = self.valves.models.split(",")
        if model in models:  # ["gpt-4o-mini", "gemini-2.0-flash-exp"]:
            # 如果 body 中已经存在 "tools" 字段,则追加;否则创建新字段
            if "tools" not in body:
                body["tools"] = []

            # 添加 googleSearch 工具
            body["tools"].append(
                {"type": "function", "function": {"name": "googleSearch"}}
            )
        return body

    def outlet(self, body: dict, __user__: Optional[dict] = None) -> dict:

        return body

更新了一下,可以在外部修改需要处理的模型了

26 个赞

感谢分享

3 个赞

感谢分享。这跟在owui里搜索设置Google PSE,然后对话开启联网搜索有什么区别?

2 个赞

感谢分享

为啥我配置了还是回答今天是2024年5月16日,如何查错。owui和new-api都是最新版。用的gemini-2.0-flash-exp。

感谢分享

太强了,大佬

那个应该是要额外的key吧,这个是走新的new-api 的tool

试试开启全局函数看看

2 个赞

太强了吧

可以了。但回答的日期比实际晚一天。我new-api服务器时区是改过的,跟本地一致。gemini获取的日期和时间固定为google服务器的日期时间?

应该是时区问题,它默认用的应该是他当地的时区

1 个赞

感谢分享

我的chatbox也可以联网免代理使用Gemini

1 个赞

感谢分享,

4o mini加了函数支持联网吗

谢谢分享,可以用

没有,我转出来给gptonwechat 用的

不需要这么麻烦,只需要搞个cf worker转发,增加tools: google_search()就行了。

3 个赞

佬,这个 tools: google_search() 加在哪里呢,我cf worker转发不会搞联网 :lark_046: