
    i}                         d dl Z 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 d dlmZ  ej        e          Zd ZdS )    N)
ChatOpenAI)SystemMessageHumanMessage	AIMessage)settings)safe_invoke_tool)get_dax_ub_presupuesto_promptc                 d  K   | d         d         j         }|                     dd          }|                     dd          }|                     dg           dd         }t          t          j        d	          }d
| }|r	|d| dz  }d                    d |dd         D                       }d}	 t          j                            t          j                            t          j        	                    t                              dddd          }	t          |	dd          5 }
|
                                }ddd           n# 1 swxY w Y   n4# t          $ r'}t                              d|            Y d}~nd}~ww xY w| d| dt!                       d| }t                              d           |                    t'          |          t)          |          g           d{V }|j                                         }ddl}|                    dd||j                                                  }|                    dd||j                                                  }d|                                v rM|                    d ||j        |j        z            }|r'|                    d!                                          }t                              d"|            d#|v r;|                    d#d                                          }dt?          |          giS t                              d$           d%|i}tA          d&|           d{V }|                     d'g           }d(|v r|!                    d(           tE          j#        |d)*          g|d+d(|d,S )-u   
    Nodo de ejecución EXCLUSIVO para tableros de Ventas y Utilidad Bruta vs Presupuesto.
    Transforma la consulta NL a DAX y ejecuta la herramienta de UB/Presupuesto.
    messages	user_nameDesconocidouser_position Nr   )modeltemperaturezUsuario actual: z ()
c                 0    g | ]}|j          d |j         S )z: )typecontent).0ms     ~c:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\agent\skills\ub_presupuesto_skill.py
<listcomp>z-ub_presupuesto_skill_node.<locals>.<listcomp>   s*    QQQ!55!)55QQQ    z..DOCUMENTACIONzKB_Modelo_UB_Presupuesto.mdrzutf-8)encodingz(No se pudo cargar KB de UB Presupuesto: z

=== HISTORIAL ===
z

u$   

=== DOCUMENTACIÓN DEL MODELO ===
u<   ⚙️ Skill activada: UB_PRESUPUESTO (ub_presupuesto_skill))r   z^```[\w]*\n?)flagsz```$EVALUATEz(EVALUATE.*)   u    📄 DAX generada (sanitizada):
zDIRECT_RESPONSE:u5   🚀 DAX enviada a TOOL: consultarAgrotaUbPresupuestodaxconsultarAgrotaUbPresupuestointenciones_pendientesUB_PRESUPUESTOF)ensure_asciiz!Datos obtenidos de UB_PRESUPUESTO)resultados_tecnicosr&   mensaje_skill	dashboard	dax_query)$r   getr   r   
MODEL_NAMEjoinospathdirnameabspath__file__openread	Exceptionloggerwarningr	   infoainvoker   r   stripresub	MULTILINEuppersearch
IGNORECASEDOTALLgroupreplacer   r   removejsondumps)stateprompt_usuarior   r   chat_historyllmuser_contexthistory_str
kb_contentkb_pathfefull_system_promptdax_responsedax_coder=   matchfinal_answerargs	resultado
pendientess                        r   ub_presupuesto_skill_noder[      s[     
 :&r*2N		+}55IIIor22M99Z,,SbS1L
8.A
>
>
>C 2i11L .-]----))QQ|BCC?PQQQRRK JG',,rwrwx/H/HII4QUWf  iF  G  G'3111 	"QJ	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" G G GE!EEFFFFFFFFG )  g  g  g  gRoRqRq  g  g  [e  g  g
KKNOOO0111^,,,&        L
 #))++HIIIvvor82<vHHNNPPHvvgr82<v@@FFHHH X^^%%%%		/8R]RY5NOO 	.{{1~~++--H
KK>H>>??? X%%''(:B??EEGGY|<<<=>> KKGHHH8D&'EtLLLLLLLLI 3R88J:%%*+++ !%
95 I I IJ",<%  s=   5A4E )E
>E 
EE EE 
F FF)r0   rG   logginglangchain_openair   langchain_core.messagesr   r   r   config.settingsr   agent.utils.mcp_helperr   agent.prompts.dax_promptsr	   	getLogger__name__r8   r[    r   r   <module>re      s    				   ' ' ' ' ' ' J J J J J J J J J J $ $ $ $ $ $ 3 3 3 3 3 3 C C C C C C		8	$	$G G G G Gr   