Facilitador de procesamiento de nuevos documentos
Browse files- app.py +9 -0
- conceptos_busqueda.py +1 -1
- funciones.py +10 -7
- herramientas.py +1 -1
- identificador.py +1 -1
- obtenCampo.py +2 -2
app.py
CHANGED
|
@@ -29,6 +29,15 @@ async def echo_image(image: UploadFile = File(...)):
|
|
| 29 |
contents = await image.read()
|
| 30 |
return StreamingResponse(BytesIO(contents), media_type=image.content_type)
|
| 31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
@app.post(
|
| 33 |
"/procesa_documento/",
|
| 34 |
tags=["Documentos"],
|
|
|
|
| 29 |
contents = await image.read()
|
| 30 |
return StreamingResponse(BytesIO(contents), media_type=image.content_type)
|
| 31 |
|
| 32 |
+
@app.post(
|
| 33 |
+
"/identifica_documento/",
|
| 34 |
+
tags=["Documentos"],
|
| 35 |
+
summary="Reconocimiento Avanzado de Documentos")
|
| 36 |
+
async def procesa_documento(image: UploadFile = File(...)):
|
| 37 |
+
if not image.content_type.startswith("image/"):
|
| 38 |
+
return {"error": "El archivo no es una imagen"}
|
| 39 |
+
return await funciones.identifica_documento(image)
|
| 40 |
+
|
| 41 |
@app.post(
|
| 42 |
"/procesa_documento/",
|
| 43 |
tags=["Documentos"],
|
conceptos_busqueda.py
CHANGED
|
@@ -10,5 +10,5 @@ pasaporte = [
|
|
| 10 |
|
| 11 |
ine = [
|
| 12 |
{'preferida': 'Instituto Nacional Electoral', 'alternativas': ['']},
|
| 13 |
-
|
| 14 |
]
|
|
|
|
| 10 |
|
| 11 |
ine = [
|
| 12 |
{'preferida': 'Instituto Nacional Electoral', 'alternativas': ['']},
|
| 13 |
+
{'preferida': 'México', 'alternativas': []}
|
| 14 |
]
|
funciones.py
CHANGED
|
@@ -2,17 +2,20 @@ import documentos
|
|
| 2 |
import herramientas
|
| 3 |
import identificador
|
| 4 |
|
| 5 |
-
async def
|
| 6 |
-
|
| 7 |
-
print("Procesando imagen...")
|
| 8 |
textos_extraidos = await herramientas.procesaImagen(image)
|
| 9 |
-
|
| 10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
|
| 12 |
-
|
| 13 |
textos_extraidos_simplificados = herramientas.simplificaTextos(textos_extraidos)
|
| 14 |
documento = identificador.identifica_documento(textos_extraidos_simplificados)
|
| 15 |
-
print("El documento es: ", documento)
|
| 16 |
|
| 17 |
if documento == 'dni':
|
| 18 |
# Llama a la función 'dni' si el documento es un DNI
|
|
|
|
| 2 |
import herramientas
|
| 3 |
import identificador
|
| 4 |
|
| 5 |
+
async def identifica_documento(image):
|
| 6 |
+
|
|
|
|
| 7 |
textos_extraidos = await herramientas.procesaImagen(image)
|
| 8 |
+
textos_extraidos_simplificados = herramientas.simplificaTextos(textos_extraidos)
|
| 9 |
+
documento = identificador.identifica_documento(textos_extraidos_simplificados)
|
| 10 |
+
return {
|
| 11 |
+
"documento": documento
|
| 12 |
+
}
|
| 13 |
+
|
| 14 |
+
async def procesa_documento(image):
|
| 15 |
|
| 16 |
+
textos_extraidos = await herramientas.procesaImagen(image)
|
| 17 |
textos_extraidos_simplificados = herramientas.simplificaTextos(textos_extraidos)
|
| 18 |
documento = identificador.identifica_documento(textos_extraidos_simplificados)
|
|
|
|
| 19 |
|
| 20 |
if documento == 'dni':
|
| 21 |
# Llama a la función 'dni' si el documento es un DNI
|
herramientas.py
CHANGED
|
@@ -47,7 +47,7 @@ def buscaIndexPalabra(arreglo, palabra):
|
|
| 47 |
return i
|
| 48 |
return None # Cambiado de 'error' a None
|
| 49 |
|
| 50 |
-
def
|
| 51 |
"""
|
| 52 |
Busca el índice de la primera línea que contiene todas las palabras requeridas (o sus alternativas)
|
| 53 |
y devuelve la línea con las alternativas corregidas a su forma preferida.
|
|
|
|
| 47 |
return i
|
| 48 |
return None # Cambiado de 'error' a None
|
| 49 |
|
| 50 |
+
def buscaIndexMultiplesPalabras(arreglo_textos, conceptos_requeridos):
|
| 51 |
"""
|
| 52 |
Busca el índice de la primera línea que contiene todas las palabras requeridas (o sus alternativas)
|
| 53 |
y devuelve la línea con las alternativas corregidas a su forma preferida.
|
identificador.py
CHANGED
|
@@ -21,7 +21,7 @@ def identifica_documento(textos_extraidos_simplificados):
|
|
| 21 |
conceptos_actuales = getattr(conceptos_busqueda, tipo_documento)
|
| 22 |
|
| 23 |
# Llama a la función de búsqueda para el tipo de documento actual
|
| 24 |
-
indice, textos_corregidos = herramientas.
|
| 25 |
textos_extraidos_simplificados,
|
| 26 |
conceptos_actuales
|
| 27 |
)
|
|
|
|
| 21 |
conceptos_actuales = getattr(conceptos_busqueda, tipo_documento)
|
| 22 |
|
| 23 |
# Llama a la función de búsqueda para el tipo de documento actual
|
| 24 |
+
indice, textos_corregidos = herramientas.buscaIndexMultiplesPalabras(
|
| 25 |
textos_extraidos_simplificados,
|
| 26 |
conceptos_actuales
|
| 27 |
)
|
obtenCampo.py
CHANGED
|
@@ -19,7 +19,7 @@ def Fecha_Nacimiento(textos_extraidos, textos_extraidos_limpios):
|
|
| 19 |
{'preferida': 'fecha', 'alternativas': []},
|
| 20 |
{'preferida': 'nacimiento', 'alternativas': ['nacimento']} ]
|
| 21 |
|
| 22 |
-
indice, textos_extraidos_corregidos = herramientas.
|
| 23 |
#Future: Agregar validación aquí, porque si regresa None es que no encontró nada.
|
| 24 |
print("Ésto es textos extraídos corregidos: ", textos_extraidos_corregidos)
|
| 25 |
textos_extraidos_limpios = textos_extraidos_corregidos
|
|
@@ -36,7 +36,7 @@ def Sexo(textos_extraidos, textos_extraidos_limpios):
|
|
| 36 |
#{'preferida': 'sangre', 'alternativas': []}
|
| 37 |
]
|
| 38 |
|
| 39 |
-
indice, textos_extraidos_corregidos = herramientas.
|
| 40 |
|
| 41 |
textos_extraidos_limpios = textos_extraidos_corregidos
|
| 42 |
print("El índice de genero es: ", indice)
|
|
|
|
| 19 |
{'preferida': 'fecha', 'alternativas': []},
|
| 20 |
{'preferida': 'nacimiento', 'alternativas': ['nacimento']} ]
|
| 21 |
|
| 22 |
+
indice, textos_extraidos_corregidos = herramientas.buscaIndexMultiplesPalabras(textos_extraidos_limpios, conceptos_busqueda)
|
| 23 |
#Future: Agregar validación aquí, porque si regresa None es que no encontró nada.
|
| 24 |
print("Ésto es textos extraídos corregidos: ", textos_extraidos_corregidos)
|
| 25 |
textos_extraidos_limpios = textos_extraidos_corregidos
|
|
|
|
| 36 |
#{'preferida': 'sangre', 'alternativas': []}
|
| 37 |
]
|
| 38 |
|
| 39 |
+
indice, textos_extraidos_corregidos = herramientas.buscaIndexMultiplesPalabras(textos_extraidos_limpios, conceptos_busqueda)
|
| 40 |
|
| 41 |
textos_extraidos_limpios = textos_extraidos_corregidos
|
| 42 |
print("El índice de genero es: ", indice)
|