
    dh                         S SK JrJr  S SKJrJrJrJr  S SKJ	r	  S SK
Jr  \(       a  S SKJr  S SKJr  S SKJr  S SKJr  S	S
S\4S jrS\4S jr " S S\	5      rg)    )
ModuleTypeSimpleNamespace)TYPE_CHECKINGAnyCallableDict)
BaseTracer)guard_import)UUID)Span)Chain)Runrunr   returnc                     [        U R                  [        5      (       a  U R                  $ [        U R                  S5      (       a  U R                  R                  $ [        U R                  5      $ )Nvalue)
isinstancerun_typestrhasattrr   )r   s    c/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/callbacks/tracers/comet.py_get_run_typer      sM    #,,$$||	w	'	'||!!!3<<      c                      [        S5      n [        S5      n[        UR                  UR                  UR                  U R
                  U R                  S9$ )z?Import comet_llm api and raise an error if it is not installed.	comet_llmzcomet_llm.chains)chainspan	chain_apiexperiment_infoflush)r
   r   r   r   apir   r    )r   comet_llm_chainss     r   import_comet_llm_apir#      sP    [)I#$67$$"""&&!11oo r   c                      ^  \ rS rSrSrS\SS4U 4S jjrSS jrSS jrSS	 jr	SS
 jr
SS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSrU =r$ )CometTracer'   zComet Tracer.kwargsr   Nc                 f   > [         TU ]  " S0 UD6  0 U l         0 U l         U R	                  5         g)zInitialize the Comet Tracer.N )super__init__	_span_map_chains_map_initialize_comet_modules)selfr'   	__class__s     r   r+   CometTracer.__init__*   s4    "6"/1&24'&&(r   c                     [        5       nUR                  U l        UR                  U l        UR
                  U l        UR                  U l        UR                  U l
        g N)r#   r   _chainr   _spanr   
_chain_apir   _experiment_infor    _flush)r/   comet_llm_apis     r   r.   %CometTracer._initialize_comet_modules3   sL    ,."/"5"5!.!3!3
&3&=&=,9,I,I*7*=*=r   c                     UR                  5       nU R                  UR                     nUR                  US   S9  U R                  R                  U5        g Noutputs)r=   )dictr-   idset_outputsr6   	log_chain)r/   r   run_dictchain_s       r   _persist_runCometTracer._persist_run;   sI    #&88:!!#&&)8I#67!!&)r   c                 X   UR                  5       nUR                  (       dd  US   R                  SS 5      nU R                  R	                  US   UU R
                  R                  5       S9nX@R                  UR                  '   g U R                  R                  US   [        U5      US   UR                  S9nUR                  U R                  UR                     5        U R                  UR                     U R                  UR                  '   XPR                  UR                  '   g )Nextrametadatainputs)rI   rH   r   )rI   categoryrH   name)r>   parent_run_idgetr4   r   r7   r-   r?   r5   r   r   rK   __api__start__r,   )r/   r   rB   rH   rC   r   s         r   _process_start_trace CometTracer._process_start_traceA   s   #&88:  (,,Z>H"kk//)! $ 5 5 9 9 ; 0 F
 (.SVV$::??)&s+!'*XX	 + D  0 01B1B CD'+'7'78I8I'JDSVV$%)NN366"r   c                     UR                  5       nUR                  (       d  g U R                  UR                     nUR	                  US   S9  UR                  5         g r<   )r>   rL   r,   r?   r@   __api__end__)r/   r   rB   r   s       r   _process_end_traceCometTracer._process_end_traceX   sO    #&88:   >>#&&)DXi%89r   c                 $    U R                  5         g r3   )r8   )r/   s    r   r    CometTracer.flushb   s    r   c                 &    U R                  U5        g)zProcess the LLM Run upon start.NrO   r/   r   s     r   _on_llm_startCometTracer._on_llm_starte       !!#&r   c                 &    U R                  U5        g)zProcess the LLM Run.NrS   rY   s     r   _on_llm_endCometTracer._on_llm_endi       $r   c                 &    U R                  U5        g)zProcess the LLM Run upon error.Nr^   rY   s     r   _on_llm_errorCometTracer._on_llm_errorm   ra   r   c                 &    U R                  U5        g)z!Process the Chain Run upon start.NrX   rY   s     r   _on_chain_startCometTracer._on_chain_startq   r\   r   c                 &    U R                  U5        g)zProcess the Chain Run.Nr^   rY   s     r   _on_chain_endCometTracer._on_chain_endu   ra   r   c                 &    U R                  U5        g)z!Process the Chain Run upon error.Nr^   rY   s     r   _on_chain_errorCometTracer._on_chain_errory   ra   r   c                 &    U R                  U5        g)z Process the Tool Run upon start.NrX   rY   s     r   _on_tool_startCometTracer._on_tool_start}   r\   r   c                 &    U R                  U5        g)zProcess the Tool Run.Nr^   rY   s     r   _on_tool_endCometTracer._on_tool_end   ra   r   c                 &    U R                  U5        g)z Process the Tool Run upon error.Nr^   rY   s     r   _on_tool_errorCometTracer._on_tool_error   ra   r   )r4   r6   r-   r7   r8   r5   r,   )r   N)r   r   r   N)__name__
__module____qualname____firstlineno____doc__r   r+   r.   rD   rO   rS   r    rZ   r_   rc   rf   ri   rl   ro   rr   ru   __static_attributes____classcell__)r0   s   @r   r%   r%   '   sd    ) ) )>**. '%%'%%'%% %r   r%   N)typesr   r   typingr   r   r   r   langchain_core.tracersr	   langchain_core.utilsr
   uuidr   r   r   comet_llm.chains.chainr   -langchain_community.callbacks.tracers.schemasr   r   r   r#   r%   r)   r   r   <module>r      sP    - 5 5 - -,A!u ! !o `%* `%r   