Ë
    µŒjÊH  ã                  óØ   — d dl mZ d dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
mZmZmZmZ d dlmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZmZmZmZmZmZ erd dl Z!dd„Z" G d„ dee«      Z#y)é    )ÚannotationsN)Údeepcopy)ÚPath)ÚTYPE_CHECKINGÚAnyÚDictÚListÚMappingÚOptionalÚSequence)ÚAgentActionÚAgentFinish)ÚBaseCallbackHandler)Ú	LLMResult©Úguard_import)ÚBaseMetadataCallbackHandlerÚflatten_dictÚhash_stringÚimport_pandasÚimport_spacyÚimport_textstatÚ	load_jsonc                 ó   — t        d«      S )zLImport the clearml python package and raise an error if it is not installed.Úclearmlr   © ó    úx/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/callbacks/clearml_callback.pyÚimport_clearmlr      s   € ä˜	Ó"Ð"r   c                  óB  ‡ — e Zd ZdZ	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zdd„Z	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Z		 	 	 	 	 	 	 	 dd„Z
dd	„Zdd
„Z	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zd d„Zd!d„Zd"d„Zd#d„Ze	 	 	 	 	 	 	 	 d$d„«       Zd%d„Z	 	 	 d&	 	 	 	 	 	 	 d'd„Zˆ xZS )(ÚClearMLCallbackHandlera   Callback Handler that logs to ClearML.

    Parameters:
        job_type (str): The type of clearml task such as "inference", "testing" or "qc"
        project_name (str): The clearml project name
        tags (list): Tags to add to the task
        task_name (str): Name of the clearml task
        visualize (bool): Whether to visualize the run.
        complexity_metrics (bool): Whether to log complexity metrics
        stream_logs (bool): Whether to stream callback actions to ClearML

    This handler will utilize the associated callback method and formats
    the input of each callback function with metadata regarding the state of LLM run,
    and adds the response to the list of records for both the {method}_records and
    action. It then logs the response to the ClearML console.
    c                óÎ  •— t        «       }t        «       }	t        ‰| �  «        || _        || _        || _        || _        || _        || _	        || _
        t        j                  «       | _        |j                  j                  «       r |j                  j                  «       | _        nM|j                  j#                  | j                  | j
                  | j                  | j                  d¬«      | _        | j                   j%                  «       | _        d}
| j&                  j)                  |
dd¬«       g | _        g | _        || _	        || _        |	j/                  d«      | _        y)zInitialize callback handler.T)Ú	task_typeÚproject_nameÚtagsÚ	task_nameÚ
output_urizÅThe clearml callback is currently in beta and is subject to change based on updates to `langchain`. Please report any issues to https://github.com/allegroai/clearml/issues with the tag `langchain`.é   )ÚlevelÚprint_consoleÚen_core_web_smN)r   r   ÚsuperÚ__init__r#   r$   r%   r&   Ú	visualizeÚcomplexity_metricsÚstream_logsÚtempfileÚTemporaryDirectoryÚtemp_dirÚTaskÚcurrent_taskÚtaskÚinitÚ
get_loggerÚloggerÚreport_textÚcallback_columnsÚaction_recordsÚloadÚnlp)Úselfr#   r$   r%   r&   r.   r/   r0   r   ÚspacyÚwarningÚ	__class__s              €r   r-   zClearMLCallbackHandler.__init__2   s1  ø€ ô !Ó"ˆÜ“ˆÜ‰ÑÔà"ˆŒØ(ˆÔØˆŒ	Ø"ˆŒØ"ˆŒØ"4ˆÔØ&ˆÔä ×3Ñ3Ó5ˆŒð �<‰<×$Ñ$Ô&ØŸ™×1Ñ1Ó3ˆD�IàŸ™×)Ñ)ØŸ.™.Ø!×.Ñ.Ø—Y‘YØŸ.™.Øð *ó ˆDŒIð —i‘i×*Ñ*Ó,ˆŒðTð 	ð
 	�‰×Ñ ¨rÀÐÔFØ&(ˆÔØ$&ˆÔØ"4ˆÔØ"ˆŒØ—:‘:Ð.Ó/ˆ�r   c                óB   — | j                   D �ci c]  }|d “Œ c}S c c}w )N)r;   )r?   Úks     r   Ú
