feat(search): 添加SearXNG搜索引擎支持
在Web搜索工具中集成了SearXNG作为新的搜索引擎选项。 - 在 `WebSearchConfig` 中添加了 `searxng_instances` 和 `searxng_api_keys` 配置项。 - 更新了配置文件模板以包含新的SearXNG设置。 - 修复了 `main.py` 中管理器异步初始化调用方式的错误。
This commit is contained in:
@@ -548,6 +548,8 @@ class WebSearchConfig(ValidatedConfigBase):
|
|||||||
enable_url_tool: bool = Field(default=True, description="启用URL工具")
|
enable_url_tool: bool = Field(default=True, description="启用URL工具")
|
||||||
tavily_api_keys: list[str] = Field(default_factory=lambda: [], description="Tavily API密钥列表,支持轮询机制")
|
tavily_api_keys: list[str] = Field(default_factory=lambda: [], description="Tavily API密钥列表,支持轮询机制")
|
||||||
exa_api_keys: list[str] = Field(default_factory=lambda: [], description="exa API密钥列表,支持轮询机制")
|
exa_api_keys: list[str] = Field(default_factory=lambda: [], description="exa API密钥列表,支持轮询机制")
|
||||||
|
searxng_instances: list[str] = Field(default_factory=list, description="SearXNG 实例 URL 列表")
|
||||||
|
searxng_api_keys: list[str] = Field(default_factory=list, description="SearXNG 实例 API 密钥列表")
|
||||||
enabled_engines: list[str] = Field(default_factory=lambda: ["ddg"], description="启用的搜索引擎")
|
enabled_engines: list[str] = Field(default_factory=lambda: ["ddg"], description="启用的搜索引擎")
|
||||||
search_strategy: Literal["fallback", "single", "parallel"] = Field(default="single", description="搜索策略")
|
search_strategy: Literal["fallback", "single", "parallel"] = Field(default="single", description="搜索策略")
|
||||||
|
|
||||||
|
|||||||
@@ -414,13 +414,13 @@ MoFox_Bot(第三方修改版)
|
|||||||
manager_init_tasks = []
|
manager_init_tasks = []
|
||||||
|
|
||||||
# 表情管理器
|
# 表情管理器
|
||||||
manager_init_tasks.append(self._safe_init("表情包管理器", get_emoji_manager().initialize))
|
manager_init_tasks.append(self._safe_init("表情包管理器", get_emoji_manager().initialize)())
|
||||||
|
|
||||||
# 情绪管理器
|
# 情绪管理器
|
||||||
manager_init_tasks.append(self._safe_init("情绪管理器", mood_manager.start))
|
manager_init_tasks.append(self._safe_init("情绪管理器", mood_manager.start)())
|
||||||
|
|
||||||
# 聊天管理器
|
# 聊天管理器
|
||||||
manager_init_tasks.append(self._safe_init("聊天管理器", get_chat_manager()._initialize))
|
manager_init_tasks.append(self._safe_init("聊天管理器", get_chat_manager()._initialize)())
|
||||||
|
|
||||||
# 等待所有管理器初始化完成
|
# 等待所有管理器初始化完成
|
||||||
results = await asyncio.gather(*manager_init_tasks, return_exceptions=True)
|
results = await asyncio.gather(*manager_init_tasks, return_exceptions=True)
|
||||||
@@ -502,7 +502,7 @@ MoFox_Bot(第三方修改版)
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"日程表管理器初始化失败: {e}")
|
logger.error(f"日程表管理器初始化失败: {e}")
|
||||||
|
|
||||||
async def _safe_init(self, component_name: str, init_func) -> callable:
|
def _safe_init(self, component_name: str, init_func) -> callable:
|
||||||
"""安全初始化组件,捕获异常"""
|
"""安全初始化组件,捕获异常"""
|
||||||
async def wrapper():
|
async def wrapper():
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ class WEBSEARCHPLUGIN(BasePlugin):
|
|||||||
logger.error(f"❌ 搜索引擎初始化失败: {e}", exc_info=True)
|
logger.error(f"❌ 搜索引擎初始化失败: {e}", exc_info=True)
|
||||||
|
|
||||||
# Python包依赖列表
|
# Python包依赖列表
|
||||||
python_dependencies: list[PythonDependency] = [
|
python_dependencies: list[PythonDependency] = [ # noqa: RUF012
|
||||||
PythonDependency(package_name="asyncddgs", description="异步DuckDuckGo搜索库", optional=False),
|
PythonDependency(package_name="asyncddgs", description="异步DuckDuckGo搜索库", optional=False),
|
||||||
PythonDependency(
|
PythonDependency(
|
||||||
package_name="exa_py",
|
package_name="exa_py",
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
[inner]
|
[inner]
|
||||||
version = "7.2.1"
|
version = "7.2.2"
|
||||||
|
|
||||||
#----以下是给开发人员阅读的,如果你只是部署了MoFox-Bot,不需要阅读----
|
#----以下是给开发人员阅读的,如果你只是部署了MoFox-Bot,不需要阅读----
|
||||||
#如果你想要修改配置文件,请递增version的值
|
#如果你想要修改配置文件,请递增version的值
|
||||||
@@ -470,6 +470,8 @@ enable_web_search_tool = true # 是否启用联网搜索tool
|
|||||||
enable_url_tool = true # 是否启用URL解析tool
|
enable_url_tool = true # 是否启用URL解析tool
|
||||||
tavily_api_keys = ["None"]# Tavily API密钥列表,支持轮询机制
|
tavily_api_keys = ["None"]# Tavily API密钥列表,支持轮询机制
|
||||||
exa_api_keys = ["None"]# EXA API密钥列表,支持轮询机制
|
exa_api_keys = ["None"]# EXA API密钥列表,支持轮询机制
|
||||||
|
searxng_instances = [] # SearXNG 实例 URL 列表
|
||||||
|
searxng_api_keys = []# SearXNG 实例 API 密钥列表
|
||||||
|
|
||||||
# 搜索引擎配置
|
# 搜索引擎配置
|
||||||
enabled_engines = ["ddg"] # 启用的搜索引擎列表,可选: "exa", "tavily", "ddg","bing"
|
enabled_engines = ["ddg"] # 启用的搜索引擎列表,可选: "exa", "tavily", "ddg","bing"
|
||||||
|
|||||||
Reference in New Issue
Block a user