refactor(chat): 重构关系系统并优化消息打断处理机制

- 移除独立的RelationshipConfig,将关系追踪参数整合到AffinityFlowConfig
- 实现消息打断后立即重新处理流程,提升交互响应性
- 优化关系追踪系统,添加概率筛选和超时保护机制
- 改进机器人自引用处理,确保消息内容正确显示
- 增强用户信息提取逻辑,兼容多种消息格式
- 添加异步后台任务处理,避免阻塞主回复流程
- 调整兴趣评分阈值和权重参数,优化消息匹配精度
This commit is contained in:
Windpicker-owo
2025-10-08 22:33:10 +08:00
parent b3ae8e4f1a
commit dd1444cc41
13 changed files with 368 additions and 107 deletions

View File

@@ -99,12 +99,6 @@ class PersonalityConfig(ValidatedConfigBase):
)
class RelationshipConfig(ValidatedConfigBase):
"""关系配置类"""
enable_relationship: bool = Field(default=True, description="是否启用关系")
relation_frequency: float = Field(default=1.0, description="关系频率")
class ChatConfig(ValidatedConfigBase):
"""聊天配置类"""
@@ -132,8 +126,7 @@ class ChatConfig(ValidatedConfigBase):
interruption_min_probability: float = Field(
default=0.1, ge=0.0, le=1.0, description="最低打断概率(即使达到较高打断次数,也保证有此概率的打断机会)"
)
interruption_afc_reduction: float = Field(default=0.05, ge=0.0, le=1.0, description="每次连续打断降低的afc阈值数值")
# DEPRECATED: interruption_probability_factor (已废弃的配置项)
# 新的线性概率模型不再需要复杂的概率因子
# 保留此字段是为了向后兼容,现有配置文件不会报错
@@ -698,6 +691,12 @@ class AffinityFlowConfig(ValidatedConfigBase):
mention_bot_interest_score: float = Field(default=0.6, description="提及bot的兴趣分")
base_relationship_score: float = Field(default=0.5, description="基础人物关系分")
# 关系追踪系统参数
enable_relationship_tracking: bool = Field(default=True, description="是否启用关系追踪系统")
relationship_tracking_probability: float = Field(default=0.7, description="关系追踪执行概率 (0.0-1.0)用于减少API调用压力")
relationship_tracking_interval_min: int = Field(default=300, description="关系追踪最小间隔时间(秒)")
relationship_tracking_cooldown_hours: float = Field(default=1.0, description="同一用户关系追踪冷却时间(小时)")
class ProactiveThinkingConfig(ValidatedConfigBase):
"""主动思考(主动发起对话)功能配置"""