
    ]i                         d dl Z d dlZd dlmZ d dlmZ  e         e j                  d      Z ee      Zde	de	fdZ
de	d	ede	fd
Zy)    N)OpenAI)load_dotenvOPENAI_API_KEY)api_key	user_datareturnc                    d}t        j                  | d      }	 t        j                  j                  j                  dddid|dd	d
| dgdd      }|j                  d   j                  j                  }t        j                  |      }|S # t         j                  $ r ddicY S t        $ r}ddt        |       icY d}~S d}~ww xY w)z
    Toma los datos completos de un cliente y utiliza OpenAI (gpt-4o-mini) en Modo JSON
    para generar inteligencia comercial y devolver un dashboard estructurado.
    u  Eres el motor de Inteligencia Comercial con IA para el CRM avanzado de la empresa TWS2. Tu objetivo es analizar los datos de compras, interacciones de marketing, carritos abandonados y comportamiento financiero del cliente para generar un perfil y scores precisos.

REGLAS ESTRÍCTAS:
1. Debes evaluar automáticamente al cliente y detectar oportunidades de venta.
2. Identifica riesgo de abandono (basado en mora o sentimientos negativos).
3. Debes proveer un JSON VÁLIDO exactamente con la siguiente estructura y tipos de datos, sin texto adicional.

ESTRUCTURA JSON ESPERADA:
{
  "perfilamiento": "(Elige UNA: Cliente Potencial | Cliente Activo | Cliente Premium | Cliente Inactivo | Cliente en Riesgo | Cliente Conflictivo)",
  "dashboard": {
    "score_comercial": (Número 0-100 calculando valor y frecuencia de compra),
    "score_riesgo": (Número 0-100 donde 100 es alto riesgo de mora o abandono, basado en comportamiento financiero/interacciones),
    "score_afinidad": (Número 0-100 midiendo interés en productos usando carritos y campañas),
    "nivel_satisfaccion": "(Alto | Medio | Bajo)"
  },
  "recomendacion_accion": "(Ej: Cliente con alta probabilidad de recompra. Recomendar campaña de PS5.)",
  "resumen_analisis": "(Una breve explicación de por qué asignaste esos scores)"
}Fensure_asciigpt-4o-minitypejson_objectsystemrolecontentuserz)Analiza este cliente y devuelve el JSON:
g?i  )modelresponse_formatmessagestemperature
max_tokensr   erroru#   La IA no devolvió un JSON válido.zError de OpenAI: N)jsondumpsclientchatcompletionscreatechoicesmessager   loadsJSONDecodeError	Exceptionstr)r   system_promptuser_contextresponseresultado_strresultado_jsones          /opt/ngrok/crm_ai_service.pyanalizar_clienter-      s    	 0 ::ie<L7;;**11#]3!m<.XYeXf,gh  2 	
 !((+33;;M2 @>?? 7,SVH5667s$   A4B C)C1C CCpreguntac           	      F   d}t        j                  | d      }	 t        j                  j                  j                  dd|ddd| d	| dgd
d      }|j                  d   j                  j                  }d|iS # t        $ r}ddt        |       icY d}~S d}~ww xY w)u   
    Toma los datos de un cliente y permite al usuario del CRM hacerle preguntas directas 
    a la IA sobre ese cliente específico (texto natural, no JSON estructurado).
    u;  Eres un experto analista de CRM y asesor comercial para la empresa TWS2. Basándote EXCLUSIVAMENTE en los datos que se te proporcionen del cliente, responde a la pregunta del usuario del CRM de forma analítica, comercial y directa. Si te preguntan por métricas o acciones, justifica tu respuesta usando los datos.Fr
   r   r   r   r   zDATOS DEL CLIENTE:
z

PREGUNTA DEL ASESOR CRM:
gffffff?iX  )r   r   r   r   r   	respuestar   zError de OpenAI en chat: N)r   r   r   r   r   r   r    r!   r   r$   r%   )r   r.   r&   r'   r(   respuesta_iar+   s          r,   chatear_sobre_clienter2   D   s    	]  ::ie<L?;;**11!m<.B<.Pnownx,yz  2 
  ''*22::\** ?4SVH=>>?s   A!A= =	B BB B )osr   openair   dotenvr   getenvr   r   dictr-   r%   r2        r,   <module>r:      sc    	     "))$
%		 57 57 57n?T ?S ?T ?r9   