
    h	                    j    d dl mZ d dlZd dlmZ d dl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)AsyncIterator)Any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/eduruby.in/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.aiter1   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)r@   None)r   zdict[str, Any]r   z	list[str]r    r   r@   rB   )r&   r;   r    r   r@   rB   )r+   r
   r    r   r@   rB   )r/   BaseExceptionr    r   r@   rB   )r@   zAsyncIterator[str])__name__
__module____qualname____doc____annotations__propertyr   r   r!   r'   r,   r0   r?   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>rO      s'    "  ) , , 9 ,
> #7 > r   