# agent/classifier_dict.yaml
# 问题分类器词典配置文件
# 版本: v1.0
# 最后更新: 2024-12-21

# ===========================================
# 配置元信息
# ===========================================
metadata:
  version: "1.0"
  description: "Citu智能数据问答平台问题分类器关键词配置"
  last_updated: "2024-12-21"
  author: "系统管理员"

# ===========================================
# 权重配置
# ===========================================
weights:
  # ===========================================
  # 关键词权重配置
  # ===========================================
  
  # 业务实体词权重（强业务关键词中除系统指示词外的部分）
  business_entity: 2
  
  # 系统指示词权重（强业务关键词中的系统查询指示词）
  system_indicator: 1
  
  # 查询意图词权重
  query_intent: 1
  
  # SQL模式权重（最高权重）
  sql_pattern: 3
  
  # 聊天关键词权重
  chat_keyword: 1
  
  # 组合加分权重（系统指示词+业务实体词）
  combination_bonus: 3

  # ===========================================
  # 置信度计算配置
  # ===========================================
  
  # 非业务词固定置信度（匹配非业务关键词时直接返回此置信度）
  non_business_confidence: 0.85
  
  # 强业务特征置信度配置（业务实体≥2分 且 查询意图≥1分）
  strong_business_base: 0.8        # 强业务特征基础置信度
  strong_business_increment: 0.05  # 每增加1分总分的置信度增量
  
  # 中等业务特征置信度配置（业务实体≥4分）
  medium_business_base: 0.7        # 中等业务特征基础置信度
  medium_business_increment: 0.03  # 每增加1分业务分的置信度增量
  
  # 聊天特征置信度配置（聊天分≥1 且 业务分=0）
  chat_base_confidence: 0.4        # 聊天特征基础置信度（对应base_confidence）
  chat_confidence_increment: 0.08  # 每增加1分聊天分的置信度增量
  
  # 分类阈值配置
  strong_business_min_score: 2     # 强业务特征最低业务分要求
  strong_business_min_intent: 1    # 强业务特征最低意图分要求
  medium_business_min_score: 4     # 中等业务特征最低业务分要求
  chat_min_score: 1               # 聊天特征最低聊天分要求
  
  # ===========================================
  # 从config.py迁移的分类器配置
  # ===========================================
  
  # 高置信度阈值：当规则分类的置信度 >= 此值时，直接使用规则分类结果，不再调用LLM
  # 建议范围：0.7-0.9，过高可能错过需要LLM辅助的边界情况，过低会增加LLM调用成本
  high_confidence_threshold: 0.7
  
  # 低置信度阈值：当规则分类的置信度 <= 此值时，启用LLM二次分类进行辅助判断
  # 建议范围：0.2-0.5，过高会频繁调用LLM，过低可能错过需要LLM辅助的情况
  # low_confidence_threshold: 0.4  # 未使用 - 已注释
  
  # 最大置信度上限：规则分类计算出的置信度不会超过此值，防止过度自信
  # 建议范围：0.8-1.0，通常设为0.9以保留不确定性空间
  max_confidence: 0.9
  
  # 基础置信度：规则分类的起始置信度，会根据匹配的关键词数量递增
  # 建议范围：0.3-0.6，这是匹配到1个关键词时的基础置信度
  # base_confidence: 0.4  # 未使用，实际使用chat_base_confidence - 已注释
  
  # 置信度增量步长：每匹配一个额外关键词，置信度增加的数值
  # 建议范围：0.05-0.2，过大会导致置信度增长过快，过小则区分度不够
  # confidence_increment: 0.08  # 未使用，实际使用chat_confidence_increment - 已注释
  
  # LLM分类失败时的默认置信度：当LLM调用异常或解析失败时使用
  # 建议范围：0.3-0.6，通常设为中等水平，避免过高或过低的错误影响
  llm_fallback_confidence: 0.5
  
  # 不确定分类的默认置信度：当规则分类无法明确判断时使用
  # 建议范围：0.1-0.3，应设为较低值，表示确实不确定
  uncertain_confidence: 0.2
  
  # LLM业务上下文加载失败时的置信度：用于混合分类模式的置信度比较
  # 建议范围：0.05-0.2，设为极低值表示上下文加载失败的严重性
  llm_error_confidence: 0.1
  
  # 中等置信度阈值：用于三级置信度判断的中间阈值
  # 建议范围：0.5-0.7，位于low_confidence_threshold和high_confidence_threshold之间
  # medium_confidence_threshold: 0.6  # 未使用 - 已注释

