前面大佬发了 给openwebui的gemini加上读取网页 联网和代码执行适用于one-hub,我自己用的站内佬的uni-api [开源] (支持o1,道德审查)开发了一个适合宝宝体质的 API 转发器 uni-api,目前已经 200+ star,于是请Claude将大佬的函数改了一下,方便使用uni-api的佬们使用。
实现方式有差别,uni-api提供了gemini原生的搜索功能,但要在模型后面加-search,在open-webui中使用搜索的话要切换不同的模型,不够优雅。此函数要做的就是在点下标签使用搜索的时候自动为当前模型加上-research,省去了切换模型的步骤。
此时会自动为2.5-flash加上-research参数
注意:要在uni-api中添加-search模型才能成功调用。
uni-api也是支持读取网页的
函数如下:
"""
title: 联网搜索
description: 原生联网搜索
"""
from pydantic import BaseModel, Field
from typing import Optional, List, Dict, Any
class Filter:
class Valves(BaseModel):
priority: int = Field(default=100, description="优先级")
pass
def __init__(self):
self.valves = self.Valves()
self.toggle = True
self.icon = """data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3Ryb2tlLXdpZHRoPSIxLjc1IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgY2xhc3M9InNpemUtNSI+PHBhdGggc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNMTIgMjFhOS4wMDQgOS4wMDQgMCAwIDAgOC43MTYtNi43NDdNMTIgMjFhOS4wMDQgOS4wMDQgMCAwIDEtOC43MTYtNi43NDdNMTIgMjFjMi40ODUgMCA0LjUtNC4wMyA0LjUtOVMxNC40ODUgMyAxMiAzbTAgMThjLTIuNDg1IDAtNC41LTQuMDMtNC41LTlTOS41MTUgMyAxMiAzbTAgMGE4Ljk5NyA4Ljk5NyAwIDAgMSA3Ljg0MyA0LjU4Mk0xMiAzYTguOTk3IDguOTk3IDAgMCAwLTcuODQzIDQuNTgybTE1LjY4NiAwQTExLjk1MyAxMS45NTMgMCAwIDEgMTIgMTAuNWMtMi45OTggMC01Ljc0LTEuMS03Ljg0My0yLjkxOG0xNS42ODYgMEE4Ljk1OSA4Ljk1OSAwIDAgMSAyMSAxMmMwIC43NzgtLjA5OSAxLjUzMy0uMjg0IDIuMjUzbTAgMEExNy45MTkgMTcuOTE5IDAgMCAxIDEyIDE2LjVjLTMuMTYyIDAtNi4xMzMtLjgxNS04LjcxNi0yLjI0N20wIDBBOS4wMTUgOS4wMTUgMCAwIDEgMyAxMmMwLTEuNjA1LjQyLTMuMTEzIDEuMTU3LTQuNDE4Ij48L3BhdGg+PC9zdmc+"""
pass
def inlet(self, body: dict, user: Optional[dict] = None) -> dict:
model_name = body.get("model")
if isinstance(model_name, str):
if model_name.startswith("gemini"):
# 检查模型名称是否已经包含"-search"后缀
if not model_name.endswith("-search"):
# 在模型名称后面添加"-search"后缀
body["model"] = model_name + "-search"
return body
'''