Moibe commited on
Commit
93a5ed3
·
1 Parent(s): 2e0d094

Facilitador de procesamiento de nuevos documentos

Browse files
Files changed (6) hide show
  1. app.py +9 -0
  2. conceptos_busqueda.py +1 -1
  3. funciones.py +10 -7
  4. herramientas.py +1 -1
  5. identificador.py +1 -1
  6. 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
- #{'preferida': 'identidad', 'alternativas': []}
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 procesa_documento(image):
6
-
7
- print("Procesando imagen...")
8
  textos_extraidos = await herramientas.procesaImagen(image)
9
- print("Textos extraídos: ")
10
- print(textos_extraidos)
 
 
 
 
 
11
 
12
- #Simplifica los textos extraidos:
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 buscaIndexMultiplesPalabras_Corregida(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.
 
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.buscaIndexMultiplesPalabras_Corregida(
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.buscaIndexMultiplesPalabras_Corregida(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,7 +36,7 @@ def Sexo(textos_extraidos, textos_extraidos_limpios):
36
  #{'preferida': 'sangre', 'alternativas': []}
37
  ]
38
 
39
- indice, textos_extraidos_corregidos = herramientas.buscaIndexMultiplesPalabras_Corregida(textos_extraidos_limpios, conceptos_busqueda)
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)