diff --git a/src/config/config.py b/src/config/config.py index e41214adb..cf9d5f967 100644 --- a/src/config/config.py +++ b/src/config/config.py @@ -41,6 +41,7 @@ from src.config.official_configs import ( DependencyManagementConfig, ExaConfig, WebSearchConfig, + TavilyConfig, ) from .api_ada_configs import ( @@ -360,6 +361,7 @@ class Config(ConfigBase): dependency_management: DependencyManagementConfig = field(default_factory=lambda: DependencyManagementConfig()) exa: ExaConfig = field(default_factory=lambda: ExaConfig()) web_search: WebSearchConfig = field(default_factory=lambda: WebSearchConfig()) + tavily: TavilyConfig = field(default_factory=lambda: TavilyConfig()) @dataclass diff --git a/src/config/official_configs.py b/src/config/official_configs.py index 560479cb7..4918a1bdd 100644 --- a/src/config/official_configs.py +++ b/src/config/official_configs.py @@ -940,8 +940,16 @@ class DependencyManagementConfig(ConfigBase): class ExaConfig(ConfigBase): """EXA搜索引擎配置类""" - api_key: str = "None" - """EXA API密钥,用于联网搜索功能。请填入有效的EXA API密钥""" + api_keys: list[str] = field(default_factory=lambda: []) + """EXA API密钥列表,支持轮询机制""" + + +@dataclass +class TavilyConfig(ConfigBase): + """Tavily搜索引擎配置类""" + + api_keys: list[str] = field(default_factory=lambda: []) + """Tavily API密钥列表,支持轮询机制""" @dataclass @@ -986,6 +994,12 @@ class WebSearchConfig(ConfigBase): enable_web_search_tool: bool = True """是否启用联网搜索工具""" - + enable_url_tool: bool = True - """是否启用URL解析工具""" \ No newline at end of file + """是否启用URL解析工具""" + + enabled_engines: list[str] = field(default_factory=lambda: ["ddg"]) + """启用的搜索引擎列表,可选: 'exa', 'tavily', 'ddg'""" + + search_strategy: str = "single" + """搜索策略: 'single'(使用第一个可用引擎), 'parallel'(并行使用所有启用的引擎), 'fallback'(按顺序尝试,失败则尝试下一个)""" \ No newline at end of file