
    @h	                    j    S SK Jr  S SKrS SKJr  S SKJrJrJrJ	r	  S SK
Jr  S SKJr   " S S\5      rg)	    )annotationsN)AsyncIterator)AnyLiteralUnioncast)AsyncCallbackHandler)	LLMResultc                      \ rS rSr% SrS\S'   S\S'   \SS j5       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g)AsyncIteratorCallbackHandler   z0Callback handler that returns an async iterator.zasyncio.Queue[str]queuezasyncio.Eventdonec                    g)NT selfs    [/var/www/html/shao/venv/lib/python3.13/site-packages/langchain/callbacks/streaming_aiter.pyalways_verbose+AsyncIteratorCallbackHandler.always_verbose   s        c                l    [         R                  " 5       U l        [         R                  " 5       U l        g N)asyncioQueuer   Eventr   r   s    r   __init__%AsyncIteratorCallbackHandler.__init__   s    ]]_
MMO	r   c                @   #    U R                   R                  5         g 7fr   )r   clear)r   
serializedpromptskwargss       r   on_llm_start)AsyncIteratorCallbackHandler.on_llm_start   s      			   c                X   #    Ub#  US:w  a  U R                   R                  U5        g g g 7f)N )r   
put_nowait)r   tokenr#   s      r   on_llm_new_token-AsyncIteratorCallbackHandler.on_llm_new_token%   s+     "JJ!!%( "-s   (*c                @   #    U R                   R                  5         g 7fr   r   set)r   responser#   s      r   
on_llm_end'AsyncIteratorCallbackHandler.on_llm_end)        		r&   c                @   #    U R                   R                  5         g 7fr   r.   )r   errorr#   s      r   on_llm_error)AsyncIteratorCallbackHandler.on_llm_error,   r3   r&   c                 #    U R                   R                  5       (       a   U R                  R                  5       (       Gd8  [        R
                  " [        R                  " U R                   R                  5       5      [        R                  " U R                  R                  5       5      /[        R                  S9I S h  vN u  pU(       a  UR                  5       R                  5         [        [        [        [        S   4   UR                  5       R                  5       5      nUSL a  g U7v   U R                   R                  5       (       d  GM  U R                  R                  5       (       d  GM7  g g  N7f)N)return_whenT)r   emptyr   is_setr   waitensure_futuregetFIRST_COMPLETEDpopcancelr   r   strr   result)r   r   othertoken_or_dones       r   aiter"AsyncIteratorCallbackHandler.aiter1   s    **""$$DII,<,<,>,> !( ))$**..*:;))$))..*:;	 $33! KD 		""$ !sGDM'9!:DHHJ<M<M<OPM $  3 **""$$DII,<,<,>,>s   C E=E;BE=E=9E=)r   r   N)returnbool)rH   None)r!   zdict[str, Any]r"   z	list[str]r#   r   rH   rJ   )r*   rB   r#   r   rH   rJ   )r0   r
   r#   r   rH   rJ   )r5   BaseExceptionr#   r   rH   rJ   )rH   zAsyncIterator[str])__name__
__module____qualname____firstlineno____doc____annotations__propertyr   r   r$   r+   r1   r6   rF   __static_attributes__r   r   r   r   r      sg    :
 $"  	
 
)
 r   r   )
__future__r   r   collections.abcr   typingr   r   r   r   langchain_core.callbacksr	   langchain_core.outputsr
   r   r   r   r   <module>rY      s'    "  ) , , 9 ,
> #7 > r   