# ===========================================
# 强业务关键词（字典结构，保持原有层次）
# ===========================================
strong_business_keywords:
  核心业务实体:
    description: "高速公路服务区基础设施和业务系统"
    keywords:
      - 服务区
      - 档口
      - 商铺
      - 收费站
      - 高速公路
      - 驿美          
      - 驿购          
      - 北区          # 物理分区
      - 南区
      - 西区
      - 东区
      - 两区
      - 停车区
      - 公司
      - 管理公司
      - 运营公司
    
  支付业务:
    description: "支付方式、金额、订单等支付相关业务"
    keywords:
      # 支付方式全称
      - 微信支付
      - 支付宝支付
      - 现金支付
      - 行吧支付
      - 金豆支付
      
      # 业务指标
      - 支付金额
      - 订单数量
      - 营业额
      - 收入
      - 营业收入
      
      # 简化形式
      - 微信
      - 支付宝
      - 现金
      - 行吧
      - 金豆
      
      # 系统字段名
      - wx
      - zfb
      - rmb
      - xs
      - jd
    
  经营品类:
    description: "经营类型、品牌、商业品类"
    keywords:
      - 餐饮
      - 小吃
      - 便利店
      - 整体租赁
      - 驿美餐饮
      - 品牌
      - 经营品类
      - 商业品类
    
  车流业务:
    description: "车辆流量、车型统计等车流相关业务"
    keywords:
      # 流量概念
      - 车流量
      - 车辆数量
      - 客车
      - 货车
      - 过境
      - 危化品
      - 城际
      - 车辆统计
      - 流量统计
      - 车型分布
    
  地理路线:
    description: "高速线路、路段等地理位置信息"
    keywords:
      # 具体线路
      - 大广
      - 昌金
      - 昌栗
      
      # 概念词
      - 线路
      - 路段
      - 路线
      - 高速线路
      - 公路线路
    
  系统查询指示词:
    description: "系统、数据库等查询指示词（特殊权重处理）"
    weight: 1  # 特殊标记：权重低于其他业务实体词
    keywords:
      # 系统指示
      - 当前系统
      - 当前数据库
      - 当前数据
      - 数据库
      - 本系统
      - 系统
      
      # 数据指示
      - 数据库中
      - 数据中
      - 现有数据
      - 已有数据
      - 存储的数据
      
      # 平台指示
      - 平台数据
      - 我们的数据库
      - 这个系统

# ===========================================
# 查询意图关键词
# ===========================================
query_intent_keywords:
  description: "用于识别数据查询意图的关键词"
  keywords:
    # 统计分析
    - 统计
    - 查询
    - 分析
    - 排行
    - 排名
    - 报表
    - 报告
    - 汇总
    - 计算
    - 对比
    - 趋势
    - 占比
    - 百分比
    - 比例
    
    # 聚合函数
    - 最大
    - 最小
    - 最多
    - 最高
    - 最低
    - 平均
    - 总计
    - 合计
    - 累计
    - 求和
    - 求平均
    - 数量
    
    # 输出动作
    - 生成
    - 导出
    - 显示
    - 列出
    - 共有

# ===========================================
# 非业务实体词（一旦匹配立即分类为CHAT）
# ===========================================
non_business_keywords:
  description: "明确的非业务领域问题，最高优先级直接分类"
  
  农产品食物:
    - 荔枝
    - 苹果
    - 西瓜
    - 水果
    - 蔬菜
    - 大米
    - 小麦
    - 橙子
    - 香蕉
    - 葡萄
    - 草莓
    - 樱桃
    - 桃子
    - 梨
    
  技术概念:
    - 人工智能
    - 机器学习
    - 编程
    - 算法
    - 深度学习
    - AI
    - 神经网络
    - 模型训练
    - 数据挖掘
    
  身份询问:
    - 你是谁
    - 你是什么
    - 你叫什么
    - 你的名字
    - 你是什么AI
    - 什么模型
    - 大模型
    - AI助手
    - 助手
    - 机器人
    
  天气相关:
    - 天气
    - 气温
    - 下雨
    - 晴天
    - 阴天
    - 温度
    - 天气预报
    - 气候
    - 降雨
    - 雪天
    
  生活常识:
    - 怎么做饭
    - 如何减肥
    - 健康
    - 医疗
    - 病症
    - 历史
    - 地理
    - 文学
    - 电影
    - 音乐
    - 体育
    - 娱乐
    - 游戏
    - 小说
    - 新闻
    - 政治
    - 战争
    - 足球
    - NBA
    - 篮球
    - 乒乓球
    - 冠军
    - 夺冠
    - 高考
    - 菜谱
    - 食谱
    - 烹饪
    - 联赛
    
  旅游出行:
    - 旅游
    - 景点
    - 门票
    - 酒店
    - 机票
    - 航班
    - 高铁
    - 的士
    
  情绪表达:
    - 伤心
    - 开心
    - 无聊
    - 生气
    - 孤独
    - 累了
    - 烦恼
    - 心情
    - 难过
    - 抑郁
    
  商业金融:
    - 股票
    - 基金
    - 理财
    - 投资
    - 经济
    - 通货膨胀
    - 上市
    
  哲学思考:
    - 人生意义
    - 价值观
    - 道德
    - 信仰
    - 宗教
    - 爱情
    
  地理范围:
    - 全球
    - 全国
    - 亚洲
    - 发展中
    - 欧洲
    - 美洲
    - 东亚
    - 东南亚
    - 南美
    - 非洲
    - 大洋

# ===========================================
# SQL模式（正则表达式）
# ===========================================
sql_patterns:
  description: "用于识别SQL语句特征的正则表达式"
  patterns:
    - pattern: "\\b(select|from|where|group by|order by|having|join|update)\\b"
      description: "SQL关键字匹配"
      case_sensitive: false
      
    - pattern: "\\b(数据库|表名|表|字段名|SQL|sql|database|table)\\b"
      description: "数据库概念词匹配"
      case_sensitive: false

# ===========================================
# 聊天关键词
# ===========================================
chat_keywords:
  description: "倾向于聊天分类的关键词"
  keywords:
    # 问候语
    - 你好啊
    - 谢谢
    - 再见
    
    # 疑问词
    - 怎么样
    - 如何
    - 为什么
    - 什么是
    
    # 帮助请求
    - 介绍
    - 解释
    - 说明
    - 帮助
    - 操作
    - 使用方法
    - 功能
    - 教程
    - 指南
    - 手册
    - 讲解

# ===========================================
# 配置验证规则
# ===========================================
validation:
  required_sections:
    - strong_business_keywords
    - query_intent_keywords
    - non_business_keywords
    - sql_patterns
    - chat_keywords
  
  min_keywords_count:
    strong_business_keywords: 50
    query_intent_keywords: 20
    non_business_keywords: 70
    chat_keywords: 15 