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工具")
|
||||
tavily_api_keys: list[str] = Field(default_factory=lambda: [], description="Tavily 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="启用的搜索引擎")
|
||||
search_strategy: Literal["fallback", "single", "parallel"] = Field(default="single", description="搜索策略")
|
||||
|
||||
|
||||
@@ -414,13 +414,13 @@ MoFox_Bot(第三方修改版)
|
||||
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)
|
||||
@@ -502,7 +502,7 @@ MoFox_Bot(第三方修改版)
|
||||
except Exception as 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():
|
||||
try:
|
||||
|
||||
@@ -72,7 +72,7 @@ class WEBSEARCHPLUGIN(BasePlugin):
|
||||
logger.error(f"❌ 搜索引擎初始化失败: {e}", exc_info=True)
|
||||
|
||||
# Python包依赖列表
|
||||
python_dependencies: list[PythonDependency] = [
|
||||
python_dependencies: list[PythonDependency] = [ # noqa: RUF012
|
||||
PythonDependency(package_name="asyncddgs", description="异步DuckDuckGo搜索库", optional=False),
|
||||
PythonDependency(
|
||||
package_name="exa_py",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
[inner]
|
||||
version = "7.2.1"
|
||||
version = "7.2.2"
|
||||
|
||||
#----以下是给开发人员阅读的,如果你只是部署了MoFox-Bot,不需要阅读----
|
||||
#如果你想要修改配置文件,请递增version的值
|
||||
@@ -470,6 +470,8 @@ enable_web_search_tool = true # 是否启用联网搜索tool
|
||||
enable_url_tool = true # 是否启用URL解析tool
|
||||
tavily_api_keys = ["None"]# Tavily API密钥列表,支持轮询机制
|
||||
exa_api_keys = ["None"]# EXA API密钥列表,支持轮询机制
|
||||
searxng_instances = [] # SearXNG 实例 URL 列表
|
||||
searxng_api_keys = []# SearXNG 实例 API 密钥列表
|
||||
|
||||
# 搜索引擎配置
|
||||
enabled_engines = ["ddg"] # 启用的搜索引擎列表,可选: "exa", "tavily", "ddg","bing"
|
||||
|
||||
Reference in New Issue
Block a user