_init_respz!ClearMLCallbackHandler._init_respd   s&   € Ø!%×!6Ò!6Ó7Ñ!6˜A��4‘Ð!6Ñ7Ð7ùÒ7s   �
c                ó$  — | xj                   dz  c_         | xj                  dz  c_        | xj                  dz  c_        | j                  «       }|j	                  ddi«       |j	                  t        |«      «       |j	                  | j                  «       «       |D ]p  }t        |«      }||d<   | j                  j                  |«       | j                  j                  |«       | j                  sŒV| j                  j                  |«       Œr y)zRun when LLM starts.é   ÚactionÚon_llm_startÚpromptsN)ÚstepÚ
llm_startsÚstartsrE   Úupdater   Úget_custom_callback_metar   Úon_llm_start_recordsÚappendr<   r0   r9   r:   )r?   Ú
serializedrJ   ÚkwargsÚrespÚpromptÚprompt_resps          r   rI   z#ClearMLCallbackHandler.on_llm_startg   sÐ   € ð 	�	Š	�Q‰�	Ø�Š˜1Ñ�Ø�Š�qÑ�à�‰Ó ˆØ�‰�X˜~Ð.Ô/Ø�‰”L Ó,Ô-Ø�‰�D×1Ñ1Ó3Ô4ãˆFÜ" 4›.ˆKØ%+ˆK˜	Ñ"Ø×%Ñ%×,Ñ,¨[Ô9Ø×Ñ×&Ñ& {Ô3Ø×ÓØ—‘×'Ñ'¨Õ4ñ r   c                óš  — | xj                   dz  c_         | xj                  dz  c_        | j                  «       }|j                  d|dœ«       |j                  | j	                  «       «       | j
                  j                  |«       | j                  j                  |«       | j                  r| j                  j                  |«       yy)z#Run when LLM generates a new token.rG   Úon_llm_new_token)rH   ÚtokenN)rK   Úllm_streamsrE   rN   rO   Úon_llm_token_recordsrQ   r<   r0   r9   r:   )r?   rY   rS   rT   s       r   rX   z'ClearMLCallbackHandler.on_llm_new_token|   s›   € à�	Š	�Q‰�	Ø×Ò˜AÑÕà�‰Ó ˆØ�‰Ð1¸EÑBÔCØ�‰�D×1Ñ1Ó3Ô4à×!Ñ!×(Ñ(¨Ô.Ø×Ñ×"Ñ" 4Ô(Ø×ÒØ�K‰K×#Ñ# DÕ)ð r   c                óü  — | xj                   dz  c_         | xj                  dz  c_        | xj                  dz  c_        | j                  «       }|j	                  ddi«       |j	                  t        |j                  xs i «      «       |j	                  | j                  «       «       |j                  D ]Ä  }|D ]½  }t        |«      }|j	                  t        |j                  «       «      «       |j	                  | j                  |j                  «      «       | j                  j                  |«       | j                  j                  |«       | j                   sŒ£| j"                  j%                  |«       Œ¿ ŒÆ y)zRun when LLM ends running.rG   rH   Ú
