
    7|h                         d dl mZmZ d dlmZmZmZmZ d dlm	Z	 d dl
mZ erd dlmZ d dlmZ d dlmZ d dlmZ d	d
defdZdefdZ G d de	      Zy)    )
ModuleTypeSimpleNamespace)TYPE_CHECKINGAnyCallableDict)
BaseTracer)guard_import)UUID)Span)Chain)Runrunr   returnc                     t        | j                  t              r| j                  S t        | j                  d      r| j                  j                  S t        | j                        S )Nvalue)
isinstancerun_typestrhasattrr   )r   s    j/var/www/html/test/engine/venv/lib/python3.12/site-packages/langchain_community/callbacks/tracers/comet.py_get_run_typer      sG    #,,$||	w	'||!!!3<<      c                      t        d      } t        d      }t        |j                  |j                  |j                  | j
                  | j                        S )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                        e Zd ZdZdeddf 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 xZS )CometTracerzComet Tracer.kwargsr   Nc                 d    t        |   di | i | _        	 i | _        	 | j	                          y)zInitialize the Comet Tracer.N )super__init__	_span_map_chains_map_initialize_comet_modules)selfr&   	__class__s     r   r*   zCometTracer.__init__*   s4    "6"/1&24'&&(r   c                     t               }|j                  | _        |j                  | _        |j
                  | _        |j                  | _        |j                  | _
        y N)r#   r   _chainr   _spanr   
_chain_apir   _experiment_infor    _flush)r.   comet_llm_apis     r   r-   z%CometTracer._initialize_comet_modules3   sL    ,."/"5"5!.!3!3
&3&=&=,9,I,I*7*=*=r   c                     |j                         }| j                  |j                     }|j                  |d          | j                  j                  |       y Noutputs)r:   )dictr,   idset_outputsr4   	log_chain)r.   r   run_dictchain_s       r   _persist_runzCometTracer._persist_run;   sI    #&88:!!#&&)8I#67!!&)r   c                 ^   |j                         }|j                  sh|d   j                  dd       }| j                  j	                  |d   || j
                  j                               }|| j                  |j                  <   y | j                  j                  |d   t        |      |d   |j                        }|j                  | j                  |j                            | j                  |j                     | j                  |j                  <   || j                  |j                  <   y )Nextrametadatainputs)rE   rD   r   )rE   categoryrD   name)r;   parent_run_idgetr2   r   r5   r,   r<   r3   r   r   rG   __api__start__r+   )r.   r   r?   rD   r@   r   s         r   _process_start_tracez CometTracer._process_start_traceA   s   #&88:  (,,Z>H"kk//)! $ 5 5 9 9 ; 0 F
 (.DSVV$::??)&s+!'*XX	 + D  0 01B1B CD'+'7'78I8I'JDSVV$%)DNN366"r   c                     |j                         }|j                  sy | j                  |j                     }|j	                  |d          |j                          y r9   )r;   rH   r+   r<   r=   __api__end__)r.   r   r?   r   s       r   _process_end_tracezCometTracer._process_end_traceX   sO    #&88:   >>#&&)DXi%89r   c                 $    | j                          y r1   )r6   )r.   s    r   r    zCometTracer.flushb   s    r   c                 &    | j                  |       y)zProcess the LLM Run upon start.NrK   r.   r   s     r   _on_llm_startzCometTracer._on_llm_starte       !!#&r   c                 &    | j                  |       y)zProcess the LLM Run.NrN   rR   s     r   _on_llm_endzCometTracer._on_llm_endi       $r   c                 &    | j                  |       y)zProcess the LLM Run upon error.NrV   rR   s     r   _on_llm_errorzCometTracer._on_llm_errorm   rX   r   c                 &    | j                  |       y)z!Process the Chain Run upon start.NrQ   rR   s     r   _on_chain_startzCometTracer._on_chain_startq   rT   r   c                 &    | j                  |       y)zProcess the Chain Run.NrV   rR   s     r   _on_chain_endzCometTracer._on_chain_endu   rX   r   c                 &    | j                  |       y)z!Process the Chain Run upon error.NrV   rR   s     r   _on_chain_errorzCometTracer._on_chain_errory   rX   r   c                 &    | j                  |       y)z Process the Tool Run upon start.NrQ   rR   s     r   _on_tool_startzCometTracer._on_tool_start}   rT   r   c                 &    | j                  |       y)zProcess the Tool Run.NrV   rR   s     r   _on_tool_endzCometTracer._on_tool_end   rX   r   c                 &    | j                  |       y)z Process the Tool Run upon error.NrV   rR   s     r   _on_tool_errorzCometTracer._on_tool_error   rX   r   )r   N)r   r   r   N)__name__
__module____qualname____doc__r   r*   r-   rA   rK   rN   r    rS   rW   rZ   r\   r^   r`   rb   rd   rf   __classcell__)r/   s   @r   r%   r%   '   s_    ) ) )>**. '%%'%%'%%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>rs      sP    - 5 5 - -,A!u ! !o `%* `%r   