
    8vh                         d dl Z d dlZd dlZd dlZd dlZd dlmZ  ej                           ej                  d      e _	        d Z
d Zd Zd Zy)    N)loggerAPIKEY_FACERECOGc                 |    t        j                  d|       \  }}t        j                  |      j	                  d      S )Nz.jpgzutf-8)cv2imencodebase64	b64encodedecode)frame_buffers      ,/opt/face_recognition/src/models/model_ia.pyframe_to_base64r      s2    VU+IAvF#**733    c           
      0   t        |       }t        |      }d}t        j                  j                  j	                  ddd|dddd| id	ddd| id	gd
gd      }t        j                  d|       |j                  d   j                  j                  S )Nu  Analiza detalladamente las siguientes imágenes para determinar si contienen únicamente el rostro de una persona real, sin presencia de objetos ajenos como celulares, tazas, mouse, pantallas, manos cubriendo el rostro o imágenes falsas. Este análisis es crucial para una verificación biométrica confiable.

Tu tarea es:
1. Verificar que se trata de una persona real, no una imagen, muñeco, animal, pantalla, pintura o arte digital.
2. Confirmar que el rostro está completamente visible y no está cubierto con manos, objetos o filtros.
3. Verificar que NO se están usando accesorios que dificulten la verificación como lentes, gorros o auriculares.
4. Marcar la detección de vida si notas señales típicas (ojos abiertos, expresión natural, etc.).
5. Detectar si hay objetos ajenos en el encuadre (celulares, mouse, tazas, cables, pantallas, etc.) — si hay, marca como no válido.

Devuelve únicamente este JSON (sin explicaciones ni texto adicional), con todas las claves entre comillas dobles y los valores correctos:
{
  "es_persona": true,
  "usa_lentes": false,
  "usa_auriculares": false,
  "usa_gorro": false,
  "vida_detectada": true,
  "accesorios": false,
  "objetos_ajenos_detectados": false
}
gpt-4o-miniusertexttyper   	image_urlurldata:image/jpeg;base64,r   r   rolecontent,  modelmessages
max_tokensdatar   
r   openaichatcompletionscreater   infochoicesmessager   )frame1frame2
b64_frame1
b64_frame2prompt_textresponses         r   analizar_frames_con_openair2      s     (J (J	 0 {{&&-- #[9(AXYcXd?e7fg(AXYcXd?e7fg	
  . H KKx A&&...r   c           	         t        |       }d}t        j                  j                  j	                  ddd|dddd| id	gd
gd      }t        j                  d|       |j                  d   j                  j                  S )Nu  Analiza la siguiente imagen del rostro de una persona y determina si se trata de una persona real. También identifica si la persona está usando lentes, auriculares, gorros, sombreros u otro accesorio que pueda interferir con una verificación biométrica. Además, indica si los ojos de la persona son visibles claramente y si se encuentran abiertos.

Devuelve únicamente este JSON (sin explicaciones ni texto adicional), con todas las claves entre comillas dobles y los valores en el formato correcto:
{
  "es_persona": true,
  "usa_lentes": false,
  "usa_auriculares": false,
  "usa_gorro": false,
  "vida_detectada": true,
  "ojos_detectados": true,
  "accesorios": false
}
r   r   r   r   r   r   r   r   r   r   r   r#   r   r$   )r,   r.   r0   r1   s       r   analizar_frames_con_openai_unor4   A   s     (J	 " {{&&-- #[9(AXYcXd?e7fg
  . H KKx A&&...r   c                 X   t        |       }t        |      }t        |      }d}t        j                  j                  j	                  ddd|dddd| id	ddd| id	ddd| id	gd
gd      }t        j                  d|       |j                  d   j                  j                  S )Nu  Analiza las siguientes imágenes del rostro de una persona y determina si se trata de una persona real. También identifica si la persona está usando lentes, auriculares, gorros, sombreros u otro accesorio que pueda interferir con una verificación biométrica. Además, indica si los ojos de la persona son visibles claramente y si se encuentran abiertos.

Devuelve únicamente este JSON (sin explicaciones ni texto adicional), con todas las claves entre comillas dobles y los valores en el formato correcto:
{
  "es_persona": true,
  "usa_lentes": false,
  "usa_auriculares": false,
  "usa_gorro": false,
  "vida_detectada": true,
  "ojos_detectados": true,
  "accesorios": false
}
r   r   r   r   r   r   r   r   r   r   r   zRespuesta OpenAI:r   r$   )r,   r-   frame3r.   r/   
b64_frame3r0   r1   s           r   !analizar_frames_con_openai_variosr8   f   s     (J (J (J	 " {{&&-- #[9(AXYcXd?e7fg(AXYcXd?e7fg(AXYcXd?e7fg	

  . H  KK#X.A&&...r   )r%   r   dotenvosr   src.utils.logger_configr   load_dotenvgetenvapi_keyr   r2   r4   r8    r   r   <module>r@      sP       	 
 *    -.4+/Z"/J&/r   