"""
场景特定配置 - 统一填充词库

重要性判断已完全交由 extracat_Pruning.jinja2 提示词 + LLM preserve_tokens 机制承担。
本模块仅保留统一填充词库（filler_phrases），用于识别无意义寒暄/表情/口头禅。
所有场景共用同一份词库，场景差异由 LLM 语义判断处理。
"""

from typing import List, Set
from dataclasses import dataclass, field


@dataclass
class ScenePatterns:
    """场景特定的识别模式（仅保留填充词库）"""
    filler_phrases: Set[str] = field(default_factory=set)


class SceneConfigRegistry:
    """场景配置注册表 - 所有场景共用统一填充词库"""

    BASE_FILLERS: Set[str] = {
        # 基础寒暄
        "你好", "您好", "在吗", "在的", "在呢", "嗯", "嗯嗯", "哦", "哦哦",
        "好的", "好", "行", "可以", "不可以", "谢谢", "多谢", "感谢",
        "拜拜", "再见", "88", "拜", "回见",
        # 口头禅
        "哈哈", "呵呵", "哈哈哈", "嘿嘿", "嘻嘻", "hiahia",
        "额", "呃", "啊", "诶", "唉", "哎", "嗯哼",
        # 确认词
        "是的", "对", "对的", "没错", "好嘞", "收到", "明白", "了解", "知道了",
        # 服务类套话
        "请问", "请稍等", "稍等", "马上", "立即",
        "正在查询", "正在处理", "正在为您", "帮您查一下",
        "还有其他问题吗", "还需要什么帮助", "很高兴为您服务",
        "感谢您的耐心等待", "抱歉让您久等了",
        "已记录", "已反馈", "已转接", "已升级",
        "祝您生活愉快", "欢迎下次咨询",
        # 外呼套话
        "喂", "hello", "打扰了", "不好意思",
        "方便接电话吗", "现在方便吗", "占用您一点时间",
        "我是", "我们是", "我们公司", "我们这边",
        "了解一下", "介绍一下", "简单说一下",
        "考虑考虑", "想一想", "再说", "再看看",
        "不需要", "不感兴趣", "没兴趣", "不用了",
        "没问题", "那就这样", "再联系", "回头聊", "有需要再说",
        # 教育场景套话
        "老师好", "同学们好", "上课", "下课", "起立", "坐下",
        "举手", "请坐", "很好", "不错", "继续",
        "下一个", "下一题", "下一位", "还有吗", "还有问题吗",
        # 标点和符号
        "。。。", "...", "???", "？？？", "!!!", "！！！",
        # 表情符号
        "[微笑]", "[呲牙]", "[发呆]", "[得意]", "[流泪]", "[害羞]", "[闭嘴]",
        "[睡]", "[大哭]", "[尴尬]", "[发怒]", "[调皮]", "[龇牙]", "[惊讶]",
        "[难过]", "[酷]", "[冷汗]", "[抓狂]", "[吐]", "[偷笑]", "[可爱]",
        "[白眼]", "[傲慢]", "[饥饿]", "[困]", "[惊恐]", "[流汗]", "[憨笑]",
        # 网络用语
        "hhh", "hhhh", "2333", "666", "gg", "ok", "OK", "okok",
        "emmm", "emm", "em", "mmp", "wtf", "omg",
    }

    @classmethod
    def get_config(cls, scene: str = "") -> ScenePatterns:
        """所有场景统一返回同一份填充词库"""
        return ScenePatterns(filler_phrases=cls.BASE_FILLERS)
