Install
openclaw skills install @lingyu9495-source/bank-scan-household-splitter客户丢来一个压缩包,里面几百张身份证正反面、开卡申请书、合同——**人工一张张挑,一下午就没了,还容易漏**。 这套按人按户自动拆好:解包 → 抽出全部图片 → 视觉模型批量识别"这是谁的正/反面、哪份申请书" → 按户匹配 → 每户输出一个独立 Word。 有一条用真金白银换来的选型红线:**证件识别不要用 GLM-4V-Flash**(实测 18 张身份证背面里 11 张被编造,还编出了姓名),必须用高准确度视觉模型并配交叉校验。 - 输入:RAR/ZIP 加密压缩包,或几百页全是图片、没有文字的扫描件 docx - 输出:「姓名-身份证+开申请书.docx」单户文件 + 「待人工核对」文件夹(识别不出或匹配不上的单独放,不混进正常结果) - 图片不出本机:解包与提取都在本地做,只有识别那一步调视觉模型 适用:银行影像材料归户、律师立案材料整理、催收/诉讼材料分户、批量证件归档。 触发词:扫描件拆分、材料按户分开、银行影像材料、身份证正反面识别、归户、批量证件归档、律所立案材料、docx 提取图片、OCR 分类、催收材料整理。 适用对象:银行影像材料归户、律师立案材料整理、催收/诉讼材料分户、批量证件归档。 输入:RAR/ZIP 加密压缩包,或几百页的扫描件 docx(全是图片、无文字) 输出:「姓名-身份证+开申请书.docx」单户文件 + 「待人工核对」文件夹(识别不出/匹配不上的单独放,不混进正常结果) 核心做法:解包 → 从 docx 抽出 word/media 全部图片 → 视觉模型批量识别「这是谁的正/反面、哪份申请书」→ 按户匹配 → 生成单户 Word。 ⚠️ 里面有一条用真金白银换来的选型红线:证件识别**不要用 GLM-4V-Flash**(实测 18 张身份证背面里 11 张被编造,还编出姓名),必须用豆包 Seed 2.0 Pro 这类高准确度视觉模型,并配交叉校验。 触发词:扫描件拆分、材料按户分开、银行影像材料、身份证正反面识别、归户、批量证件归档、律所立案材料、docx 提取图片、OCR 分类。 图片不出本机(解包与提取全在本地做),只有识别那一步调视觉模型。
openclaw skills install @lingyu9495-source/bank-scan-household-splitter姓名-身份证+开卡申请书.docx# 加密RAR用7z(本机 C:\Program Files\7-Zip\7z.exe)
"C:/Program Files/7-Zip/7z.exe" x -p"密码" input.rar -y
# 客户给的密码要问用户;RAR5格式7z可解
import zipfile
with zipfile.ZipFile('影像材料2.docx') as z:
media = [f for f in z.namelist() if f.startswith('word/media/') and f.endswith('.png')]
for f in media: z.extract(f, out_dir)
绝不用 GLM-4V-Flash 做关键证件识别!(本session实测幻觉:11/18张身份证背面被编造成"正面"+编造姓名)
用豆包 Seed 2.0 Pro(doubao-seed-2-0-pro-260215,VLM,准确):
payload = {
"model": "doubao-seed-2-0-pro-260215",
"messages": [{"role": "user", "content": [
{"type": "text", "text": "这是银行客户材料扫描件。判断类别并提取关键信息:\n类别只能是:身份证正面、身份证背面、开卡申请书、信用卡申请书、其他材料\n正面→提取姓名+身份证号;背面→提取签发机关;申请书→提取申请人姓名\n输出格式:类别:XXX\n姓名:XXX(无则写无)\n身份证号:XXX\n签发机关:XXX"},
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{b64}"}}
]}],
"max_tokens": 200
}
# base_url: https://ark.cn-beijing.volces.com/api/v3/chat/completions
# KEY: .env 的 ARK_API_KEY
lazy_pinyin(name) 前2字同音即匹配(黄祉玲→黄令、唐咸梅→唐凤梅、姚贤明→姚先明)from docx import Document
from docx.shared import Cm
doc = Document()
# 标题(居中加粗):{姓名} - 银行材料
# 【身份证正面】→ 图宽8cm,逐张 add_picture + 空行
# 【身份证背面】→ 同上
# 【银行申请材料】→ 图宽12cm
doc.save(f"{out_dir}/{name}-身份证+开卡申请书.docx")
{姓名}-身份证+开卡申请书.docx待人工核对/ 子目录# 从API响应 usage 字段累计:prompt_tokens/completion_tokens
# 估算:高清扫描件每张≈2000 tokens输入、200 tokens输出
# 豆包Seed 2.0 Pro视觉:输入≈0.008元/千tokens → 136张全量约2-5元
# 耗时:从识别开始到Word完成
交付给用户的统计表:调用次数、输入/输出tokens、估算费用、总耗时(本session:136张≈180次调用、45万tokens、3-5元、35分钟识别+几分钟归户)
九品锦锂e | 把踩过的坑封装成「拿来就能跑」的 skill,不写教科书。
这个 skill 是我自己在用的版本,里面每条坑都是真踩过的。用的时候卡住了、想要进阶玩法、或者有别的场景想让我封装成 skill,直接加我微信说,加时备注「SkillHub」我优先通过:

扫码添加作者微信 · 备注「SkillHub」优先通过