
    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_cartera_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 Gestión, Cartera y Cobranzas.
    Transforma la consulta NL a DAX y ejecuta la herramienta de consultarAgrota.
    messages	user_nameDesconocidouser_position Nr   )modeltemperaturezUsuario actual: z ()
c                 0    g | ]}|j          d |j         S )z: )typecontent).0ms     wc:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\agent\skills\cartera_skill.py
<listcomp>z&cartera_skill_node.<locals>.<listcomp>   s*    QQQ!55!)55QQQ    z..DOCUMENTACIONzKB_Modelo_Cartera.mdrzutf-8)encodingz!No se pudo cargar KB de Cartera: z

=== HISTORIAL ===
z

u$   

=== DOCUMENTACIÓN DEL MODELO ===
u.   ⚙️ Skill activada: CARTERA (cartera_skill))r   z^```[\w]*\n?)flagsz```$EVALUATEz(EVALUATE.*)   u    📄 DAX generada (sanitizada):
zDIRECT_RESPONSE:u(   🚀 DAX enviada a TOOL: consultarAgrotadaxconsultarAgrotaintenciones_pendientesCARTERAF)ensure_asciizDatos obtenidos de CARTERA)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   cartera_skill_noder[      sP     
 :&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@',,rwrwx/H/HII4QUWfh~'3111 	"QJ	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" @ @ @>1>>????????@ )  `  `  `  `RhRjRj  `  `  T^  `  `
KK@AAA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:;;;8D&'8$????????I 3R88JJ)$$$ !%
95 I I IJ",5  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 < < < < < <		8	$	$G G G G Gr   