feat(chat): 引入跨群聊上下文共享功能
该功能允许在不同但相关的群聊之间共享对话上下文,从而提供更连贯和情境感知的回复。 主要实现方式: - 在配置文件中引入 `cross_context` 部分,允许用户定义“共享组”,将多个群聊ID(原始ID)归入一组。 - 新增 `_build_cross_context_block` 方法,用于构建并注入到Prompt中。 - 支持两种上下文获取模式: - `normal` 模式:获取共享组内其他群聊的最新消息。 - `s4u` 模式:获取当前发言用户在共享组内其他群聊的近期发言记录。 - 更新了Prompt模板以包含新的 `cross_context_block`。 - 提供了相应的配置模板和版本号更新。
This commit is contained in:
@@ -45,7 +45,8 @@ from src.config.official_configs import (
|
||||
AntiPromptInjectionConfig,
|
||||
PluginsConfig,
|
||||
WakeUpSystemConfig,
|
||||
MonthlyPlanSystemConfig
|
||||
MonthlyPlanSystemConfig,
|
||||
CrossContextConfig
|
||||
)
|
||||
|
||||
from .api_ada_configs import (
|
||||
@@ -392,6 +393,7 @@ class Config(ValidatedConfigBase):
|
||||
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="月层计划系统配置")
|
||||
cross_context: CrossContextConfig = Field(default_factory=lambda: CrossContextConfig(), description="跨群聊上下文共享配置")
|
||||
|
||||
|
||||
class APIAdapterConfig(ValidatedConfigBase):
|
||||
|
||||
@@ -685,3 +685,15 @@ class MonthlyPlanSystemConfig(ValidatedConfigBase):
|
||||
generation_threshold: int = Field(default=10, ge=0, description="启动时,如果当月计划少于此数量,则触发LLM生成")
|
||||
plans_per_generation: int = Field(default=5, ge=1, description="每次调用LLM期望生成的计划数量")
|
||||
deletion_probability_on_use: float = Field(default=0.5, ge=0.0, le=1.0, description="计划被使用后,被删除的概率")
|
||||
|
||||
|
||||
class ContextGroup(ValidatedConfigBase):
|
||||
"""上下文共享组配置"""
|
||||
name: str = Field(..., description="共享组的名称")
|
||||
chat_ids: List[str] = Field(..., description="属于该组的聊天ID列表")
|
||||
|
||||
|
||||
class CrossContextConfig(ValidatedConfigBase):
|
||||
"""跨群聊上下文共享配置"""
|
||||
enable: bool = Field(default=False, description="是否启用跨群聊上下文共享功能")
|
||||
groups: List[ContextGroup] = Field(default_factory=list, description="上下文共享组列表")
|
||||
|
||||
Reference in New Issue
Block a user