skills/skills.netease.im/error-code-mapper

error-code-mapper

SKILL.md

错误码映射转换工具

将不同供应商的短信错误码统一映射到云信标准错误码体系。

快速开始

基本使用流程

# 步骤 1: 准备云信标准错误码规则文件(已内置)
# 规则文件位置: references/yxe_error_codes.csv

# 步骤 2: 运行映射工具
python3 scripts/error_code_mapper.py <供应商错误码文件> [输出文件路径]

# 示例
python3 scripts/error_code_mapper.py ./supplier_codes.csv ./mapped_result.xlsx
python3 scripts/error_code_mapper.py ./vendor_errors.xlsx

详细功能说明

1. 支持的输入格式

  • CSV 文件: 包含错误码和错误原因的表格
  • XLSX 文件: Excel 格式的错误码文档

输入文件要求:

  • 必须包含错误码列(列名可能为:错误码、code、error_code、errCode 等)
  • 必须包含错误原因列(列名可能为:错误原因、描述、description、msg、message 等)
  • 支持自动识别常见列名

2. 映射逻辑

工具使用 语义相似度匹配 将供应商错误码映射到云信标准:

  1. 关键词匹配: 提取错误原因中的关键词进行匹配
  2. 语义相似度: 使用文本相似度算法找到最匹配的云信错误码
  3. 规则优先级: 内置映射规则优先于自动匹配

映射规则示例:

供应商原始原因 匹配关键词 映射到云信错误码
黑名单/BLACK/投诉拉黑 黑名单、投诉、BLACK YXE:002 黑名单
敏感词/内容审核不通过 敏感词、审核、屏蔽 YXE:003 敏感词
频率超限/发送过快 频率、超限、过快、限流 YXE:004 频率超限
携号转网/运营商变更 携号、转网、变更 YXE:005 携号转网
模板不匹配/格式错误 模板、格式、不匹配 YXE:007 模板不匹配
手机号错误/格式非法 手机号、格式、非法 YXE:010 手机号码错误
关机/停机/空号 关机、停机、空号 YXE:014/YXE:015/YXE:016
网络超时/连接失败 网络、超时、连接 YXE:009 网络问题
成功/已送达/DELIVRD 成功、送达、DELIVRD DELIVRD 成功

3. 输出格式

输出为 XLSX 文件,包含以下列:

列名 说明
供应商原始错误码 输入文件中的错误码
供应商原始错误原因 输入文件中的错误描述
云信规约错误码 映射后的云信标准错误码
云信规约错误原因 云信标准错误描述
匹配置信度 语义匹配的相似度分数 (0-1)
映射方式 匹配方式(关键词/语义/规则)

使用示例

示例 1: 映射 CSV 文件

输入文件 (supplier_codes.csv):

error_code,error_msg
E001,用户手机号在黑名单中
E002,内容包含敏感词汇
E003,发送频率超过限制
E004,网络连接超时
E005,短信发送成功

运行命令:

python3 scripts/error_code_mapper.py supplier_codes.csv result.xlsx

输出结果:

供应商原始错误码 | 供应商原始错误原因 | 云信规约错误码 | 云信规约错误原因 | 匹配置信度 | 映射方式
E001 | 用户手机号在黑名单中 | YXE:002 | 黑名单 | 0.95 | 关键词
E002 | 内容包含敏感词汇 | YXE:003 | 敏感词 | 0.92 | 关键词
E003 | 发送频率超过限制 | YXE:004 | 频率超限 | 0.90 | 关键词
E004 | 网络连接超时 | YXE:009 | 网络问题 | 0.88 | 语义
E005 | 短信发送成功 | DELIVRD | 成功 | 1.00 | 规则

示例 2: 映射 XLSX 文件

python3 scripts/error_code_mapper.py ./vendor_data.xlsx ./output.xlsx

示例 3: 批量处理多个文件

# 处理目录中的所有 CSV/XLSX 文件
for file in ./suppliers/*.csv; do
    python3 scripts/error_code_mapper.py "$file" "./output/$(basename $file .csv).xlsx"
done

自定义映射规则

添加自定义规则

编辑 references/custom_rules.json 文件:

{
  "custom_mappings": [
    {
      "supplier_code": "VENDOR_001",
      "supplier_reason": "自定义错误描述",
      "yxe_code": "YXE:001",
      "yxe_reason": "发送失败"
    }
  ],
  "keyword_rules": [
    {
      "keywords": ["自定义关键词1", "自定义关键词2"],
      "yxe_code": "YXE:001",
      "yxe_reason": "发送失败"
    }
  ]
}

脚本说明

error_code_mapper.py

主要功能:

  • 解析 CSV/XLSX 输入文件
  • 自动识别错误码和错误原因列
  • 使用语义匹配算法映射到云信标准
  • 生成带置信度的映射结果

参数说明:

python3 scripts/error_code_mapper.py <input_file> [output_file] [--rules custom_rules.json]

参数:
  input_file    输入文件路径 (CSV 或 XLSX)
  output_file   输出文件路径 (默认: mapped_result.xlsx)
  --rules       自定义规则文件路径 (可选)

注意事项

  1. 输入文件编码: CSV 文件建议使用 UTF-8 编码
  2. 列名识别: 工具会自动识别常见列名,如果识别失败会提示手动指定
  3. 匹配置信度: 置信度低于 0.6 的映射结果需要人工复核
  4. 未匹配项: 无法匹配的错误码会标记为 "UNKNOWN",需要手动处理

依赖说明

脚本依赖以下 Python 库:

  • pandas: 数据处理
  • openpyxl: Excel 文件读写
  • difflib: 文本相似度计算
  • re: 正则表达式

安装依赖:

pip install pandas openpyxl
Installs
1
First Seen
Apr 21, 2026