on_llm_endN)rK   Úllm_endsÚendsrE   rN   r   Ú
llm_outputrO   Úgenerationsr   ÚdictÚanalyze_textÚtextÚon_llm_end_recordsrQ   r<   r0   r9   r:   )r?   ÚresponserS   rT   ra   Ú
generationÚgeneration_resps          r   r]   z!ClearMLCallbackHandler.on_llm_endŠ   s  € à�	Š	�Q‰�	Ø�Š˜Ñ�Ø�	Š	�Q‰�	à�‰Ó ˆØ�‰�X˜|Ð,Ô-Ø�‰”L ×!4Ñ!4Ò!:¸Ó;Ô<Ø�‰�D×1Ñ1Ó3Ô4à#×/Ô/ˆKÛ)�
Ü"*¨4£.�Ø×&Ñ&¤|°J·O±OÓ4EÓ'FÔGØ×&Ñ& t×'8Ñ'8¸¿¹Ó'IÔJØ×'Ñ'×.Ñ.¨Ô?Ø×#Ñ#×*Ñ*¨?Ô;Ø×#Ó#Ø—K‘K×+Ñ+¨OÕ<ñ *ñ 0r   c                óX   — | xj                   dz  c_         | xj                  dz  c_        y)zRun when LLM errors.rG   N©rK   Úerrors©r?   ÚerrorrS   s      r   Úon_llm_errorz#ClearMLCallbackHandler.on_llm_errorŸ   ó   € à�	Š	�Q‰�	Ø�Š�qÑŽr   c                ó²  — | xj                   dz  c_         | xj                  dz  c_        | xj                  dz  c_        | j                  «       }|j	                  ddi«       |j	                  t        |«      «       |j	                  | j                  «       «       |j                  d|j                  d«      «      }t        |t        «      rot        |«      }||d<   | j                  j                  |«       | j                  j                  |«       | j                  r| j                  j!                  |«       yyt        |t"        «      r‚|D ]|  }t        |«      }|j	                  |«       | j                  j                  |«       | j                  j                  |«       | j                  sŒb| j                  j!                  |«       Œ~ yt%        d«      ‚)zRun when chain starts running.rG   rH   Úon_chain_startÚinputÚhuman_inputz Unexpected data format provided!N)rK   Úchain_startsrM   rE   rN   r   rO   ÚgetÚ
isinstanceÚstrr   Úon_chain_start_recordsrQ   r<   r0   r9   r:   ÚlistÚ
ValueError)r?   rR   ÚinputsrS   rT   Úchain_inputÚ
input_respÚinps           r   rq   z%ClearMLCallbackHandler.on_chain_start¤   sn  € ð 	�	Š	�Q‰�	Ø×Ò˜QÑÕØ�Š�qÑ�à�‰Ó ˆØ�‰�XÐ/Ð0Ô1Ø�‰”L Ó,Ô-Ø�‰�D×1Ñ1Ó3Ô4à—j‘j ¨&¯*©*°]Ó*CÓDˆä�k¤3Ô'Ü! $›ˆJØ"-ˆJ�wÑØ×'Ñ'×.Ñ.¨zÔ:Ø×Ñ×&Ñ& zÔ2Ø×ÒØ—‘×'Ñ'¨
Õ3ð  ä˜¤TÔ*Û"�Ü% d›^�
Ø×!Ñ! #Ô&Ø×+Ñ+×2Ñ2°:Ô>Ø×#Ñ#×*Ñ*¨:Ô6Ø×#Ó#Ø—K‘K×+Ñ+¨JÕ7ñ #ô Ð?Ó@Ð@r   c           	     ó  — | xj                   dz  c_         | xj                  dz  c_        | xj                  dz  c_        | j                  «       }|j	                  d|j                  d|j                  d«      «      dœ«       |j	                  | j                  «       «       | j                  j                  |«       | j                  j                  |«       | j                  r| j                  j                  |«       yy)zRun when chain ends running.rG   Úon_chain_endÚoutputrd   )rH   ÚoutputsN)rK   Ú
chain_endsr_   rE   rN   ru   rO   Úon_chain_end_recordsrQ   r<   r0   r9   r:   )r?   r‚   rS   rT   s       r   r€   z#ClearMLCallbackHandler.on_chain_endÅ   sÀ   € à�	Š	�Q‰�	Ø�Š˜1Ñ�Ø�	Š	�Q‰�	à�‰Ó ˆØ�‰à(Ø"Ÿ;™; x°·±¸VÓ1DÓEñô	
ð 	�‰�D×1Ñ1Ó3Ô4à×!Ñ!×(Ñ(¨Ô.Ø×Ñ×"Ñ" 4Ô(Ø×ÒØ�K‰K×#Ñ# DÕ)ð r   c                óX   — | xj                   dz  c_         | xj                  dz  c_        y)zRun when chain errors.rG   Nrj   rl   s      r   Úon_chain_errorz%ClearMLCallbackHandler.on_chain_errorÙ   ro   r   c                óø  — | xj                   dz  c_         | xj                  dz  c_        | xj                  dz  c_        | j                  «       }|j	                  d|dœ«       |j	                  t        |«      «       |j	                  | j                  «       «       | j                  j                  |«       | j                  j                  |«       | j                  r| j                  j                  |«       yy)zRun when tool starts running.rG   Úon_tool_start)rH   Ú	input_strN)rK   Útool_startsrM   rE   rN   r   rO   Úon_tool_start_recordsrQ   r<   r0   r9   r:   )r?   rR   r‰   rS   rT   s        r   rˆ   z$ClearMLCallbackHandler.on_tool_startÞ   s»   € ð 	�	Š	�Q‰�	Ø×Ò˜AÑÕØ�Š�qÑ�à�‰Ó ˆØ�‰˜¸YÑGÔHØ�‰”L Ó,Ô-Ø�‰�D×1Ñ1Ó3Ô4à×"Ñ"×)Ñ)¨$Ô/Ø×Ñ×"Ñ" 4Ô(Ø×ÒØ�K‰K×#Ñ# DÕ)ð r   c                óÚ  — t        |«      }| xj                  dz  c_        | xj                  dz  c_        | xj                  dz  c_        | j	                  «       }|j                  d|dœ«       |j                  | j                  «       «       | j                  j                  |«       | j                  j                  |«       | j                  r| j                  j                  |«       yy)zRun when tool ends running.rG   Úon_tool_end)rH   r�   N)rw   rK   Ú	tool_endsr_   rE   rN   rO   Úon_tool_end_recordsrQ   r<   r0   r9   r:   )r?   r�   rS   rT   s       r   r�   z"ClearMLCallbackHandler.on_tool_endð   s­   € ä�V“ˆØ�	Š	�Q‰�	Ø�Š˜!Ñ�Ø�	Š	�Q‰�	à�‰Ó ˆØ�‰˜}¸Ñ?Ô@Ø�‰�D×1Ñ1Ó3Ô4à× Ñ ×'Ñ'¨Ô-Ø×Ñ×"Ñ" 4Ô(Ø×ÒØ�K‰K×#Ñ# DÕ)ð r   c                óX   — | xj                   dz  c_         | xj                  dz  c_        y)zRun when tool errors.rG   Nrj   rl   s      r   Úon_tool_errorz$ClearMLCallbackHandler.on_tool_error   ro   r   c                óš  — | xj                   dz  c_         | xj                  dz  c_        | j                  «       }|j                  d|dœ«       |j                  | j	                  «       «       | j
                  j                  |«       | j                  j                  |«       | j                  r| j                  j                  |«       yy)z+
        Run when agent is ending.
        rG   Úon_text)rH   rd   N)rK   Útext_ctrrE   rN   rO   Úon_text_recordsrQ   r<   r0   r9   r:   )r?   rd   rS   rT   s       r   r“   zClearMLCallbackHandler.on_text  s™   € ð 	�	Š	�Q‰�	Ø�Š˜Ñ�à�‰Ó ˆØ�‰˜y°$Ñ7Ô8Ø�‰�D×1Ñ1Ó3Ô4à×Ñ×#Ñ# DÔ)Ø×Ñ×"Ñ" 4Ô(Ø×ÒØ�K‰K×#Ñ# DÕ)ð r   c                óô  — | xj                   dz  c_         | xj                  dz  c_        | xj                  dz  c_        | j                  «       }|j	                  d|j
                  d   |j                  dœ«       |j	                  | j                  «       «       | j                  j                  |«       | j                  j                  |«       | j                  r| j                  j                  |«       yy)zRun when agent ends running.rG   Úon_agent_finishr�   )rH   r�   ÚlogN)rK   Ú
