mobile-cmiit-query
SKILL.md
手机入网 ID 查询 Skill
用于查询手机机型的入网许可证号(CMIIT ID)。
Agent 执行指令
当用户触发此 skill 时,Agent 必须执行以下操作:
工作流程
用户发送机型列表(文字或文件)
↓
Agent 创建输入文件(如果是文字形式)
↓
执行查询脚本
↓
生成 Excel 结果文件
↓
发送结果文件给用户
步骤 1:接收输入
情况 A:用户发送文字列表
- 提取文字中的机型名称
- 创建临时 txt 文件,每行一个机型
情况 B:用户上传文件
- 确认文件格式为 xlsx 或 txt
- 文件应包含"机型"列,或每行一个机型名称
步骤 2:创建输入文件(文字形式时)
如果用户发送的是文字列表,创建临时文件:
echo "机型
iPhone 17 Pro
iPhone 17 Pro Max
华为 Mate 80 Pro Max" > ~/.openclaw/workspace/models_input.txt
步骤 3:执行查询脚本
运行以下命令:
python3 ~/.openclaw/workspace/skills/mobile-cmiit-query/scripts/query_cmiit.py <输入文件路径> <输出文件路径>
步骤 4:返回结果
- 将生成的输出文件发送给用户
- 报告查询摘要(查询数量、成功数量等)
- 说明匹配度较低的结果需要人工核实
功能概述
本 skill 提供以下功能:
- 自动品牌识别:根据机型名称自动识别手机品牌
- 在线数据查询:从 MobileModels GitHub 仓库查询最新数据
- 智能匹配:根据机型关键词匹配入网 ID
- 批量处理:支持一次查询多个机型
脚本说明
主要脚本:scripts/query_cmiit.py
核心功能模块
-
detect_brand():自动识别手机品牌
- 支持小米、华为、OPPO、vivo、苹果、三星等主流品牌
- 根据机型名称关键词匹配
-
fetch_brand_data():获取品牌数据
- 从 GitHub Raw 获取品牌 markdown 文件
- 支持缓存和错误处理
-
parse_model_data():解析机型数据
- 解析 markdown 文件中的机型信息
- 提取机型名称和入网 ID
-
search_models():搜索匹配机型
- 根据关键词在品牌数据中搜索
- 返回匹配的机型和入网 ID
依赖要求
- Python 3.7+
- pandas
- requests
安装依赖:
pip install pandas requests
输入方式
方式 1:直接发送文字列表(推荐)
用户直接发送机型列表,Agent 自动处理:
示例输入:
查询入网ID:
1. iPhone 17 Pro
2. iPhone 17 Pro Max
3. 华为Mate 80 Pro Max
Agent 处理:
- 提取机型名称
- 创建临时输入文件
- 执行查询
- 返回 Excel 结果
方式 2:上传 Excel 文件(.xlsx)
- 第一列应为"机型"列,包含机型名称
- 例如:小米 14、华为 Mate 60、iPhone 15 等
方式 3:上传文本文件(.txt)
- 每行一个机型名称
- 例如:
小米 14 华为 Mate 60 iPhone 15
输出格式
输出为 Excel 文件(.xlsx),包含四列:
- 机型:输入的机型名称
- 查询到的机型:从数据库中匹配到的完整机型名称
- 入网ID:查询到的入网许可证号
- 匹配度:匹配分数(数值越高表示匹配度越好,1000为完全匹配)
入网ID格式说明
非 Apple 品牌(CMIIT ID):
- 格式:字母+数字组合,如
PJH110、PKM110 - 示例:OPPO Reno11 → PJH110、OPPO Reno13 → PKM110
Apple 品牌(内部型号标识符):
- 格式:
iPhoneXX,X或iPadXX,X,如iPhone16,1、iPad13,18 - 示例:
- iPhone 15 Pro → iPhone16,1
- iPhone 15 Pro Max → iPhone16,2
- iPhone 16 → iPhone17,3
- iPad (第 10 代) → iPad13,18
- 注意:Apple 不使用 CMIIT ID,而是使用内部型号标识符
支持的品牌
| 品牌 | 文件名 |
|---|---|
| 小米/红米 | xiaomi_cn.md |
| 华为 | huawei_cn.md |
| 荣耀 | honor_cn.md |
| OPPO | oppo_cn.md |
| 一加 | oneplus.md |
| 真我 | realme_cn.md |
| vivo/iQOO | vivo_cn.md |
| 苹果 | apple_cn.md |
| 三星 | samsung_cn.md |
| 魅族 | meizu.md |
| 联想 | lenovo_cn.md |
| 摩托罗拉 | motorola_cn.md |
| 努比亚 | nubia.md |
| 中兴 | zte_cn.md |
| 索尼 | sony_cn.md |
| 谷歌 | google.md |
| 诺基亚 | nokia_cn.md |
| 华硕 | asus_cn.md |
| 黑鲨 | blackshark.md |
| 酷派 | coolpad.md |
| 坚果 | smartisan.md |
| 乐视 | letv.md |
故障排除
问题:无法识别品牌
解决:确保机型名称包含品牌关键词,如"小米"、"华为"、"iPhone"等
问题:查询不到入网 ID
解决:
- 检查机型名称是否正确
- 尝试使用更通用的名称,如"小米 14"而不是"Xiaomi 14"
- 部分新机型可能尚未收录
问题:网络连接失败
解决:确保可以访问 GitHub(raw.githubusercontent.com)
命令行使用方式
用户也可以直接通过命令行使用:
python scripts/query_cmiit.py input.xlsx output.xlsx
python scripts/query_cmiit.py models.txt output.xlsx
数据来源
本工具数据来源于 MobileModels 开源项目,感谢原作者的整理和维护。