§
    šŠtj8  ã                   óz   — d dl m Z  d dl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  G d„ de
¦  «        Zd	S )
é    )Údatetime)ÚAnyÚDictÚListÚOptional)ÚAgentActionÚAgentFinish)ÚBaseCallbackHandler)Ú	LLMResult)Úimport_pandasc                   ó  ‡ — e Zd ZdZ	 	 	 	 d%dee         dee         dee         dee         ddf
ˆ fd„Zd	eeef         d
e	e         deddfd„Z
dededdfd„Zdededdfd„Zdededdfd„Zd	eeef         deeef         deddfd„Zdeeef         deddfd„Zdededdfd„Zd	eeef         dededdfd„Zdededefd„Z	 	 d&dedee         dee         deddf
d„Zdededdfd „Zd!ededdfd"„Zd#ededdfd$„Zˆ xZS )'ÚArizeCallbackHandlerz$Callback Handler that logs to Arize.NÚmodel_idÚmodel_versionÚ	SPACE_KEYÚAPI_KEYÚreturnc                 óð  •— t          ¦   «                              ¦   «          || _        || _        || _        || _        g | _        g | _        g | _        g | _	        g | _
        g | _        d| _        d| _        d| _        d| _        ddlm}m} ddlm} |                     |j        j        ddd¬¦  «        | _         |||¬¦  «        | _        |d	k    s|d
k    rt5          d¦  «        ‚t7          d¦  «         dS )zInitialize callback handler.r   )ÚEmbeddingGeneratorÚUseCases)ÚClientzdistilbert-base-uncasedi   é   )Úuse_caseÚ
model_nameÚtokenizer_max_lengthÚ
batch_size)Ú	space_keyÚapi_keyr   r   u   â�Œ CHANGE SPACE AND API KEYSu;   âœ… Arize client setup done! Now you can start using Arize!N)ÚsuperÚ__init__r   r   r   r   Úprompt_recordsÚresponse_recordsÚprediction_idsÚpred_timestampsÚresponse_embeddingsÚprompt_embeddingsÚprompt_tokensÚcompletion_tokensÚtotal_tokensÚstepÚarize.pandas.embeddingsr   r   Úarize.pandas.loggerr   Úfrom_use_caseÚNLPÚSEQUENCE_CLASSIFICATIONÚ	generatorÚarize_clientÚ
ValueErrorÚprint)	Úselfr   r   r   r   r   r   r   Ú	__class__s	           €új/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/callbacks/arize_callback.pyr    zArizeCallbackHandler.__init__   s0  ø€ õ 	‰Œ×ÒÑÔÐØ ˆŒØ*ˆÔØ"ˆŒØˆŒØ)+ˆÔØ+-ˆÔØ)+ˆÔØ*,ˆÔØ02ˆÔ Ø.0ˆÔØˆÔØ!"ˆÔØˆÔØˆŒ	àHÐHÐHÐHÐHÐHÐHÐHØ.Ð.Ð.Ð.Ð.Ð.à+×9Ò9Ø”\Ô9Ø0Ø!$Øð	 :ñ 
ô 
ˆŒð #˜F¨YÀÐHÑHÔHˆÔØ˜Ò#Ð# w°)Ò';Ð';ÝÐ<Ñ=Ô=Ð=åÐOÑPÔPÐPÐPÐPó    Ú
serializedÚpromptsÚkwargsc                 ól   — |D ]0}| j                              |                     dd¦  «        ¦  «         Œ1d S )Nú
Ú )r!   ÚappendÚreplace)r4   r8   r9   r:   Úprompts        r6   Úon_llm_startz!ArizeCallbackHandler.on_llm_start6   sI   € ð ð 	Að 	AˆFØÔ×&Ò& v§~¢~°d¸BÑ'?Ô'?Ñ@Ô@Ð@Ð@ð	Að 	Ar7   Útokenc                 ó   — dS ©zDo nothing.N© )r4   rB   r:   s      r6   Úon_llm_new_tokenz%ArizeCallbackHandler.on_llm_new_token<   ó   € àˆr7   Úresponsec                 ó¨  — t          ¦   «         }ddlm}m}m}m} |j        r|d|j        v rs|j        d                              dd¦  «        | _        |j        d                              dd¦  «        | _	        |j        d                              dd¦  «        | _
        ndx| _        x| _	        | _
        |j        D �]}|D �]}	| j        | j                 }
