Ë
    iÕhq  ã                  óª  — U d dl mZ d dlZd dlmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlmZ d d	lmZ d d
lmZ  ej(                  e«      Z edd¬«      Zded<    edd¬«      Zded<    edd¬«      Zded<    edd¬«      Zded<    eed«        eed«        eeded«        eeded«       edd„«       Zedd„«       Ze	 d	 	 	 d d„«       Zy)!é    )ÚannotationsN)Úcontextmanager)Ú
ContextVar)Ú	GeneratorÚOptional)Úregister_configure_hook)Ú)BedrockAnthropicTokenUsageCallbackHandler)ÚOpenAICallbackHandler)ÚCometTracer)ÚWandbTracerÚopenai_callback)Údefaultz+ContextVar[Optional[OpenAICallbackHandler]]Úopenai_callback_varÚbedrock_anthropic_callbackz?ContextVar[Optional[BedrockAnthropicTokenUsageCallbackHandler]]Úbedrock_anthropic_callback_varÚtracing_wandb_callbackz!ContextVar[Optional[WandbTracer]]Úwandb_tracing_callback_varÚtracing_comet_callbackz!ContextVar[Optional[CometTracer]]Úcomet_tracing_callback_varTÚLANGCHAIN_WANDB_TRACINGÚLANGCHAIN_COMET_TRACINGc               #  ó|   K  — t        «       } t        j                  | «       | –— t        j                  d«       y­w)a-  Get the OpenAI callback handler in a context manager.
    which conveniently exposes token and cost information.

    Returns:
        OpenAICallbackHandler: The OpenAI callback handler.

    Example:
        >>> with get_openai_callback() as cb:
        ...     # Use the OpenAI callback handler
    N)r
   r   Úset©Úcbs    úc/var/www/html/dev/engine/venv/lib/python3.12/site-packages/langchain_community/callbacks/manager.pyÚget_openai_callbackr   -   s1   è ø€ ô 
Ó	 €BÜ×Ñ˜BÔØ
‚HÜ×Ñ˜DÕ!ùó   ‚:<c               #  ó|   K  — t        «       } t        j                  | «       | –— t        j                  d«       y­w)ay  Get the Bedrock anthropic callback handler in a context manager.
    which conveniently exposes token and cost information.

    Returns:
        BedrockAnthropicTokenUsageCallbackHandler:
            The Bedrock anthropic callback handler.

    Example:
        >>> with get_bedrock_anthropic_callback() as cb:
        ...     # Use the Bedrock anthropic callback handler
    N)r	   r   r   r   s    r   Úget_bedrock_anthropic_callbackr    ?   s1   è ø€ ô 
3Ó	4€BÜ"×&Ñ& rÔ*Ø
‚HÜ"×&Ñ& tÕ,ùr   c              #  ó|   K  — t        «       }t        j                  |«       d–— t        j                  d«       y­w)a'  Get the WandbTracer in a context manager.

    Args:
        session_name (str, optional): The name of the session.
            Defaults to "default".

    Returns:
        None

    Example:
        >>> with wandb_tracing_enabled() as session:
        ...     # Use the WandbTracer session
    N)r   r   r   )Úsession_namer   s     r   Úwandb_tracing_enabledr#   T   s0   è ø€ ô" 
‹€BÜ×"Ñ" 2Ô&Ø
‚JÜ×"Ñ" 4Õ(ùr   )Úreturnz,Generator[OpenAICallbackHandler, None, None])r$   z@Generator[BedrockAnthropicTokenUsageCallbackHandler, None, None])r"   Ústrr$   zGenerator[None, None, None])Ú
__future__r   ÚloggingÚ
contextlibr   Úcontextvarsr   Útypingr   r   Úlangchain_core.tracers.contextr   Ú8langchain_community.callbacks.bedrock_anthropic_callbackr	   Ú)langchain_community.callbacks.openai_infor
   Ú+langchain_community.callbacks.tracers.cometr   Ú+langchain_community.callbacks.tracers.wandbr   Ú	getLoggerÚ__name__Úloggerr   Ú__annotations__r   r   r   r   r    r#   © ó    r   ú<module>r6      s;  ðÞ "ã Ý %Ý "÷õ
 Cõõ LÝ CÝ Cà	ˆ×	Ñ	˜8Ó	$€áCMØ˜tôDÐ Ð@ó ñ
 Ð+°TÔ:ð ð !ó ;ñ AKØ dôAÐ Ð=ó ñ AKØ dôAÐ Ð=ó ñ Ð+¨TÔ 2Ù Ð6¸Ô =Ù Ø  kÐ3Lôñ Ø  kÐ3Lôð
 ò"ó ð"ð" ò-ó ð-ð( à!ð)Øð)à ò)ó ñ)r5   