o
    uvh                     @   sl   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  ede _	dd Z
dd Zdd	 Zd
d ZdS )    N)loggerZAPIKEY_FACERECOGc                 C   s    t d| \}}t|dS )Nz.jpgzutf-8)cv2imencodebase64	b64encodedecode)frame_buffer r   TC:\Users\Equipo\Documents\GitHub\reconocimiento-facial-lambda\src\models\model_ia.pyframe_to_base64   s   r   c              	   C   sv   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d}t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   Zrolecontent,  modelmessagesZ
max_tokensdatar   
r   openaiZchatZcompletionscreater   infochoicesmessager   )frame1frame2
b64_frame1
b64_frame2prompt_textresponser   r   r   analizar_frames_con_openai   s"   
r*   c                 C   s\   t | }d}tjjjddd|dddd| id	gd
gdd}t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&   r(   r)   r   r   r   analizar_frames_con_openai_unoA   s   	r+   c              
   C   s   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d}t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%   Zframe3r&   r'   Z
b64_frame3r(   r)   r   r   r   !analizar_frames_con_openai_variosf   s&   r,   )r   r   dotenvosr   src.utils.logger_configr   load_dotenvgetenvapi_keyr   r*   r+   r,   r   r   r   r   <module>   s    -%