From fa634be808f012d567df5a7f670bb402424eb032 Mon Sep 17 00:00:00 2001 From: minecraft1024a Date: Wed, 13 Aug 2025 16:48:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0WEB=5FSEARCH=5FTOOL=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=EF=BC=8C=E6=B7=BB=E5=8A=A0config=5Fapi=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=EF=BC=8C=E4=BC=98=E5=8C=96EXA=20API=E5=AF=86=E9=92=A5?= =?UTF-8?q?=E5=92=8C=E7=BB=84=E4=BB=B6=E8=AE=BE=E7=BD=AE=E7=9A=84=E8=AF=BB?= =?UTF-8?q?=E5=8F=96=E6=96=B9=E5=BC=8F=EF=BC=8C=E7=A1=AE=E4=BF=9D=E4=BB=8E?= =?UTF-8?q?=E4=B8=BB=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=EF=BC=8C=E7=A7=BB=E9=99=A4=E5=86=97=E4=BD=99?= =?UTF-8?q?=E7=9A=84=E9=85=8D=E7=BD=AE=E9=83=A8=E5=88=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../built_in/web_search_tool/plugin.py | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/plugins/built_in/web_search_tool/plugin.py b/src/plugins/built_in/web_search_tool/plugin.py index 9f6137c50..cf267468e 100644 --- a/src/plugins/built_in/web_search_tool/plugin.py +++ b/src/plugins/built_in/web_search_tool/plugin.py @@ -17,6 +17,7 @@ from src.plugin_system import ( ToolParamType, PythonDependency ) +from src.plugin_system.apis import config_api # 添加config_api导入 import httpx from bs4 import BeautifulSoup @@ -35,7 +36,8 @@ class WebSurfingTool(BaseTool): def __init__(self, plugin_config=None): super().__init__(plugin_config) - EXA_API_KEY = self.get_config("exa.api_key", None) + # 从主配置文件读取EXA API密钥 + EXA_API_KEY = config_api.get_global_config("exa.api_key", None) # 确保API key是字符串类型 if EXA_API_KEY and isinstance(EXA_API_KEY, str) and EXA_API_KEY.strip() != "None": self.exa = Exa(api_key=str(EXA_API_KEY).strip()) @@ -172,7 +174,8 @@ class URLParserTool(BaseTool): ] def __init__(self, plugin_config=None): super().__init__(plugin_config) - EXA_API_KEY = self.get_config("exa.api_key", None) + # 从主配置文件读取EXA API密钥 + EXA_API_KEY = config_api.get_global_config("exa.api_key", None) # 确保API key是字符串类型 if (not EXA_API_KEY or not isinstance(EXA_API_KEY, str) or @@ -426,33 +429,37 @@ class WEBSEARCHPLUGIN(BasePlugin): config_file_name: str = "config.toml" # 配置文件名 # 配置节描述 - config_section_descriptions = {"plugin": "插件基本信息", "exa": "EXA相关配置", "proxy": "链接本地解析代理配置", "components": "组件设置"} + config_section_descriptions = {"plugin": "插件基本信息", "proxy": "链接本地解析代理配置"} # 配置Schema定义 + # 注意:EXA配置和组件设置已迁移到主配置文件(bot_config.toml)的[exa]和[web_search]部分 config_schema: dict = { "plugin": { "name": ConfigField(type=str, default="WEB_SEARCH_PLUGIN", description="插件名称"), "version": ConfigField(type=str, default="1.0.0", description="插件版本"), "enabled": ConfigField(type=bool, default=False, description="是否启用插件"), }, - "exa":{ - "api_key":ConfigField(type=str, default="None", description="exa的API密钥") - }, "proxy": { "http_proxy": ConfigField(type=str, default=None, description="HTTP代理地址,格式如: http://proxy.example.com:8080"), "https_proxy": ConfigField(type=str, default=None, description="HTTPS代理地址,格式如: http://proxy.example.com:8080"), "socks5_proxy": ConfigField(type=str, default=None, description="SOCKS5代理地址,格式如: socks5://proxy.example.com:1080"), "enable_proxy": ConfigField(type=bool, default=False, description="是否启用代理") }, - "components":{ - "enable_web_search_tool":ConfigField(type=bool, default=True, description="是否启用联网搜索tool"), - "enable_url_tool":ConfigField(type=bool, default=True, description="是否启用URL解析tool") - } + # EXA相关配置已迁移到主配置文件 bot_config.toml 的 [exa] 部分 + # "exa":{ + # "api_key":ConfigField(type=str, default="None", description="exa的API密钥") + # }, + # 组件设置已迁移到主配置文件 bot_config.toml 的 [web_search] 部分 + # "components":{ + # "enable_web_search_tool":ConfigField(type=bool, default=True, description="是否启用联网搜索tool"), + # "enable_url_tool":ConfigField(type=bool, default=True, description="是否启用URL解析tool") + # } } def get_plugin_components(self) -> List[Tuple[ComponentInfo, Type]]: enable_tool =[] - if self.get_config("components.enable_web_search_tool"): + # 从主配置文件读取组件启用配置 + if config_api.get_global_config("web_search.enable_web_search_tool", True): enable_tool.append((WebSurfingTool.get_tool_info(), WebSurfingTool)) - if self.get_config("components.enable_url_tool"): + if config_api.get_global_config("web_search.enable_url_tool", True): enable_tool.append((URLParserTool.get_tool_info(), URLParserTool)) return enable_tool