agent_endsr_   rE   rN   Úreturn_valuesr˜   rO   Úon_agent_finish_recordsrQ   r<   r0   r9   r:   )r?   ÚfinishrS   rT   s       r   r—   z&ClearMLCallbackHandler.on_agent_finish  s¾   € à�	Š	�Q‰�	Ø�Š˜1Ñ�Ø�	Š	�Q‰�	à�‰Ó ˆØ�‰à+Ø ×.Ñ.¨xÑ8Ø—z‘zñô	
ð 	�‰�D×1Ñ1Ó3Ô4à×$Ñ$×+Ñ+¨DÔ1Ø×Ñ×"Ñ" 4Ô(Ø×ÒØ�K‰K×#Ñ# DÕ)ð r   c                ó  — | xj                   dz  c_         | xj                  dz  c_        | xj                  dz  c_        | j                  «       }|j	                  d|j
                  |j                  |j                  dœ«       |j	                  | j                  «       «       | j                  j                  |«       | j                  j                  |«       | j                  r| j                  j                  |«       yy)zRun on agent action.rG   Úon_agent_action)rH   ÚtoolÚ
tool_inputr˜   N)rK   rŠ   rM   rE   rN   rŸ   r    r˜   rO   Úon_agent_action_recordsrQ   r<   r0   r9   r:   )r?   rH   rS   rT   s       r   rž   z&ClearMLCallbackHandler.on_agent_action*  sÄ   € à�	Š	�Q‰�	Ø×Ò˜AÑÕØ�Š�qÑ�à�‰Ó ˆØ�‰à+ØŸ™Ø$×/Ñ/Ø—z‘zñ	ô	
ð 	�‰�D×1Ñ1Ó3Ô4Ø×$Ñ$×+Ñ+¨DÔ1Ø×Ñ×"Ñ" 4Ô(Ø×ÒØ�K‰K×#Ñ# DÕ)ð r   c                ón  — i }t        «       }t        «       }| j                  �r3i d|j                  |«      “d|j	                  |«      “d|j                  |«      “d|j                  |«      “d|j                  |«      “d|j                  |«      “d|j                  |«      “d|j                  |«      “d	|j                  |«      “d
|j                  |«      “d|j                  |«      “d|j                  |«      “d|j                  |«      “d|j!                  |«      “d|j#                  |«      “d|j%                  |«      “}|j'                  |«       | j(                  �rQ| j*                  �rD| j,                  j.                  ��-| j+                  |«      }|j0                  j3                  |ddd¬«      }t5        | j,                  j.                  t7        d|› �«      dz   «      }|j9                  dd¬«      j;                  |«       |j0                  j3                  |ddd¬«      }	t5        | j,                  j.                  t7        d|› �«      dz   «      }
|
j9                  dd¬«      j;                  |	«       | j<                  j?                  d||¬«       | j<                  j?                  d||
¬«       |S )zÇAnalyze text using textstat and spacy.

        Parameters:
            text (str): The text to analyze.

        Returns:
            (dict): A dictionary containing the complexity metrics.
        Úflesch_reading_easeÚflesch_kincaid_gradeÚ
