
    dhq                       % S SK Jr  S SKrS SKJr  S SK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	KJr  S S
KJr  \R(                  " \5      r\" SSS9rS\S'   \" SSS9rS\S'   \" SSS9rS\S'   \" SSS9rS\S'   \" \S5        \" \S5        \" \S\S5        \" \S\S5        \SS j5       r\SS j5       r\ S   S S jj5       rg)!    )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               #  |   #    [        5       n [        R                  U 5        U v   [        R                  S5        g7f)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    ]/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/callbacks/manager.pyget_openai_callbackr   -   s0      
	 BB
HD!   :<c               #  |   #    [        5       n [        R                  U 5        U v   [        R                  S5        g7f)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    ?   s0      
3	4B"&&r*
H"&&t,r   c              #  |   #    [        5       n[        R                  U5        Sv   [        R                  S5        g7f)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   s/     " 
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      s9   "  % "
 C L C C			8	$CMtD @ 
 +T:  ! ; AKdA =  AKdA =  +T 2 6 = k3L k3L
 " "" - -( !)) ) )r5   