refactor(config): 整合搜索服务配置并移除废弃选项

将原先独立的 Exa 和 Tavily 搜索引擎配置项合并到 `web_search` 配置块中,以实现更统一的管理。同时,移除了已废弃的 `Telemetry` 和部分 `Experimental` 功能配置,简化了整体配置文件结构。

主要变更:
-   `ExaConfig` 和 `TavilyConfig` 被移除,其 API 密钥设置已迁移至 `WebSearchConfig`。
-   删除了 `TelemetryConfig` 及其在主配置中的引用。
-   简化了 `planner` 的自定义提示词逻辑,现在仅通过内容是否为空来判断是否启用。
-   更新了配置文件模板,以反映上述结构调整并移除过时的注释和配置项。
This commit is contained in:
minecraft1024a
2025-08-26 21:10:06 +08:00
parent d64cfc651f
commit 2db42292d2
6 changed files with 10 additions and 52 deletions

View File

@@ -521,7 +521,7 @@ class ActionPlanner:
moderation_prompt_block = "请不要输出违法违规内容,不要输出色情,暴力,政治相关内容,如有敏感内容,请规避。"
custom_prompt_block = ""
if global_config.custom_prompt.planner_custom_prompt_enable and global_config.custom_prompt.planner_custom_prompt_content:
if global_config.custom_prompt.planner_custom_prompt_content:
custom_prompt_block = global_config.custom_prompt.planner_custom_prompt_content
planner_prompt_template = await global_prompt_manager.get_prompt_async("planner_prompt")

View File

@@ -26,7 +26,6 @@ from src.config.official_configs import (
ChineseTypoConfig,
ResponsePostProcessConfig,
ResponseSplitterConfig,
TelemetryConfig,
ExperimentalConfig,
MessageReceiveConfig,
MaimMessageConfig,
@@ -39,9 +38,7 @@ from src.config.official_configs import (
ScheduleConfig,
VideoAnalysisConfig,
DependencyManagementConfig,
ExaConfig,
WebSearchConfig,
TavilyConfig,
AntiPromptInjectionConfig,
PluginsConfig,
WakeUpSystemConfig,
@@ -375,7 +372,6 @@ class Config(ValidatedConfigBase):
chinese_typo: ChineseTypoConfig = Field(..., description="中文错别字配置")
response_post_process: ResponsePostProcessConfig = Field(..., description="响应后处理配置")
response_splitter: ResponseSplitterConfig = Field(..., description="响应分割配置")
telemetry: TelemetryConfig = Field(..., description="遥测配置")
experimental: ExperimentalConfig = Field(..., description="实验性功能配置")
maim_message: MaimMessageConfig = Field(..., description="Maim消息配置")
lpmm_knowledge: LPMMKnowledgeConfig = Field(..., description="LPMM知识配置")
@@ -390,9 +386,7 @@ class Config(ValidatedConfigBase):
anti_prompt_injection: AntiPromptInjectionConfig = Field(default_factory=lambda: AntiPromptInjectionConfig(), description="反提示注入配置")
video_analysis: VideoAnalysisConfig = Field(default_factory=lambda: VideoAnalysisConfig(), description="视频分析配置")
dependency_management: DependencyManagementConfig = Field(default_factory=lambda: DependencyManagementConfig(), description="依赖管理配置")
exa: ExaConfig = Field(default_factory=lambda: ExaConfig(), description="Exa配置")
web_search: WebSearchConfig = Field(default_factory=lambda: WebSearchConfig(), description="网络搜索配置")
tavily: TavilyConfig = Field(default_factory=lambda: TavilyConfig(), description="Tavily配置")
plugins: PluginsConfig = Field(default_factory=lambda: PluginsConfig(), description="插件配置")
wakeup_system: WakeUpSystemConfig = Field(default_factory=lambda: WakeUpSystemConfig(), description="唤醒度系统配置")
monthly_plan_system: MonthlyPlanSystemConfig = Field(default_factory=lambda: MonthlyPlanSystemConfig(), description="月层计划系统配置")

View File

@@ -525,12 +525,6 @@ class ResponseSplitterConfig(ValidatedConfigBase):
enable_kaomoji_protection: bool = Field(default=False, description="启用颜文字保护")
class TelemetryConfig(ValidatedConfigBase):
"""遥测配置类"""
enable: bool = Field(default=True, description="启用")
class DebugConfig(ValidatedConfigBase):
"""调试配置类"""
@@ -539,8 +533,6 @@ class DebugConfig(ValidatedConfigBase):
class ExperimentalConfig(ValidatedConfigBase):
"""实验功能配置类"""
enable_friend_chat: bool = Field(default=False, description="启用好友聊天")
pfc_chatting: bool = Field(default=False, description="启用PFC聊天")
@@ -600,20 +592,6 @@ class DependencyManagementConfig(ValidatedConfigBase):
class ExaConfig(ValidatedConfigBase):
"""EXA搜索引擎配置类"""
api_keys: list[str] = Field(default_factory=lambda: [], description="API密钥列表")
class TavilyConfig(ValidatedConfigBase):
"""Tavily搜索引擎配置类"""
api_keys: list[str] = Field(default_factory=lambda: [], description="API密钥列表")
class VideoAnalysisConfig(ValidatedConfigBase):
"""视频分析配置类"""
@@ -633,6 +611,8 @@ class WebSearchConfig(ValidatedConfigBase):
enable_web_search_tool: bool = Field(default=True, description="启用网络搜索工具")
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密钥列表支持轮询机制")
enabled_engines: list[str] = Field(default_factory=lambda: ["ddg"], description="启用的搜索引擎")
search_strategy: Literal["fallback","single","parallel"] = Field(default="single", description="搜索策略")

View File

@@ -26,7 +26,7 @@ class ExaSearchEngine(BaseSearchEngine):
def _initialize_clients(self):
"""初始化Exa客户端"""
# 从主配置文件读取API密钥
exa_api_keys = config_api.get_global_config("exa.api_keys", None)
exa_api_keys = config_api.get_global_config("web_search.exa_api_keys", None)
# 创建API密钥管理器
self.api_manager = create_api_key_manager_from_config(

View File

@@ -25,7 +25,7 @@ class TavilySearchEngine(BaseSearchEngine):
def _initialize_clients(self):
"""初始化Tavily客户端"""
# 从主配置文件读取API密钥
tavily_api_keys = config_api.get_global_config("tavily.api_keys", None)
tavily_api_keys = config_api.get_global_config("web_search.tavily_api_keys", None)
# 创建API密钥管理器
self.api_manager = create_api_key_manager_from_config(