| j        dz   | _        |                     | j                             |                     |
                     dd	¦  «        ¦  «        ¬
¦  «                             d¬¦  «        ¦  «        }|	j                             dd	¦  «        }|                     | j                             |                     |	j                             dd	¦  «        ¦  «        ¬
¦  «                             d¬¦  «        ¦  «        }t)          j        ¦   «                              ¦   «         }g d¢}|||
|d         |d         | j        | j	        | j
        gg}|                     ||¬¦  «        } |dd¬¦  «        } |dd¬¦  «        } |dg d¢||¬¦  «        }| j                             ||| j        | j        |j        |j        ¬¦  «        }|j        dk    rt?          d¦  «         �Œ÷t?          d|j        › d�¦  «         �Œ�Œd S )Nr   )ÚEmbeddingColumnNamesÚEnvironmentsÚ
ModelTypesÚSchemaÚtoken_usager'   r)   r(   é   r<   ú )Útext_colT)Údrop)Úprediction_tsrH   r@   Úresponse_vectorÚprompt_vectorÚprompt_tokenÚcompletion_tokenÚtotal_token)ÚcolumnsrU   r@   )Úvector_column_nameÚdata_column_namerT   rH   rS   )rV   rW   rX   )Útimestamp_column_nameÚtag_column_namesÚprompt_column_namesÚresponse_column_names)Ú	dataframeÚschemar   r   Ú
model_typeÚenvironmentéÈ   u&   âœ… Successfully logged data to Arize!u   â�Œ Logging failed "ú") r   Úarize.utils.typesrJ   rK   rL   rM   Ú
llm_outputÚgetr'   r)   r(   Úgenerationsr!   r*   ÚSeriesr0   Úgenerate_embeddingsr?   Úreset_indexÚtextr   ÚnowÚ	timestampÚ	DataFramer1   Úlogr   r   ÚGENERATIVE_LLMÚ
PRODUCTIONÚstatus_coder3   )r4   rH   r:   ÚpdrJ   rK   rL   rM   ri   Ú
generationr@   Úprompt_embeddingÚresponse_textÚresponse_embeddingÚpred_timestamprY   ÚdataÚdfÚprompt_columnsÚresponse_columnsra   Úresponse_from_arizes                         r6   Ú
on_llm_endzArizeCallbackHandler.on_llm_end@   sŒ  € Ý‰_Œ_ˆð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð Ôð 	 =°HÔ4GÐ#GÐ#GØ!)Ô!4°]Ô!C×!GÒ!GØ ñ"ô "ˆDÔð !)Ô 3°MÔ B× FÒ FØ ñ!ô !ˆDÔð &.Ô%8¸Ô%G×%KÒ%KØ# Qñ&ô &ˆDÔ"Ð"ð
 ðˆDÔð  Ô!2°TÔ5Kð $Ô/ð M	Nñ M	NˆKØ)ð LNñ LN�
