refactor(context): 简化跨上下文功能,移除通用共享组模式

移除了基于白名单/黑名单的通用上下文共享组(ContextGroup)功能。此模式实现复杂且与S4U模式功能重叠,移除后可大幅简化配置项和内部逻辑。

主要变更:
- 从配置中删除了 `ContextGroup` 模型和 `cross_context.groups` 列表。
- 删除了 `build_cross_context_normal` 和 `get_context_group` 函数。
- 保留并增强了S4U(Search for User)模式,为其增加了更详细的日志和健壮性检查。
- `get_intercom_group_context` 函数被调整为专门服务于 `maizone_context_group`。

BREAKING CHANGE: 移除了 `cross_context.groups` 配置项及相关的通用上下文共享组功能。请迁移至S4U模式以实现跨上下文需求。
This commit is contained in:
minecraft1024a
2025-11-28 20:39:16 +08:00
parent 78a91c3c42
commit a8f899a22f
3 changed files with 45 additions and 254 deletions

View File

@@ -702,28 +702,6 @@ class WebSearchConfig(ValidatedConfigBase):
search_strategy: Literal["fallback", "single", "parallel"] = Field(default="single", description="搜索策略")
class ContextGroup(ValidatedConfigBase):
"""
上下文共享组配置
定义了一个聊天上下文的共享范围和规则。
"""
name: str = Field(..., description="共享组的名称,用于唯一标识一个共享组")
mode: Literal["whitelist", "blacklist"] = Field(
default="whitelist",
description="共享模式。'whitelist'表示仅共享chat_ids中列出的聊天'blacklist'表示共享除chat_ids中列出的所有聊天。",
)
default_limit: int = Field(
default=5,
description="'blacklist'模式下,对于未明确指定数量的聊天,默认获取的消息条数。",
)
chat_ids: list[list[str]] = Field(
...,
description='定义组内成员的列表。格式为 [["type", "id", "limit"(可选)]]。type为"group""private"id为群号或用户IDlimit为可选的消息条数。',
)
class MaizoneContextGroup(ValidatedConfigBase):
"""QQ空间专用互通组配置"""
@@ -739,8 +717,6 @@ class CrossContextConfig(ValidatedConfigBase):
enable: bool = Field(default=False, description="是否启用跨群聊上下文共享功能")
# --- Normal模式: 共享组配置 ---
groups: list[ContextGroup] = Field(default_factory=list, description="上下文共享组列表")
# --- S4U模式: 用户中心上下文检索 ---
s4u_mode: Literal["whitelist", "blacklist"] = Field(
default="whitelist",