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

@@ -37,7 +37,6 @@ from src.config.official_configs import (
PersonalityConfig,
PlanningSystemConfig,
ProactiveThinkingConfig,
RelationshipConfig,
ResponsePostProcessConfig,
ResponseSplitterConfig,
SleepSystemConfig,
@@ -377,7 +376,6 @@ class Config(ValidatedConfigBase):
database: DatabaseConfig = Field(..., description="数据库配置")
bot: BotConfig = Field(..., description="机器人基本配置")
personality: PersonalityConfig = Field(..., description="个性配置")
relationship: RelationshipConfig = Field(..., description="关系配置")
chat: ChatConfig = Field(..., description="聊天配置")
message_receive: MessageReceiveConfig = Field(..., description="消息接收配置")
normal_chat: NormalChatConfig = Field(..., description="普通聊天配置")

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):
"""主动思考(主动发起对话)功能配置"""