ØÔ,¨T¬YÔ7�Ø œI¨™M�”	Ø#%§9¢9Ø”N×6Ò6Ø!#§¢¨6¯>ª>¸$ÀÑ+DÔ+DÑ!EÔ!Eð 7ñ ô ç!’k t�kÑ,Ô,ñ$ô $Ð ð !+¤× 7Ò 7¸¸cÑ BÔ B�Ø%'§Y¢YØ”N×6Ò6Ø!#§¢¨:¬?×+BÒ+BÀ4ÈÑ+MÔ+MÑ!NÔ!Nð 7ñ ô ç!’k t�kÑ,Ô,ñ&ô &Ð"õ
 "*¤¡¤×!9Ò!9Ñ!;Ô!;�ð	ð 	ð 	�ð 'Ø%ØØ*¨1Ô-Ø(¨Ô+ØÔ*ØÔ)ØÔ.ð	ð�ð —\’\ $°�\Ñ8Ô8�ð "6Ð!5Ø'6Èð"ñ "ô "�ð $8Ð#7Ø'8È:ð$ñ $ô $Ð ð  ˜Ø*9ð&ð &ð &ð
 )7Ø*:ð	ñ 	ô 	�ð '+Ô&7×&;Ò&;Ø Ø!Ø!œ]Ø"&Ô"4Ø)Ô8Ø ,Ô 7ð '<ñ 'ô 'Ð#ð 'Ô2°cÒ9Ð9ÝÐBÑCÔCÐCÑCåÐLÐ1DÔ1IÐLÐLÐLÑMÔMÐMÑMñYLNðM	Nð M	Nr7   Úerrorc                 ó   — dS rD   rE   ©r4   r�   r:   s      r6   Úon_llm_errorz!ArizeCallbackHandler.on_llm_error¨   rG   r7   Úinputsc                 ó   — d S ©NrE   )r4   r8   r…   r:   s       r6   Úon_chain_startz#ArizeCallbackHandler.on_chain_start¬   s	   € ð 	ˆr7   Úoutputsc                 ó   — dS rD   rE   )r4   r‰   r:   s      r6   Úon_chain_endz!ArizeCallbackHandler.on_chain_end±   rG   r7   c                 ó   — dS rD   rE   rƒ   s      r6   Úon_chain_errorz#ArizeCallbackHandler.on_chain_errorµ   rG   r7   Ú	input_strc                 ó   — d S r‡   rE   )r4   r8   rŽ   r:   s       r6   Úon_tool_startz"ArizeCallbackHandler.on_tool_start¹   s	   € ð 	ˆr7   Úactionc                 ó   — dS rD   rE   )r4   r‘   r:   s      r6   Úon_agent_actionz$ArizeCallbackHandler.on_agent_actionÁ   rG   r7   ÚoutputÚobservation_prefixÚ
llm_prefixc                 ó   — d S r‡   rE   )r4   r”   r•   r–   r:   s        r6   Úon_tool_endz ArizeCallbackHandler.on_tool_endÅ   s	   € ð 	ˆr7   c                 ó   — d S r‡   rE   rƒ   s      r6   Úon_tool_errorz"ArizeCallbackHandler.on_tool_errorÎ   ó   € Øˆr7   rm   c                 ó   — d S r‡   rE   )r4   rm   r:   s      r6   Úon_textzArizeCallbackHandler.on_textÑ   r›   r7   Úfinishc                 ó   — d S r‡   rE   )r4   rž   r:   s      r6   Úon_agent_finishz$ArizeCallbackHandler.on_agent_finishÔ   r›   r7   )NNNN)NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ústrr    r   r   r   rA   rF   r   r€   ÚBaseExceptionr„   rˆ   r‹   r�   r�   r   r“   r˜   rš   r�   r	   r    Ú__classcell__)r5   s   @r6   r   r      sR  ø€ € € € € Ø.Ð.ð #'Ø'+Ø#'Ø!%ð&Qð &Qà˜3”-ð&Qð   ”}ð&Qð ˜C”=ð	&Qð
 ˜#”ð&Qð 
ð&Qð &Qð &Qð &Qð &Qð &QðPAØ˜s C˜xœ.ðAØ37¸´9ðAØHKðAà	ðAð Að Að Að cð °Sð ¸Tð ð ð ð ðfN 9ð fN¸ð fNÀð fNð fNð fNð fNðP -ð ¸3ð À4ð ð ð ð ðØ˜s C˜xœ.ðØ26°s¸C°x´.ðØLOðà	ðð ð ð ð
 D¨¨c¨¤Nð ¸cð Àdð ð ð ð ð Mð ¸Sð ÀTð ð ð ð ðà˜˜c˜”Nðð ðð ð	ð
 
ðð ð ð ð kð ¸Sð ÀSð ð ð ð ð -1Ø$(ð	ð àðð % SœMðð ˜S”Mð	ð
 ðð 
ðð ð ð ð =ð ¸Cð ÀDð ð ð ð ð˜Cð ¨3ð °4ð ð ð ð ð kð ¸Sð ÀTð ð ð ð ð ð ð ð r7   r   N)r   Útypingr   r   r   r   Úlangchain_core.agentsr   r	   Úlangchain_core.callbacksr
   Úlangchain_core.outputsr   Ú#langchain_community.callbacks.utilsr   r   rE   r7   r6   ú<module>r­      sÈ   ðØ Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,à =Ð =Ð =Ð =Ð =Ð =ðJð Jð Jð Jð JÐ.ñ Jô Jð Jð Jð Jr7   