smog_indexÚcoleman_liau_indexÚautomated_readability_indexÚdale_chall_readability_scoreÚdifficult_wordsÚlinsear_write_formulaÚgunning_fogÚtext_standardÚfernandez_huertaÚszigriszt_pazosÚgutierrez_poliniÚcrawfordÚgulpease_indexÚosmanÚdepFT)ÚstyleÚjupyterÚpagezdep-z.htmlÚwzutf-8)ÚencodingÚentzent-zDependencies Plot)Ú
local_pathzEntities Plot) r   r   r/   r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   r°   r±   r²   rN   r.   r>   r3   ÚnameÚdisplacyÚrenderr   r   ÚopenÚwriter9   Úreport_media)r?   rd   rT   Útextstatr@   Útext_complexity_metricsÚdocÚdep_outÚdep_output_pathÚent_outÚent_output_paths              r   rc   z#ClearMLCallbackHandler.analyze_text?  sÝ  € ð ˆÜ"Ó$ˆÜ“ˆØ×"Ó"ð'Ø% x×'CÑ'CÀDÓ'Ið'à&¨×(EÑ(EÀdÓ(Kð'ð ˜h×1Ñ1°$Ó7ð'ð % h×&AÑ&AÀ$Ó&Gð	'ð
 .¨x×/SÑ/SØó0ð'ð /°×0UÑ0UØó1ð'ð " 8×#;Ñ#;¸DÓ#Að'ð (¨×)GÑ)GÈÓ)Mð'ð ˜x×3Ñ3°DÓ9ð'ð   ×!7Ñ!7¸Ó!=ð'ð # H×$=Ñ$=¸dÓ$Cð'ð  " 8×#;Ñ#;¸DÓ#Að!'ð" # H×$=Ñ$=¸dÓ$Cð#'ð$ ˜H×-Ñ-¨dÓ3ð%'ð& ! (×"9Ñ"9¸$Ó"?ð''ð( ˜Ÿ™¨Ó-ð)'Ð#ð, �K‰KÐ/Ô0à�>‹>˜dŸh›h¨4¯=©=×+=Ñ+=Ñ+IØ—(‘(˜4“.ˆCà—n‘n×+Ñ+¨C°uÀeÐRVÐ+ÓWˆGÜ"Ø—‘×"Ñ"¤K°$°t°f°Ó$>ÀÑ$HóˆOð × Ñ  ¨wÐ Ó7×=Ñ=¸gÔFà—n‘n×+Ñ+¨C°uÀeÐRVÐ+ÓWˆGÜ"Ø—‘×"Ñ"¤K°$°t°f°Ó$>ÀÑ$HóˆOð × Ñ  ¨wÐ Ó7×=Ñ=¸gÔFà�K‰K×$Ñ$Ø# T°oð %ô ð �K‰K×$Ñ$ _°dÀÐ$ÔWàˆr   c                óæ   — |D �cg c]	  }|| v sŒ|‘Œ }}|j                  «       D ��ci c]  \  }}||v r||“Œ }}}| |   j                  d¬«      }|r|j                  |d¬«      }|S c c}w c c}}w )NrG   ©Úaxis)ÚitemsÚdropnaÚrename)Úbase_dfÚbase_df_fieldsÚ
