
    Ng                         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dS )    )
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    g/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/callbacks/tracers/comet.py_get_run_typer      sM    #,$$ !|	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#      sR    [))I#$677$""&!1o   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                      t                      j        di | i | _        	 i | _        	 |                                  dS )zInitialize the Comet Tracer.N )super__init__	_span_map_chains_map_initialize_comet_modules)selfr&   	__class__s     r   r*   zCometTracer.__init__*   sM    ""6"""/1&24'&&(((((r   c                     t                      }|j        | _        |j        | _        |j        | _        |j        | _        |j	        | _
        d S N)r#   r   _chainr   _spanr   
_chain_apir   _experiment_infor    _flush)r.   comet_llm_apis     r   r-   z%CometTracer._initialize_comet_modules3   sD    ,.."/"5!.!3
&3&=,9,I*7*=r   r   r   c                     |                                 }| j        |j                 }|                    |d                    | j                            |           d S Noutputs)r:   )dictr,   idset_outputsr4   	log_chain)r.   r   run_dictchain_s       r   _persist_runzCometTracer._persist_run;   sV    #&88::!#&)8I#6777!!&)))))r   c                 (   |                                 }|j        sg|d                             dd           }| j                            |d         || j                                                  }|| j        |j        <   d S | j        	                    |d         t          |          |d         |j                  }|                    | j        |j                            | j        |j                 | j        |j        <   || j        |j        <   d S )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"k//)! $ 5 9 9 ; ; 0  F
 (.DSV$$$:??)&s++!'*X	 +  D  01B CDDD'+'78I'JDSV$%)DN36"""r   c                     |                                 }|j        sd S | j        |j                 }|                    |d                    |                                 d S r9   )r;   rH   r+   r<   r=   __api__end__)r.   r   r?   r   s       r   _process_end_tracezCometTracer._process_end_traceX   sc    #&88::  	 D >#&)DXi%8999r   c                 .    |                                   d S r1   )r6   )r.   s    r   r    zCometTracer.flushb   s    r   c                 0    |                      |           dS )zProcess the LLM Run upon start.NrK   r.   r   s     r   _on_llm_startzCometTracer._on_llm_starte       !!#&&&&&r   c                 0    |                      |           dS )zProcess the LLM Run.NrN   rR   s     r   _on_llm_endzCometTracer._on_llm_endi       $$$$$r   c                 0    |                      |           dS )zProcess the LLM Run upon error.NrV   rR   s     r   _on_llm_errorzCometTracer._on_llm_errorm   rX   r   c                 0    |                      |           dS )z!Process the Chain Run upon start.NrQ   rR   s     r   _on_chain_startzCometTracer._on_chain_startq   rT   r   c                 0    |                      |           dS )zProcess the Chain Run.NrV   rR   s     r   _on_chain_endzCometTracer._on_chain_endu   rX   r   c                 0    |                      |           dS )z!Process the Chain Run upon error.NrV   rR   s     r   _on_chain_errorzCometTracer._on_chain_errory   rX   r   c                 0    |                      |           dS )z Process the Tool Run upon start.NrQ   rR   s     r   _on_tool_startzCometTracer._on_tool_start}   rT   r   c                 0    |                      |           dS )zProcess the Tool Run.NrV   rR   s     r   _on_tool_endzCometTracer._on_tool_end   rX   r   c                 0    |                      |           dS )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%   '   si       ) ) ) ) ) ) ) )> > > >* * * ** * * *.          ' ' ' '% % % %% % % %' ' ' '% % % %% % % %' ' ' '% % % %% % % % % % % %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      s1   - - - - - - - - 5 5 5 5 5 5 5 5 5 5 5 5 - - - - - - - - - - - - B,,,,,,AAAAAA!u ! ! ! ! !o    `% `% `% `% `%* `% `% `% `% `%r   