修复代码格式和文件名大小写问题

This commit is contained in:
Windpicker-owo
2025-08-31 20:50:17 +08:00
parent df29014e41
commit 8149731925
218 changed files with 6913 additions and 8257 deletions

View File

@@ -12,7 +12,6 @@ from src.config.config_base import ValidatedConfigBase
"""
class DatabaseConfig(ValidatedConfigBase):
"""数据库配置类"""
@@ -25,7 +24,9 @@ class DatabaseConfig(ValidatedConfigBase):
mysql_password: str = Field(default="", description="MySQL密码")
mysql_charset: str = Field(default="utf8mb4", description="MySQL字符集")
mysql_unix_socket: str = Field(default="", description="MySQL Unix套接字路径")
mysql_ssl_mode: Literal["DISABLED", "PREFERRED", "REQUIRED", "VERIFY_CA", "VERIFY_IDENTITY"] = Field(default="DISABLED", description="SSL模式")
mysql_ssl_mode: Literal["DISABLED", "PREFERRED", "REQUIRED", "VERIFY_CA", "VERIFY_IDENTITY"] = Field(
default="DISABLED", description="SSL模式"
)
mysql_ssl_ca: str = Field(default="", description="SSL CA证书路径")
mysql_ssl_cert: str = Field(default="", description="SSL客户端证书路径")
mysql_ssl_key: str = Field(default="", description="SSL客户端密钥路径")
@@ -56,7 +57,6 @@ class PersonalityConfig(ValidatedConfigBase):
compress_identity: bool = Field(default=True, description="是否压缩身份")
class RelationshipConfig(ValidatedConfigBase):
"""关系配置类"""
@@ -64,7 +64,6 @@ class RelationshipConfig(ValidatedConfigBase):
relation_frequency: float = Field(default=1.0, description="关系频率")
class ChatConfig(ValidatedConfigBase):
"""聊天配置类"""
@@ -78,14 +77,20 @@ class ChatConfig(ValidatedConfigBase):
focus_value: float = Field(default=1.0, description="专注值")
force_focus_private: bool = Field(default=False, description="强制专注私聊")
group_chat_mode: Literal["auto", "normal", "focus"] = Field(default="auto", description="群聊模式")
timestamp_display_mode: Literal["normal", "normal_no_YMD", "relative"] = Field(default="normal_no_YMD", description="时间戳显示模式")
timestamp_display_mode: Literal["normal", "normal_no_YMD", "relative"] = Field(
default="normal_no_YMD", description="时间戳显示模式"
)
enable_proactive_thinking: bool = Field(default=False, description="启用主动思考")
proactive_thinking_interval: int = Field(default=1500, description="主动思考间隔")
The_scope_that_proactive_thinking_can_trigger: str = Field(default="all", description="主动思考可以触发的范围")
proactive_thinking_in_private: bool = Field(default=True, description="主动思考可以在私聊里面启用")
proactive_thinking_in_group: bool = Field(default=True, description="主动思考可以在群聊里面启用")
proactive_thinking_enable_in_private: List[str] = Field(default_factory=list, description="启用主动思考的私聊范围格式platform:user_id为空则不限制")
proactive_thinking_enable_in_groups: List[str] = Field(default_factory=list, description="启用主动思考的聊范围格式platform:group_id为空则不限制")
proactive_thinking_enable_in_private: List[str] = Field(
default_factory=list, description="启用主动思考的聊范围格式platform:user_id为空则不限制"
)
proactive_thinking_enable_in_groups: List[str] = Field(
default_factory=list, description="启用主动思考的群聊范围格式platform:group_id为空则不限制"
)
delta_sigma: int = Field(default=120, description="采用正态分布随机时间间隔")
def get_current_talk_frequency(self, chat_stream_id: Optional[str] = None) -> float:
@@ -247,7 +252,6 @@ class ChatConfig(ValidatedConfigBase):
return None
class MessageReceiveConfig(ValidatedConfigBase):
"""消息接收配置类"""
@@ -255,14 +259,12 @@ class MessageReceiveConfig(ValidatedConfigBase):
ban_msgs_regex: List[str] = Field(default_factory=lambda: list(), description="禁用消息正则列表")
class NormalChatConfig(ValidatedConfigBase):
"""普通聊天配置类"""
willing_mode: str = Field(default="classical", description="意愿模式")
class ExpressionRule(ValidatedConfigBase):
"""表达学习规则"""
@@ -366,13 +368,13 @@ class ToolConfig(ValidatedConfigBase):
history: ToolHistoryConfig = Field(default_factory=ToolHistoryConfig)
"""工具历史记录配置"""
class VoiceConfig(ValidatedConfigBase):
"""语音识别配置类"""
enable_asr: bool = Field(default=False, description="启用语音识别")
class EmojiConfig(ValidatedConfigBase):
"""表情包配置类"""
@@ -387,13 +389,14 @@ class EmojiConfig(ValidatedConfigBase):
enable_emotion_analysis: bool = Field(default=True, description="启用情感分析")
class MemoryConfig(ValidatedConfigBase):
"""记忆配置类"""
enable_memory: bool = Field(default=True, description="启用记忆")
memory_build_interval: int = Field(default=600, description="记忆构建间隔")
memory_build_distribution: list[float] = Field(default_factory=lambda: [6.0, 3.0, 0.6, 32.0, 12.0, 0.4], description="记忆构建分布")
memory_build_distribution: list[float] = Field(
default_factory=lambda: [6.0, 3.0, 0.6, 32.0, 12.0, 0.4], description="记忆构建分布"
)
memory_build_sample_num: int = Field(default=8, description="记忆构建样本数量")
memory_build_sample_length: int = Field(default=40, description="记忆构建样本长度")
memory_compress_rate: float = Field(default=0.1, description="记忆压缩率")
@@ -403,13 +406,14 @@ class MemoryConfig(ValidatedConfigBase):
consolidate_memory_interval: int = Field(default=1000, description="记忆巩固间隔")
consolidation_similarity_threshold: float = Field(default=0.7, description="巩固相似性阈值")
consolidate_memory_percentage: float = Field(default=0.01, description="巩固记忆百分比")
memory_ban_words: list[str] = Field(default_factory=lambda: ["表情包", "图片", "回复", "聊天记录"], description="记忆禁用词")
memory_ban_words: list[str] = Field(
default_factory=lambda: ["表情包", "图片", "回复", "聊天记录"], description="记忆禁用词"
)
enable_instant_memory: bool = Field(default=True, description="启用即时记忆")
enable_llm_instant_memory: bool = Field(default=True, description="启用基于LLM的瞬时记忆")
enable_vector_instant_memory: bool = Field(default=True, description="启用基于向量的瞬时记忆")
class MoodConfig(ValidatedConfigBase):
"""情绪配置类"""
@@ -417,7 +421,6 @@ class MoodConfig(ValidatedConfigBase):
mood_update_threshold: float = Field(default=1.0, description="情绪更新阈值")
class KeywordRuleConfig(ValidatedConfigBase):
"""关键词规则配置类"""
@@ -427,6 +430,7 @@ class KeywordRuleConfig(ValidatedConfigBase):
def __post_init__(self):
import re
if not self.keywords and not self.regex:
raise ValueError("关键词规则必须至少包含keywords或regex中的一个")
if not self.reaction:
@@ -438,7 +442,6 @@ class KeywordRuleConfig(ValidatedConfigBase):
raise ValueError(f"无效的正则表达式 '{pattern}': {str(e)}") from e
class KeywordReactionConfig(ValidatedConfigBase):
"""关键词配置类"""
@@ -446,7 +449,6 @@ class KeywordReactionConfig(ValidatedConfigBase):
regex_rules: list[KeywordRuleConfig] = Field(default_factory=lambda: [], description="正则表达式规则列表")
class CustomPromptConfig(ValidatedConfigBase):
"""自定义提示词配置类"""
@@ -455,7 +457,6 @@ class CustomPromptConfig(ValidatedConfigBase):
planner_custom_prompt_content: str = Field(default="", description="规划器自定义提示词内容")
class ResponsePostProcessConfig(ValidatedConfigBase):
"""回复后处理配置类"""
@@ -489,6 +490,7 @@ class DebugConfig(ValidatedConfigBase):
class ExperimentalConfig(ValidatedConfigBase):
"""实验功能配置类"""
pfc_chatting: bool = Field(default=False, description="启用PFC聊天")
@@ -505,7 +507,6 @@ class MaimMessageConfig(ValidatedConfigBase):
auth_token: list[str] = Field(default_factory=lambda: [], description="认证令牌列表")
class LPMMKnowledgeConfig(ValidatedConfigBase):
"""LPMM知识库配置类"""
@@ -523,7 +524,6 @@ class LPMMKnowledgeConfig(ValidatedConfigBase):
embedding_dimension: int = Field(default=1024, description="嵌入维度")
class ScheduleConfig(ValidatedConfigBase):
"""日程配置类"""
@@ -540,25 +540,28 @@ class DependencyManagementConfig(ValidatedConfigBase):
mirror_url: str = Field(default="", description="镜像URL")
use_proxy: bool = Field(default=False, description="使用代理")
proxy_url: str = Field(default="", description="代理URL")
pip_options: list[str] = Field(default_factory=lambda: ["--no-warn-script-location", "--disable-pip-version-check"], description="Pip选项")
pip_options: list[str] = Field(
default_factory=lambda: ["--no-warn-script-location", "--disable-pip-version-check"], description="Pip选项"
)
prompt_before_install: bool = Field(default=False, description="安装前提示")
install_log_level: str = Field(default="INFO", description="安装日志级别")
class VideoAnalysisConfig(ValidatedConfigBase):
"""视频分析配置类"""
enable: bool = Field(default=True, description="启用")
analysis_mode: str = Field(default="batch_frames", description="分析模式")
frame_extraction_mode: str = Field(default="keyframe", description="抽帧模式keyframe(关键帧), fixed_number(固定数量), time_interval(时间间隔)")
frame_extraction_mode: str = Field(
default="keyframe", description="抽帧模式keyframe(关键帧), fixed_number(固定数量), time_interval(时间间隔)"
)
frame_interval_seconds: float = Field(default=2.0, description="抽帧时间间隔")
max_frames: int = Field(default=8, description="最大帧数")
frame_quality: int = Field(default=85, description="帧质量")
max_image_size: int = Field(default=800, description="最大图像大小")
enable_frame_timing: bool = Field(default=True, description="启用帧时间")
batch_analysis_prompt: str = Field(default="", description="批量分析提示")
# Rust模块相关配置
rust_keyframe_threshold: float = Field(default=2.0, description="关键帧检测阈值")
rust_use_simd: bool = Field(default=True, description="启用SIMD优化")
@@ -575,7 +578,7 @@ class WebSearchConfig(ValidatedConfigBase):
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="搜索策略")
search_strategy: Literal["fallback", "single", "parallel"] = Field(default="single", description="搜索策略")
class AntiPromptInjectionConfig(ValidatedConfigBase):
@@ -611,7 +614,9 @@ class SleepSystemConfig(ValidatedConfigBase):
decay_interval: float = Field(default=30.0, ge=1.0, description="唤醒度衰减间隔(秒)")
angry_duration: float = Field(default=300.0, ge=10.0, description="愤怒状态持续时间(秒)")
angry_prompt: str = Field(default="你被人吵醒了非常生气,说话带着怒气", description="被吵醒后的愤怒提示词")
re_sleep_delay_minutes: int = Field(default=5, ge=1, description="被唤醒后,如果多久没有新消息则尝试重新入睡(分钟)")
re_sleep_delay_minutes: int = Field(
default=5, ge=1, description="被唤醒后,如果多久没有新消息则尝试重新入睡(分钟)"
)
# --- 失眠机制相关参数 ---
enable_insomnia_system: bool = Field(default=True, description="是否启用失眠系统")
@@ -625,11 +630,17 @@ class SleepSystemConfig(ValidatedConfigBase):
# --- 弹性睡眠与睡前消息 ---
enable_flexible_sleep: bool = Field(default=True, description="是否启用弹性睡眠")
flexible_sleep_pressure_threshold: float = Field(default=40.0, description="触发弹性睡眠的睡眠压力阈值,低于该值可能延迟入睡")
flexible_sleep_pressure_threshold: float = Field(
default=40.0, description="触发弹性睡眠的睡眠压力阈值,低于该值可能延迟入睡"
)
max_sleep_delay_minutes: int = Field(default=60, description="单日最大延迟入睡分钟数")
enable_pre_sleep_notification: bool = Field(default=True, description="是否启用睡前消息")
pre_sleep_notification_groups: List[str] = Field(default_factory=list, description="接收睡前消息的群号列表, 格式: [\"platform:group_id1\", \"platform:group_id2\"]")
pre_sleep_prompt: str = Field(default="我准备睡觉了,请生成一句简短自然的晚安问候。", description="用于生成睡前消息的提示")
pre_sleep_notification_groups: List[str] = Field(
default_factory=list, description='接收睡前消息的群号列表, 格式: ["platform:group_id1", "platform:group_id2"]'
)
pre_sleep_prompt: str = Field(
default="我准备睡觉了,请生成一句简短自然的晚安问候。", description="用于生成睡前消息的提示"
)
class MonthlyPlanSystemConfig(ValidatedConfigBase):
@@ -644,30 +655,35 @@ class MonthlyPlanSystemConfig(ValidatedConfigBase):
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="上下文共享组列表")
class MaizoneIntercomConfig(ValidatedConfigBase):
"""Maizone互通组配置"""
enable: bool = Field(default=False, description="是否启用Maizone互通组功能")
groups: List[ContextGroup] = Field(default_factory=list, description="Maizone互通组列表")
class CommandConfig(ValidatedConfigBase):
"""命令系统配置类"""
command_prefixes: List[str] = Field(default_factory=lambda: ['/', '!', '.', '#'], description="支持的命令前缀列表")
command_prefixes: List[str] = Field(default_factory=lambda: ["/", "!", ".", "#"], description="支持的命令前缀列表")
class PermissionConfig(ValidatedConfigBase):
"""权限系统配置类"""
# Master用户配置拥有最高权限无视所有权限节点
master_users: List[List[str]] = Field(default_factory=list, description="Master用户列表格式: [[platform, user_id], ...]")
master_users: List[List[str]] = Field(
default_factory=list, description="Master用户列表格式: [[platform, user_id], ...]"
)