rename_mapÚfieldÚmap_entry_kÚmap_entry_vÚllm_dfs          r   Ú_build_llm_dfz$ClearMLCallbackHandler._build_llm_dfz  s›   € ñ .<ÓP©^ E¸uÈÒ?Oš%¨^ˆÐPð -7×,<Ñ,<Ô,>ô
á,>Ñ(�˜[Ø˜nÑ,ð ˜Ñ$Ø,>ð 	ñ 
ð
 ˜Ñ(×/Ñ/°QÐ/Ó7ˆÙØ—]‘] :°A�]Ó6ˆFØˆùò Qùó
s   …	A(�A(¨A-c                ó8  — t        «       } |j                  | j                  «      }t        j	                  |ddgd|v rdgndgz   ddi¬«      }g }g }| j
                  rg d¢}t        j	                  |g d¢|z   |z   d	d
dœ«      } |j                  ||gd¬«      }|S )z=Create a dataframe with all the information from the session.rK   rJ   r»   ÚidÚprompt_step)rÎ   rÏ   rÐ   )r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   r°   r±   r²   )rK   rd   Útoken_usage_total_tokensÚtoken_usage_prompt_tokensÚtoken_usage_completion_tokensÚoutput_stepr�   )rK   rd   rG   rÉ   )r   Ú	DataFramere   r!   rÕ   r/   Úconcat)r?   ÚpdÚon_llm_end_records_dfÚllm_input_prompts_dfÚcomplexity_metrics_columnsÚvisualizations_columnsÚllm_outputs_dfÚsession_analysis_dfs           r   Ú_create_session_analysis_dfz2ClearMLCallbackHandler._create_session_analysis_df‰  sÚ   € ä‹_ˆØ , §¡¨T×-DÑ-DÓ EÐä5×CÑCØ)Ø" IÐ.Ø!Ð%:Ñ:�‰xÀÀñHà Ð.ð	  Dó  
Ðð &(Ð"Ø')Ðà×"Ò"ò*Ð&ô& 0×=Ñ=Ø!òð )ñ)ð %ñ%ð #¨HÑ5ó
ˆð (˜bŸi™iÐ)=¸~Ð(NÐUVÔWÐØ"Ð"r   c                óŽ  — t        «       }t        «       }| j                  j                  d| |j                  | j
                  «      ¬«       | j                  «       }| j                  j                  d||¬«       | j                  r8| j                  j                   |j                  | j
                  «      |dœ«       |rut        | j                  j                  d«      }	 |j                  |«       |j                  | j                  t        |«      ¬«      }|j!                  t#        |«      d|¬«       | j                  j/                  d¬«       | j                  j1                  «        t3        j4                  «       | _
        | j7                  «        |r| j                  j9                  «        y
y
# t$        $ rW |j'                  |«       |j                  | j                  t        |«      ¬«      }|j!                  t#        |«      d|¬«       Y ŒÜt(        $ r*}	t+        d	«       t+        t-        |	«      «       Y d
}	~	�Œ	d
}	~	ww xY w)aU  Flush the tracker and setup the session.

        Everything after this will be a new table.

        Args:
            name: Name of the performed session so far so it is identifiable
            langchain_asset: The langchain asset to save.
            finish: Whether to finish the run.

            Returns:
                None
        zAction Records)Ú
