
    6vh                        d dl Z d dlmZmZmZmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlZd dl Z d dlZd dlmZmZ  ed       ed      fdedefdZ ed       ed      fdedefdZy)    N)Form
UploadFileFileHTTPException)JSONResponse)generar_respuesta_vida)validar_cedula)procesar_prueba_vida)procesar_prueba_vida_avanzada'procesar_prueba_vida_avanzada_one_frame)guardar_datos_asincronos)validar_video)datetime)logger)VERSIONVIDEO_FOLDER.cedulafilec           
      `  K   t        j                  d|         t        |       s%t        j                  d|         t	        dd      	 |j
                  j                         j                  d      rdnd}t        j                         j                  d	      }d
}t        j                  |d       t        j                  j                  ||  d| d|       }t        j                  d|        |j                          d {   }t!        |d      5 }|j#                  |       d d d        t%        |      \  }}	t        j                  d       t'        |      }
t        j                  d|
        t        j                  j)                  |      r-t        j*                  |       t        j                  d|        t-        |
| |
d d |
rdndt.        d      S 7 # 1 sw Y   xY w# t0        $ r3}t        j2                  d       t	        ddt5        |             d }~ww xY ww)Nu0   Solicitud recibida para prueba de vida: cédula=   Cédula inválida:      Cédula no válidastatus_codedetail.webmwebmmp4%Y%m%d%H%M%Stemp_videosTexist_ok_.zGuardando archivo temporal en: wbzProcesando prueba de vida...zVida detectada: zArchivo temporal eliminado: zPrueba de vida exitosau   No se detectó vida en el video)validacion_exitosar   vida_detectadareconocimiento_exitososimilaridadmensajeversioncontentzError durante la prueba de vida  Error procesando video: )r   infor	   warningr   filenamelowerendswithr   nowstrftimeosmakedirspathjoinreadopenwriter   r
   existsremover   r   	Exception	exceptionstr)r   r   	extension	timestampfolder_path
video_path
file_bytesfvalidomensaje_validacionr'   es               ./opt/face_recognition/src/service/solo_vida.pyprueba_de_vidarM      s    
KKB6(KL&!,VH564HII&Y"mm113<<WEF5	LLN++N;	#
K$/WW\\+&9+Qyk/RS
5j\BC99;&
*d# 	 qGGJ	 %2:%>""23-j9&~&67877>>*%IIj!KK6zlCD&4 "0*.# & -:"
 	
 '	  	 6  Y:;6NsSTvh4WXXYsV   A	H.B<G/ G!	G/ G#+B5G/  H.!G/ #G,(G/ /	H+8.H&&H++H.c                   K   t        j                  d|         t        |       s%t        j                  d|         t	        dd      	 t        j                  t        d       t        j                         j                  d      }|j                  j                         j                  d	      rd
nd}t
        j                  j                  t        |  d| d|       }|j!                          d {   }t#        |d      5 }|j%                  |       d d d        t        j                  d|        t'        |      \  }}|st)        d| ddd d d|z   t*        d      S t-        |      }	t/        | |	      }
t#        |d      5 }|j!                         }d d d        t1        j2                        j5                  d      }d}|	j7                  di       }d}t9        |t:              r3|j7                  d      }t9        |t:              r|j7                  dd      }t=        |dz  d      }|||| |
j7                  d      rdnd d!||	||
j7                  d"      d#
}t?        j@                  tC        |             t)        |
$      S 7 # 1 sw Y   rxY w# 1 sw Y   xY w# tD        $ r3}t        jF                  d%       t	        d&d'tI        |             d }~ww xY ww)(Nu3   Solicitud /vida/v2 para prueba avanzada - Cédula: r   r   r   r   Tr!   r   r   r   r   r#   r$   r%   zVideo guardado:    Fz No se detecta vida en el video: )r   r'   r&   r(   r)   r*   r+   )r   r-   rbzutf-8zgpt-4o-miniresultado_vidar   usagetotal_tokensg=zhq>   r&   exitosofallidoz/vida/v2
tipo_error)
modelotokens_utilizadoscosto_aproximador   estadoendpointrespuesta_modeloresultado_jsonvideo_base64rW   r,   zError en /vida/v2r.   r/   )%r   r0   r	   r1   r   r7   r8   r   r   r5   r6   r2   r3   r4   r9   r:   r;   r<   r=   r   r   r   r   r   base64	b64encodedecodeget
isinstancedictroundasynciocreate_taskr   r@   rA   rB   )r   r   rD   rC   rF   rG   rH   rI   rJ   	resultado	respuestavideo_bytesr_   rX   rQ   tokensrR   costodata_para_guardarrK   s                       rL   prueba_de_vidaV2ro   I   s    
KKEfXNO&!,VH564HIIBY
L40LLN++N;	"mm113<<WEF5	WW\\,6(!I;a	{0ST
99;&
*d# 	 qGGJ	 &zl34%2:%>""$&+*/.2#'ADVV&  <JG	*69=	 *d# 	#q&&(K	#''4;;GD "'7<nd+"&&w/E%&>15fy(!, !' %#,==1E#FiI" .'(#--5
 	45FGHI..q '	  	 ,	# 	#F  Y,-6NsSTvh4WXXYs{   A	K!B*J" 6J7J" J	AJ" $K!%#J" JC,J" K!J" 	JJ" JJ" "	K+.KKK!) r`   fastapir   r   r   r   fastapi.responsesr   src.utils.respuestar   src.validators.validacionr	   src.utils.vidar
   src.utils.vida_avanzadar   r   connection.save_datar   src.validators.validar_videor   r   src.utils.logger_configr   r7   rg   
src.configr   r   rB   rM   ro        rL   <module>r|      s     9 9 * 6 4 / : 7  * 	   , (,CyT#Y -Y -Y
 -Y` *.ctCy IY3 IY* IYr{   