
    ih_	                    j    d dl mZ d dlZd dlmZmZmZmZmZm	Z	m
Z
 d dlmZ d dlmZ  G d de      Zy)    )annotationsN)AnyAsyncIteratorDictListLiteralUnioncast)AsyncCallbackHandler)	LLMResultc                  x    e Zd ZU dZded<   ded<   edd       ZddZ	 	 	 	 	 	 	 	 ddZdd	Z	dd
Z
ddZddZy)AsyncIteratorCallbackHandlerz0Callback handler that returns an async iterator.zasyncio.Queue[str]queuezasyncio.Eventdonec                     y)NT selfs    a/var/www/html/dev/engine/venv/lib/python3.12/site-packages/langchain/callbacks/streaming_aiter.pyalways_verbosez+AsyncIteratorCallbackHandler.always_verbose   s        c                h    t        j                         | _        t        j                         | _        y N)asyncioQueuer   Eventr   r   s    r   __init__z%AsyncIteratorCallbackHandler.__init__   s    ]]_
MMO	r   c                @   K   | j                   j                          y wr   )r   clear)r   
serializedpromptskwargss       r   on_llm_startz)AsyncIteratorCallbackHandler.on_llm_start   s      			   c                T   K   |"|dk7  r| j                   j                  |       y y y w)N )r   
put_nowait)r   tokenr"   s      r   on_llm_new_tokenz-AsyncIteratorCallbackHandler.on_llm_new_token!   s,     "JJ!!%( "-s   &(c                @   K   | j                   j                          y wr   r   set)r   responser"   s      r   
on_llm_endz'AsyncIteratorCallbackHandler.on_llm_end%        		r$   c                @   K   | j                   j                          y wr   r+   )r   errorr"   s      r   on_llm_errorz)AsyncIteratorCallbackHandler.on_llm_error(   r/   r$   c                 K   | j                   j                         r| j                  j                         s't	        j
                  t	        j                  | j                   j                               t	        j                  | j                  j                               gt        j                         d {   \  }}|r|j                         j                          t        t        t        t        d   f   |j                         j                               }|du ry | | j                   j                         s
| j                  j                         s&y y 7 w)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   aiterz"AsyncIteratorCallbackHandler.aiter-   s    **""$DII,<,<,> !( ))$**..*:;))$))..*:;	 $33! KD% 		""$ !sGDM'9!:DHHJ<M<M<OPM $  3 **""$DII,<,<,>,>s   B6E"8E 9BE"E"E"N)returnbool)rB   None)r    zDict[str, Any]r!   z	List[str]r"   r   rB   rD   )r(   r=   r"   r   rB   rD   )r-   r   r"   r   rB   rD   )r1   BaseExceptionr"   r   rB   rD   )rB   zAsyncIterator[str])__name__
__module____qualname____doc____annotations__propertyr   r   r#   r)   r.   r2   rA   r   r   r   r   r      sa    :
 $(3<HK	)
 r   r   )
__future__r   r   typingr   r   r   r   r   r	   r
   langchain_core.callbacksr   langchain_core.outputsr   r   r   r   r   <module>rP      s'    "  G G G 9 ,
; #7 ; r   