
    dh8                     r    S SK J r   S SKJrJrJrJr  S SKJrJr  S SK	J
r
  S SKJr  S SKJr   " S S\
5      rg	)
    )datetime)AnyDictListOptional)AgentActionAgentFinish)BaseCallbackHandler)	LLMResult)import_pandasc                     ^  \ rS rSrSr    S'S\\   S\\   S\\   S\\   SS4
U 4S	 jjjrS
\\\	4   S\
\   S\	SS4S jrS\S\	SS4S jrS\S\	SS4S jrS\S\	SS4S jrS
\\\	4   S\\\	4   S\	SS4S jrS\\\	4   S\	SS4S jrS\S\	SS4S jrS
\\\	4   S\S\	SS4S jrS\S\	S\	4S jr  S(S\	S\\   S\\   S\	SS4
S  jjrS\S\	SS4S! jrS"\S\	SS4S# jrS$\S\	SS4S% jrS&rU =r$ ))ArizeCallbackHandler   z$Callback Handler that logs to Arize.Nmodel_idmodel_version	SPACE_KEYAPI_KEYreturnc                   > [         TU ]  5         Xl        X l        X0l        X@l        / U l        / U l        / U l        / U l	        / U l
        / U l        SU l        SU l        SU l        SU l        SSKJnJn  SSKJn  UR+                  UR,                  R.                  SSSS9U l        U" X4S9U l        US	:X  d  US
:X  a  [5        S5      e[7        S5        g)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	           d/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/callbacks/arize_callback.pyr!   ArizeCallbackHandler.__init__   s     	 *")++-)+*,02 .0!"	H.+99\\990!$	 : 
 #YH#w)';<==OP    
serializedpromptskwargsc                 l    U H.  nU R                   R                  UR                  SS5      5        M0     g )N
 )r"   appendreplace)r5   r:   r;   r<   prompts        r7   on_llm_start!ArizeCallbackHandler.on_llm_start6   s-     F&&v~~dB'?@ r9   tokenc                     gzDo nothing.N )r5   rE   r<   s      r7   on_llm_new_token%ArizeCallbackHandler.on_llm_new_token<       r9   responsec                    [        5       nSSKJnJnJnJn  UR                  (       a}  SUR                  ;   am  UR                  S   R                  SS5      U l        UR                  S   R                  SS5      U l	        UR                  S   R                  SS5      U l
        OS=U l        =U l	        U l
        UR                   GH  nU GH  n	U R                  U R                     n
U R                  S-   U l        UR                  U R                  R!                  UR                  U
R#                  SS	5      5      S
9R%                  SS95      nU	R&                  R#                  SS	5      nUR                  U R                  R!                  UR                  U	R&                  R#                  SS	5      5      S
9R%                  SS95      n[(        R*                  " 5       R-                  5       n/ SQnUUU
US   US   U R                  U R                  U R                  //nUR/                  UUS9nU" SSS9nU" SSS9nU" S/ SQUUS9nU R0                  R3                  UUU R4                  U R6                  UR8                  UR:                  S9nUR<                  S:X  a  [?        S5        GM  [?        SUR&                   S35        GM     GM	     g )Nr   )EmbeddingColumnNamesEnvironments
ModelTypesSchematoken_usager(   r*   r)      r>    )text_colT)drop)prediction_tsrL   rB   response_vectorprompt_vectorprompt_tokencompletion_tokentotal_token)columnsrY   rB   )vector_column_namedata_column_namerX   rL   rW   )rZ   r[   r\   )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.typesrN   rO   rP   rQ   
llm_outputgetr(   r*   r)   generationsr"   r+   Seriesr1   generate_embeddingsrA   reset_indextextr   now	timestamp	DataFramer2   logr   r   GENERATIVE_LLM
PRODUCTIONstatus_coder4   )r5   rL   r<   pdrN   rO   rP   rQ   rm   
generationrB   prompt_embeddingresponse_textresponse_embeddingpred_timestampr]   datadfprompt_columnsresponse_columnsre   response_from_arizes                         r7   
on_llm_endArizeCallbackHandler.on_llm_end@   s   _	
 	
 =H4G4G#G!)!4!4]!C!G!G"D !) 3 3M B F F!D &.%8%8%G%K%K#Q&D"
 D !2T5K $//K)
,,TYY7 IIM	#%99NN66!#6>>$+D!E 7 !ktk,$  !+ 7 7c B%'YYNN66!#:??+B+B4+M!N 7 !ktk,&"
 "*!9!9!;	 '%*1-(+**))..	 \\$\8 "6'6" $8'8:$   *9&
 )7*:	 '+&7&7&;&; !!]]"&"4"4)88 , 7 7 '< '# '22c9BC01D1I1I0J!LMY * 0r9   errorc                     grG   rH   r5   r   r<   s      r7   on_llm_error!ArizeCallbackHandler.on_llm_error   rK   r9   inputsc                     g NrH   )r5   r:   r   r<   s       r7   on_chain_start#ArizeCallbackHandler.on_chain_start   s     	r9   outputsc                     grG   rH   )r5   r   r<   s      r7   on_chain_end!ArizeCallbackHandler.on_chain_end   rK   r9   c                     grG   rH   r   s      r7   on_chain_error#ArizeCallbackHandler.on_chain_error   rK   r9   	input_strc                     g r   rH   )r5   r:   r   r<   s       r7   on_tool_start"ArizeCallbackHandler.on_tool_start   s     	r9   actionc                     grG   rH   )r5   r   r<   s      r7   on_agent_action$ArizeCallbackHandler.on_agent_action   rK   r9   outputobservation_prefix
llm_prefixc                     g r   rH   )r5   r   r   r   r<   s        r7   on_tool_end ArizeCallbackHandler.on_tool_end   s     	r9   c                     g r   rH   r   s      r7   on_tool_error"ArizeCallbackHandler.on_tool_error       r9   rq   c                     g r   rH   )r5   rq   r<   s      r7   on_textArizeCallbackHandler.on_text   r   r9   finishc                     g r   rH   )r5   r   r<   s      r7   on_agent_finish$ArizeCallbackHandler.on_agent_finish   r   r9   )r   r2   r)   r1   r   r   r%   r$   r'   r"   r(   r&   r#   r   r+   r*   )NNNN)NN)__name__
__module____qualname____firstlineno____doc__r   strr!   r   r   r   rC   rI   r   r   BaseExceptionr   r   r   r   r   r   r   r   r   r   r	   r   __static_attributes____classcell__)r6   s   @r7   r   r      sI   . #''+#'!%&Q3-&Q  }&Q C=	&Q
 #&Q 
&Q &QPAsCx.A379AHKA	Ac S T fN9 fN fN fNP- 3 4 sCx.26sCx.LO	
DcN c d M S T cN  	
 
k S S  -1$(	 %SM SM	
  
= C D C 3 4 k S T  r9   r   N)r   typingr   r   r   r   langchain_core.agentsr   r	   langchain_core.callbacksr
   langchain_core.outputsr   #langchain_community.callbacks.utilsr   r   rH   r9   r7   <module>r      s)     , , : 8 , =J. Jr9   