name: banco-scan-hogar-divisor slug: banco-scan-hogar-divisor displayName: Divisor de escaneos bancarios por hogar · Emparejamiento automático de DNI anverso/reverso en Word description: El cliente envía un archivo comprimido con cientos de fotos de DNI (anverso y reverso), solicitudes de tarjeta y contratos. Hacerlo manualmente lleva toda la tarde y es fácil pasar algo por alto.
Esta herramienta divide automáticamente por persona y hogar: descomprime → extrae todas las imágenes → modelo de visión clasifica en lote "de quién es el anverso/reverso, qué solicitud" → empareja por hogar → genera un Word independiente por hogar.
Hay una línea roja de selección aprendida con dinero real: No usar GLM-4V-Flash para reconocimiento de documentos (en pruebas, de 18 reversos de DNI, 11 fueron inventados, incluso inventando nombres). Se debe usar un modelo de visión de alta precisión con verificación cruzada.
- Entrada: Archivo comprimido RAR/ZIP cifrado, o DOCX de cientos de páginas solo con imágenes (sin texto)
- Salida: Archivo individual
Nombre-DNI+Solicitud.docx+ carpetaPendiente de revisión manual(documentos no identificados o no coincidentes, separados, sin mezclar con resultados normales) - Las imágenes no salen del equipo: la descompresión y extracción se hacen localmente, solo la clasificación usa el modelo de visión.
Aplicaciones: Clasificación de documentos de imágenes bancarias, organización de documentos de litigio para abogados, división de documentos de cobranza/juicios, archivado masivo de documentos.
Palabras clave: División de escaneos, documentos separados por hogar, imágenes bancarias, reconocimiento de DNI anverso/reverso, agrupación por hogar, archivado masivo de documentos, documentos de litigio para bufetes, extracción de imágenes de DOCX, clasificación OCR, organización de documentos de cobranza.
Público objetivo: Clasificación de documentos de imágenes bancarias, organización de documentos de litigio para abogados, división de documentos de cobranza/juicios, archivado masivo de documentos.
Entrada: Archivo comprimido RAR/ZIP cifrado, o DOCX de cientos de páginas (solo imágenes, sin texto).
Salida: Archivo individual Nombre-DNI+Solicitud.docx + carpeta Pendiente de revisión manual (documentos no identificados o no coincidentes, separados, sin mezclar con resultados normales).
Proceso central: Descomprimir → extraer todas las imágenes de word/media del DOCX → modelo de visión clasifica en lote "de quién es el anverso/reverso, qué solicitud" → emparejar por hogar → generar Word por hogar. ⚠️ Hay una línea roja de selección aprendida con dinero real: No usar GLM-4V-Flash para reconocimiento de documentos (en pruebas, de 18 reversos de DNI, 11 fueron inventados, incluso inventando nombres). Se debe usar modelos de alta precisión como Doubao Seed 2.0 Pro, con verificación cruzada.
Palabras clave: División de escaneos, documentos separados por hogar, imágenes bancarias, reconocimiento de DNI anverso/reverso, agrupación por hogar, archivado masivo de documentos, documentos de litigio para bufetes, extracción de imágenes de DOCX, clasificación OCR. Las imágenes no salen del equipo (la descompresión y extracción se hacen localmente), solo la clasificación usa el modelo de visión. version: 1.1.0 author: 九品锦锂e summary: Un montón de escaneos se dividen y archivan automáticamente por persona/hogar, cada hogar produce un Word independiente (DNI anverso/reverso + solicitud, sin perder ninguno), los no identificados se colocan aparte sin mezclarse con los resultados. license: MIT metadata: version: "1.1.0" category: office-efficiency
División de escaneos de materiales bancarios por hogar (materiales masivos → Word por hogar)
Condiciones de activación
- El cliente (bufete/banco/agencia de cobranza) envía un archivo comprimido de materiales masivos (RAR/ZIP cifrado) o un DOCX grande (61MB+, todo imágenes escaneadas)
- Solicita "sacar los DNIs y solicitudes y ponerlos en archivos Word separados por cliente"
- Solicita "Word por hogar = anverso del DNI del cliente + reverso correspondiente + solicitud bancaria correspondiente, sin faltar ninguno"
- El usuario enfatiza "revisar todo de principio a fin" — tareas de alta calidad, errores de reconocimiento = pérdida para el cliente
Reglas del usuario (2026-08-19)
- Cada Word de hogar debe incluir: anverso del DNI + reverso correspondiente (página del escudo nacional) + solicitud correspondiente, sin faltar ninguno
- Nombre de archivo claro:
Nombre-DNI+Solicitud.docx - Pendiente de revisión manual: documentos no identificados o no coincidentes se colocan en la carpeta "Pendiente de revisión manual", sin mezclar con resultados normales
- El usuario solicita estadísticas: tiempo, número de llamadas, tokens, costo desde el inicio del reconocimiento hasta la finalización de la división — el cliente puede reutilizar la base de precios
Flujo de trabajo completo (5 pasos)
Paso 1 Descomprimir
# RAR cifrado con 7z (local C:\Program Files\7-Zip\7z.exe)
"C:/Program Files/7-Zip/7z.exe" x -p"contraseña" input.rar -y
# Preguntar al usuario la contraseña; 7z puede descomprimir formato RAR5
- Forma común: después de descomprimir RAR, es un DOCX enorme (ej.
ImágenesMateriales2.docx61MB), sin texto, solo imágenes
Paso 2 Extraer imágenes del DOCX
import zipfile
with zipfile.ZipFile('ImágenesMateriales2.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)
- El DOCX es esencialmente un ZIP, las imágenes están en
word/media/, nombradas image1.png~imageN.png - El número de imagen = orden de escaneo original, se usará para emparejar por hogar más adelante
Paso 3 Clasificación con modelo de visión (⭐Núcleo: selección del modelo)
¡No usar GLM-4V-Flash para reconocimiento de documentos críticos! (En esta sesión, alucinó: 11/18 reversos de DNI fueron inventados como "anverso" + inventó nombres)
Usar Doubao Seed 2.0 Pro (doubao-seed-2-0-pro-260215, VLM, preciso):
payload = {
"model": "doubao-seed-2-0-pro-260215",
"messages": [{"role": "user", "content": [
{"type": "text", "text": "Este es un escaneo de material de cliente bancario. Determine la categoría y extraiga información clave:\nCategorías solo pueden ser: Anverso de DNI, Reverso de DNI, Solicitud de tarjeta, Solicitud de crédito, Otros materiales\nAnverso → extraer nombre + número de DNI; Reverso → extraer autoridad emisora; Solicitud → extraer nombre del solicitante\nFormato de salida: Categoría: XXX\nNombre: XXX (si no hay, escribir No)\nNúmero de DNI: XXX\nAutoridad emisora: 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
- Esperar 1s entre imágenes para evitar límite de tasa, guardar progreso cada 15 imágenes (reanudable), reintentar 3 veces (429/timeout esperar 5-8s)
- 136 imágenes ≈ 35-40 minutos (17s/imagen) — ejecutar en segundo plano + notify_on_complete
Paso 4 Agrupar por hogar (anverso define hogar → emparejar reverso → emparejar solicitud)
- Nombre del anverso define hogar: cada "Anverso de DNI" extrae nombre → crear hogar (cada hogar tiene listas fronts/backs/apps)
- Emparejar reverso (por región de autoridad emisora ↔ código de área de los primeros 6 dígitos del DNI):
- Mantener tabla de mapeo código de área → nombre de comisaría (450122=Wuming, 452128=Wuming, 450126=Binyang... principalmente Guangxi, cuando el cliente es un banco de Guangxi)
- Coincidencia exitosa → asignar al hogar; autoridades emisoras a nivel municipal (Comisaría de Nanning/Liuzhou) no pueden coincidir unívocamente → Doubao compara por pares (enviar anverso+reverso juntos preguntando "¿Son la misma persona?") o pasar a revisión manual
- Emparejar solicitud (nombre): coincidencia directa + coincidencia difusa por Pinyin (pypinyin):
lazy_pinyin(name)primeros 2 caracteres con mismo sonido coinciden (黄祉玲→黄令, 唐咸梅→唐凤梅, 姚贤明→姚先明)- Los nombres escritos a mano en solicitudes tienen gran desviación de reconocimiento; la coincidencia difusa es clave para recuperarlos
- ⚠️ No usar "orden original adyacente" para emparejar anverso/reverso — cuando hay varias personas mezcladas, se puede asignar el reverso de otra persona al hogar incorrecto (lección de esta sesión: emparejando por orden 44 imágenes > reales 34)
Paso 5 Generar Word por hogar (python-docx)
from docx import Document
from docx.shared import Cm
doc = Document()
# Título (centrado, negrita): {Nombre} - Materiales bancarios
# 【Anverso de DNI】→ imagen ancho 8cm, add_picture una por una + línea en blanco
# 【Reverso de DNI】→ igual
# 【Solicitud bancaria】→ imagen ancho 12cm
doc.save(f"{out_dir}/{Nombre}-DNI+Solicitud.docx")
- Nombre de archivo:
{Nombre}-DNI+Solicitud.docx - Reverso/solicitud no coincidentes → copiar a subdirectorio
Pendiente de revisión manual/
Estadísticas de costos (solicitadas por el usuario, entregar al final)
# Acumular del campo usage en la respuesta de la API: prompt_tokens/completion_tokens
# Estimación: cada imagen escaneada de alta resolución ≈ 2000 tokens de entrada, 200 de salida
# Doubao Seed 2.0 Pro visión: entrada ≈ 0.008 yuan/1000 tokens → 136 imágenes completas ≈ 2-5 yuan
# Tiempo: desde inicio del reconocimiento hasta finalizar Word
Tabla de estadísticas para entregar al usuario: número de llamadas, tokens de entrada/salida, costo estimado, tiempo total (esta sesión: 136 imágenes ≈ 180 llamadas, 450000 tokens, 3-5 yuan, 35 min de reconocimiento + unos minutos de agrupación)
Puntos críticos
- Alucinaciones de GLM-4V-Flash (lección más dolorosa de esta sesión): cuando no reconoce, "inventa" — convierte reverso en anverso+inventa nombre. El reconocimiento crítico debe usar Doubao.
- Extracción de imágenes de DOCX: usar zipfile para leer directamente
word/media/, no usar inline_shapes de python-docx (lento y no completo para archivos grandes). - Mejora de imagen con PIL: modo RGBA debe convertirse primero a convert('RGB') para hacer Contrast/Sharpness/autocontrast; DNI rotado 90° cuando h>w*1.5 generar dos versiones ±90° y reconocer cada una.
- Tabla de mapeo de código de área: cuando el cliente es de Guangxi, mantener manualmente el mapeo de distrito a comisaría (4501=Nanning, 4502=Liuzhou...), cuando el cliente es de otra provincia, consultar según los primeros 6 dígitos del DNI.
- Doubao lento: 17s/imagen, el lote debe ejecutarse en segundo plano + guardar progreso, no esperar en primer plano.
- Documentos con "no se ve claro": primero mejorar con PIL y luego volver a reconocer; si aún no funciona, pasar a revisión manual.
Habilidades relacionadas
- Matriz de modelos de visión/disciplina de costos: ver model-cost-discipline (propiedad del usuario, solo referencia)
- OCR local: deepseek-ocr (Ollama) adecuado para OCR de páginas completas, no para clasificación de documentos.
Sobre el autor
九品锦锂e | Envuelvo los errores que he pisado en skills que "funcionan al descargar", no escribo libros de texto.
Esta skill es la versión que yo mismo uso, cada error aquí es real. Si te atascas al usarla, quieres una versión avanzada, o tienes otro escenario que quieras que convierta en skill, agrega mi WeChat directamente, con la nota "SkillHub" para prioridad:

Escanea el código para agregar al autor · Nota "SkillHub" para prioridad