table_plotzSession Analysis)r<   Úsession_analysisz
model.json)r6   Úconfig_textF)Úweights_filenameÚauto_delete_fileÚtarget_filenamezCould not save model.NT)Úwait_for_uploads)r   r   r9   Úreport_tablerÝ   r<   ræ   r0   r:   r   r3   r»   ÚsaveÚOutputModelr6   r   Úupdate_weightsrw   rz   Ú
save_agentÚNotImplementedErrorÚprintÚreprÚflushÚcleanupr1   r2   Úreset_callback_metaÚclose)
r?   r»   Úlangchain_assetrœ   rß   r   rå   Úlangchain_asset_pathÚoutput_modelÚes
             r   Úflush_trackerz$ClearMLCallbackHandler.flush_tracker»  s  € ô$ ‹_ˆÜ Ó"ˆð 	�‰× Ñ Ø˜d¨|¨r¯|©|¸D×<OÑ<OÓ/Pð 	!ô 	
ð
 #×>Ñ>Ó@ÐØ�‰× Ñ Ø Ð1Dð 	!ô 	
ð ×ÒØ�K‰K×#Ñ#à&2 b§l¡l°4×3FÑ3FÓ&GØ(;ñôñ Ü#'¨¯©×(:Ñ(:¸LÓ#IÐ ðØ×$Ñ$Ð%9Ô:à&×2Ñ2ØŸ™´	Ð:NÓ0Oð  3ó  �ð ×+Ñ+Ü%(Ð)=Ó%>Ø%*Ø$(ð ,ô ð* 	�	‰	�‰¨ˆÔ.Ø�‰×ÑÔÜ ×3Ñ3Ó5ˆŒØ× Ñ Ô"áØ�I‰I�O‰OÕð øô+ ò 	Ø×*Ñ*Ð+?Ô@Ø&×2Ñ2ØŸ™´	Ð:NÓ0Oð  3ó  �ð ×+Ñ+Ü%(Ð)=Ó%>Ø%*Ø$(ð ,ö ô
 'ò ÜÐ-Ô.Ü”d˜1“g”Ýûðús    Ã"AF3 Æ3AIÈIÈH?È?I)Ú	inferenceÚlangchain_callback_demoNNFFF)r#   úOptional[str]r$   r  r%   zOptional[Sequence]r&   r  r.   Úboolr/   r  r0   r  ÚreturnÚNone)r  r   )rR   úDict[str, Any]rJ   z	List[str]rS   r   r  r  )rY   rw   rS   r   r  r  )rf   r   rS   r   r  r  )rm   ÚBaseExceptionrS   r   r  r  )rR   r  r{   r  rS   r   r  r  )r‚   r  rS   r   r  r  )rR   r  r‰   rw   rS   r   r  r  )r�   r   rS   r   r  r  )rd   rw   rS   r   r  r  )rœ   r   rS   r   r  r  )rH   r   rS   r   r  r   )rd   rw   r  rb   )rÎ   úpd.DataFramerÏ   r   rÐ   r
   r  r  ©r  r   )NNF)r»   r  rû   r   rœ   r  r  r  )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r-   rE   rI   rX   r]   rn   rq   r€   r†   rˆ   r�   r‘   r“   r—   rž   rc   ÚstaticmethodrÕ   ræ   rÿ   Ú__classcell__)rB   s   @r   r!   r!       sš  ø„ ñð& $/Ø&?Ø#'Ø#'ØØ#(Ø!ð00à ð00ð $ð00ð !ð	00ð
 !ð00ð ð00ð !ð00ð ð00ð 
õ00ód8ð5Ø(ð5Ø3<ð5ØHKð5à	ó5ó**ó=ó*ð
AØ(ðAØ2@ðAØLOðAà	óAóB*ó(ð
*Ø(ð*Ø58ð*ØDGð*à	ó*ó$*ó ó
*ó *ó**ó*9ðv ðØðØ/7ðØELðà	òó ðó0#ðh #Ø#Øð	KàðKð ðKð ð	Kð
 
÷Kr   r!   r	  )$Ú
__future__r   r1   Úcopyr   Úpathlibr   Útypingr   r   r   r	   r
   r   r   Úlangchain_core.agentsr   r   Úlangchain_core.callbacksr   Úlangchain_core.outputsr   Úlangchain_core.utilsr   Ú#langchain_community.callbacks.utilsr   r   r   r   r   r   r   Úpandasrß   r   r!   r   r   r   Ú<module>r     sT   ðÝ "ã Ý Ý ß N× NÑ Nç :Ý 8Ý ,Ý -÷÷ ñ ñ Ûó#ô
fÐ8Ð:Mõ fr   