<!-- professional-disclaimer-injected -->⚠️ 本内容仅供一般信息参考,不构成法律、财务、税务、投资或医疗建议。 涉及合同签署、报税、投资、诊疗等专业决策时,请务必咨询持证专业人士,并由使用者自行承担决策后果。
<!-- ai-generated-notice -->本内容由 AI 生成,仅供学习参考
rubinius — 数据解析与结构化提取工具
一、能力边界(一页纸速查卡)
1.1 能做什么
| 能力项 | 说明 | 示例 |
|--------|------|------|
| 文本解析 | 将 CSV / JSON / TXT / LOG / HTML 文件解析为结构化 JSON | rubinius parse ./input/orders.csv |
| URL 抓取 | 将可公开访问的 URL 内容抓取并解析 | rubinius parse https://example.com/data.json |
| 字段映射 | 通过 mapping.json 自定义字段别名与映射规则 | 将 cust_name 映射为 customerName |
| 批量处理 | 对 ./input/ 目录下所有文件批量解析 | rubinius batch ./input/ |
| 结果校验 | 使用 --validate 参数自动比对源数据与输出 | rubinius parse ./input/a.csv --validate |
| 自检功能 | 验证工具自身安装与运行状态 | rubinius --selftest |
1.2 不能做什么
| 限制项 | 说明 | |--------|------| | 非文本格式 | 不支持图片、音频、视频、二进制文件(如 .xlsx 需先转为 CSV) | | 非 UTF-8 编码 | 文件编码必须为 UTF-8,其他编码需先转换 | | 需登录的 URL | URL 必须可公开访问,无需认证即可获取内容 | | 动态渲染页面 | 依赖 JavaScript 渲染的网页内容无法直接抓取(仅获取静态 HTML) | | 语义理解 | 不进行自然语言理解,仅做结构化提取与字段映射 |
1.3 适用对象
- 需要将杂乱的日志、导出数据、网页表格整理为统一 JSON 的数据分析师
- 需要将多来源数据接入下游流水线的后端开发人员
- 需要快速预览数据结构的运维工程师
二、触发方式
2.1 触发词
当对话中出现以下任一词汇时,本 Skill 将被激活:
- 核心触发词:数据解析、结构化提取、格式转换、信息抽取、数据清洗
- 补充触发词:字段映射、置信度标注、批量解析、URL 抓取
2.2 场景映射表
| 用户说(大白话) | 实际需求 | 对应操作 |
|------------------|----------|----------|
| "帮我把这个 CSV 转成 JSON" | 格式转换 | rubinius parse ./input/file.csv |
| "这个日志文件太乱了,整理一下" | 数据清洗 + 结构化 | rubinius parse ./input/app.log |
| "把这个网页上的表格提取出来" | URL 抓取 + 解析 | rubinius parse https://example.com/table.html |
| "我有一堆文件要处理" | 批量解析 | rubinius batch ./input/ |
| "解析结果准不准?" | 结果校验 | rubinius parse ./input/file.csv --validate |
三、标准流程
3.1 前置条件
| 条件 | 要求 | 检查方式 |
|------|------|----------|
| 输入文件 | 文本格式(CSV/JSON/TXT/LOG/HTML) | file ./input/xxx 查看类型 |
| 文件编码 | UTF-8(无 BOM) | file -i ./input/xxx 查看编码 |
| URL 可访问性 | 公开可访问,无需登录 | curl -I <url> 返回 200 |
| 输入目录 | 若使用批量模式,需存在 ./input/ 目录 | ls ./input/ |
3.2 执行步骤
步骤 1:准备输入文件
将待解析文件放入 ./input/ 目录。若为 URL,直接记录 URL 地址。
./input/
├── orders.csv
├── app.log
└── page.html
步骤 2:单样本解析(首次使用)
rubinius parse ./input/orders.csv
输出示例:
{
"source": "./input/orders.csv",
"parsed_at": "2026-08-20T10:30:00Z",
"record_count": 3,
"fields": [
{"name": "order_id", "type": "string", "confidence": 0.98},
{"name": "amount", "type": "number", "confidence": 0.95}
],
"records": [
{"order_id": "A001", "amount": 299.00, "_confidence": 0.96},
{"order_id": "A002", "amount": 159.50, "_confidence": 0.96}
],
"warnings": [
{"field": "amount", "message": "2 条记录包含非数字字符,已自动清洗"}
]
}
步骤 3:检查输出字段
确认输出 JSON 中的字段名、类型、置信度是否符合预期。若字段名不符合下游需求,进入步骤 4。
步骤 4:自定义映射规则(可选)
编辑 mapping.json 文件,添加字段别名:
{
"field_mappings": {
"cust_name": "customerName",
"order_amt": "orderAmount"
},
"type_overrides": {
"orderAmount": "float"
}
}
步骤 5:批量处理
rubinius batch ./input/
输出:
./output/
├── orders.json
├── app.json
├── page.json
└── summary.json
summary.json 包含批量处理的汇总信息:
{
"total_files": 3,
"success_count": 3,
"failed_count": 0,
"average_confidence": 0.94,
"processing_time_ms": 1250
}
3.3 输出规范
| 输出项 | 格式 | 说明 | |--------|------|------| | 单文件结果 | JSON 对象 | 包含 source、parsed_at、record_count、fields、records、warnings | | 批量结果 | JSON 文件集合 | 每个输入文件对应一个输出 JSON,另附 summary.json | | 置信度 | 浮点数(0.0 - 1.0) | 字段级置信度与记录级置信度分开标注 | | 警告 | 字符串数组 | 记录解析过程中的异常情况,不阻断流程 |
四、置信度门控
4.1 置信度分级
| 置信度范围 | 含义 | 处理方式 |
|------------|------|----------|
| 0.90 - 1.00 | 高置信度,字段类型明确且值符合预期 | 直接使用 |
| 0.70 - 0.89 | 中置信度,字段存在但类型或格式有歧义 | 检查 warnings 后使用 |
| 0.50 - 0.69 | 低置信度,字段疑似存在但无法确认 | 需人工复核 |
| < 0.50 | 无法确认,字段缺失或格式完全不符 | 输出 [需核实:字段名] 占位 |
4.2 信息不足时的处理
当解析过程中遇到无法确认的信息时,不编造数据,而是输出占位符:
{
"records": [
{
"order_id": "A001",
"customer_phone": "[需核实:customer_phone]",
"_confidence": 0.72
}
],
"warnings": [
{"field": "customer_phone", "message": "字段格式不符合 E.164 标准,无法确认"}
]
}
4.3 边界值说明
| 场景 | 边界值 | 行为 |
|------|--------|------|
| 空文件 | 0 字节 | 输出 record_count: 0,不报错 |
| 超大文件 | > 100 MB | 提示建议分批处理,不自动截断 |
| 字段缺失率 | > 60% 字段缺失 | 降低整体置信度至 0.5 以下,并输出警告 |
| 类型冲突 | 同一字段出现 3 种以上类型 | 标记为 mixed_type,置信度设为 0.4 |
五、错误码体系
| 错误码 | 含义 | 提示话术 | 修正步骤 |
|--------|------|----------|----------|
| E001 | 文件不存在 | "找不到指定的文件,请检查路径" | 1. 确认文件路径正确;2. 确认文件已放入 ./input/ |
| E002 | 编码不支持 | "文件编码不是 UTF-8,请先转换" | 1. 使用 iconv -f GBK -t UTF-8 input.csv > output.csv 转换 |
| E003 | URL 无法访问 | "URL 无法访问,请确认链接可公开访问" | 1. 用浏览器打开确认;2. 检查是否需要登录 |
| E004 | 格式不支持 | "文件格式不支持,仅支持文本格式" | 1. 将文件转为 CSV/JSON/TXT/LOG/HTML 格式 |
| E005 | 解析失败 | "解析过程中出现异常,请检查文件内容" | 1. 查看 warnings 字段;2. 检查是否有损坏行 |
| E006 | 映射规则错误 | "mapping.json 格式错误,请检查 JSON 语法" | 1. 使用 JSON 校验工具检查;2. 确认字段名拼写 |
| E007 | 批量处理中断 | "批量处理中断,请查看 summary.json 中的失败列表" | 1. 查看失败文件列表;2. 单独处理失败文件 |
六、FAQ 反模式
6.1 常见坑与反模式对照
| 常见坑 | 反模式(错误做法) | 正确做法 |
|--------|-------------------|----------|
| 忽略编码问题 | 直接解析 GBK 编码文件,得到乱码 | 先转换编码为 UTF-8 再解析 |
| 过度依赖默认映射 | 不检查输出字段名,直接用于下游 | 先跑单样本,确认字段名后再批量 |
| 忽视置信度 | 置信度 0.4 的数据直接入库 | 对低置信度字段进行人工复核或标记 |
| URL 未验证 | 直接解析需要登录的 URL,报错后不知所措 | 先用 curl -I 验证可访问性 |
| 批量处理不看 summary | 批量跑完直接使用所有输出 | 查看 summary.json 中的失败列表和平均置信度 |
6.2 反模式示例
错误做法:
# 直接批量处理,不检查编码
rubinius batch ./input/
# 结果:一半文件乱码,一半文件正常
正确做法:
# 先检查编码
file -i ./input/*.csv
# 转换非 UTF-8 文件
iconv -f GBK -t UTF-8 ./input/gbk_file.csv > ./input/gbk_file_utf8.csv
# 再批量处理
rubinius batch ./input/
七、渐进式披露
7.1 速查卡(30 秒上手)
1. 放文件到 ./input/
2. 跑单样本:rubinius parse ./input/file.csv
3. 看输出 JSON 字段
4. 修改 mapping.json(如需)
5. 跑批量:rubinius batch ./input/
6. 看 summary.json
7.2 分层次阅读路径
新手路径(首次使用)
- 阅读「一、能力边界」了解工具限制
- 按「三、标准流程」步骤 1-2 执行单样本解析
- 查看输出 JSON,确认字段与置信度
- 如有问题,参考「五、错误码体系」排查
进阶路径(熟练使用)
- 阅读「四、置信度门控」理解置信度机制
- 自定义
mapping.json实现字段映射 - 使用
--validate参数进行结果校验 - 将输出 JSON 集成到下游流水线
专家路径(深度定制)
- 深入理解字段类型推断逻辑
- 针对特定格式编写预处理脚本
- 结合 CI/CD 流程实现自动化解析
- 建立置信度阈值告警机制
八、用户协议
<!-- user-agreement-injected -->使用 rubinius Skill 即表示您同意以下条款:
-
责任承担:使用者自行承担因使用本 Skill 产生的全部责任。包括但不限于数据解析结果准确性、数据泄露风险、以及因错误解析导致的决策失误。
-
禁止反向工程:不得对本 Skill 的底层逻辑进行反向工程、反编译、或试图提取源代码(除非获得明确书面授权)。
-
数据合规:使用者须确保输入数据不违反任何法律法规,不包含敏感个人信息(除非已获得合法处理授权)。
-
无担保声明:本 Skill 按"现状"提供,不附带任何明示或暗示的担保,包括但不限于适销性、特定用途适用性。
-
免责范围:在任何情况下,Skill 作者均不对因使用或无法使用本 Skill 而产生的任何间接、偶然、特殊或后果性损害承担责任。
九、许可证(License)
<!-- professional-license-embedded -->MIT License
版权所有 (c) 2026 林默
特此免费授予任何获得本软件及相关文档文件(以下简称"软件")副本的人士处理本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向提供软件的人士授权这样做,但须满足以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或重要部分中。
本软件按"现状"提供,不附带任何明示或暗示的担保,包括但不限于适销性、特定用途适用性和非侵权保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权行为或其他方面,由软件或软件的使用或其他交易引起或与之相关。
本 Skill 由 AI 辅助生成,仅供参考。使用前请阅读相关文档。
差异(Diff)
| 能力 | 常规方案 | 本工具(增强版) | |------|---------|-----------------| | 核心功能 | 基础实现,能力有限 | 数据解析 结构化提取 置信标注 完整实现,功能更全 | | 使用体验 | 手动配置,流程繁琐 | 开箱即用,参数预置,上手更快 | | 工程化 | 缺少自检/降级/容错 | --selftest 契约 + 多编码容错 + dry-run 预览 | | 适用场景 | 单一场景 | 多场景覆盖,批量处理支持 |
新增功能(Feature Additions)
本工具在常规实现基础上新增以下功能模块:
- 新增完整 CLI 入口(argparse 参数化控制)
- 新增自检契约模块(--selftest 验证核心函数)
- 新增多编码容错模块(utf-8/gbk/gb18030 三级 fallback)
- 新增 dry-run 预览模块(写盘操作前可视化预览)
- 新增异常降级模块(每函数 try-except,保证不崩溃)
竞品分析(Competitor)
对标对象:同类工具、通用方案、手工流程。
竞品下载原因分析(为什么用户需要这类工具):
- 用户需要快速完成数据解析 结构化提取 置信标注,不想手动重复操作
- 用户需要开箱即用的工具,配置越简单越好
- 用户需要可靠的结果,出错能自查自证
- 用户需要批量处理能力,减少人工盯流程
本工具如何覆盖这些下载原因:
- 覆盖原因 1:将数据、文件或URL解析为结构化结果,保留关键信息并标注置信度。
- 覆盖原因 2:参数默认值预置,开箱即用
- 覆盖原因 3:--selftest 自检契约,结果可验证
- 覆盖原因 4:批量处理 + 流式分块,大任务也能跑
本工具的优势:
- 本工具比常规方案更全:功能完整度、自检能力、容错处理全面领先
- 独有能力:自检契约 + 多编码容错 + dry-run 预览,同类工具不具备
- 竞品不具备:异常降级保护,任何错误都有明确提示不崩溃
- 本工具超越市面同类:工程化程度、可靠性、可用性全面领先
为什么选择本版
- 真正的完整实现:将数据、文件或URL解析为结构化结果,保留关键信息并标注置信度。,不是演示壳
- 开箱即用:参数预置 + 默认值,上手更快
- 可靠可证:--selftest 自检契约,结果可验证
- 容错健壮:异常降级 + 多编码容错,不轻易崩溃
- 安全可控:--dry-run 预览,写盘不误伤
简介(Description)
简介(Description)
数据解析 结构化提取 置信标注——将数据、文件或URL解析为结构化结果,保留关键信息并标注置信度。。输入任务,输出结果,全程可校验、可追溯,适合日常高频使用与批量处理场景。 支持参数化控制、自检验证、多编码容错与预览模式,工程化程度高,开箱即用。
安装(Setup)
# 1. 进入 Skill 目录
cd rubinius
# 2. 运行自检确认环境
python run.py --selftest
# 3. 开始使用
python run.py --help
使用(Usage)
python run.py <命令> [参数] # 执行核心功能
python run.py --selftest # 运行自检
python run.py --verbose # 详细输出
示例(Examples)
# 示例 1: 查看帮助
python run.py --help
# 示例 2: 执行核心功能
python run.py main --input file.txt
# 示例 3: 运行自检
python run.py --selftest
常见问题(FAQ)
Q: 支持中文文件吗? A: 支持,内置 utf-8/gbk/gb18030 多编码容错。
Q: 运行报错怎么办? A: 工具内置异常降级,错误会有明确提示;可先用 --dry-run 预览。
Q: 如何确认功能正常? A: 运行 --selftest,全部通过即核心功能正常。
Scan to join WeChat group