
    0i+                     v    d dl Z d dlZd dlmZ d dlmZmZmZ d dlm	Z	 d dl
mZ  e j                  e      Zd Zy)    N)
ChatOpenAI)SystemMessageHumanMessage	AIMessage)settings)safe_invoke_toolc                 Z  K   | d   d   j                   }t        t        j                  d      }d}	 |j	                  t        |      t        |      g       d{   }t        j                  |j                   j                               }|j                  d      }|j                  d	      }|r|st        d
      gg dS t        j                  d| d|        |t        |      d}t        d|       d{   }	| j                  dg       }
d|
v r|
j!                  d       t#        |	t$              xr  t'        |	      dkD  xr dt)        |	d         v }|s|	s>t        j                  d| d| d       d|
vr|
j+                  dd       |
d| d| ddS t        j,                  |	d      g|
d| d| dddS 7 d7 # t.        $ rY}t        j1                  d|        | j                  dg       }
d|
v r|
j!                  d       |
t        d      gd cY d}~S d}~ww xY ww)!ue   
    Nodo especializado en consultar datos históricos consolidados desde la DB (vía MCP Tool).
    messagesr   )modeltemperatureu   Extrae el MES (en minúsculas, ej: 'enero') y el AÑO (ej: 2024) de la consulta del usuario. Responde ÚNICAMENTE en JSON con los campos 'mes' y 'anio'.)contentNmesaniouU   Para darte datos históricos, necesito que me indiques el mes y el año específicos.)r
   intenciones_pendientesu!   📊 Consultando histórico para  )r   r   consultarHistoricoAgrotar   HISTORICO_METRICASzNo se encontraronu+   ⚠️ Histórico no encontrado en DB para z1. Activando fallback a consulta en VIVO (Ventas).UB_PRESUPUESTOzBuscando datos en vivo para z...)r   mensaje_skillF)ensure_asciiu   Datos históricos de z obtenidos de DB)resultados_tecnicosr   r   	dashboardu   ❌ Error en historico_skill: uk   Ocurrió un error al consultar el histórico. Por favor, asegúrate de indicar el mes y año correctamente.)r   r
   )r   r   r   
MODEL_NAMEainvoker   r   jsonloadsstripgetr   loggerinfointr   remove
isinstancelistlenstrinsertdumps	Exceptionerror)stateprompt_usuariollm
sys_prompt
extractiondatar   r   args	resultado
pendientesis_errores                >/opt/agrota/powerbi/client-mcp/agent/skills/historico_skill.pyhistorico_skill_noder8   
   sz     :&r*22N
8..A
>C	F 
7
;;*-0(
  

 zz*,,2245hhuoxx$&  0G  H  I*, 
 	7uAdVDE CI.*+EtLL	 YY7<
:-23 i.r3y>A3ErJ]adenopeqarJr9KKEcU!D6  RC  D  Ez1!!!%56 +5#?uAdV3!O  %)JJyu$M#N&04SE4&@PQ-	
 	
O& M6  
5aS9:YY7<
:-23&0"  ,Y  Z  [
 	

ss   0H+*G GA&G H+8G =G>BG H+#G  H+G G 	H(AH#H(H+#H((H+)loggingr   langchain_openair   langchain_core.messagesr   r   r   config.settingsr   agent.utils.mcp_helperr   	getLogger__name__r    r8        r7   <module>rB      s2      ' J J $ 3			8	$E
rA   