
    Ng_	                    r    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dS )    )annotationsN)AnyAsyncIteratorDictListLiteralUnioncast)AsyncCallbackHandler)	LLMResultc                  p    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dS )%AsyncIteratorCallbackHandlerz0Callback handler that returns an async iterator.zasyncio.Queue[str]queuezasyncio.Eventdonereturnboolc                    dS )NT selfs    _/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain/callbacks/streaming_aiter.pyalways_verbosez+AsyncIteratorCallbackHandler.always_verbose   s    t    Nonec                f    t          j                    | _        t          j                    | _        d S N)asyncioQueuer   Eventr   r   s    r   __init__z%AsyncIteratorCallbackHandler.__init__   s     ]__
MOO			r   
serializedDict[str, Any]prompts	List[str]kwargsr   c                <   K   | j                                          d S r   )r   clear)r   r!   r#   r%   s       r   on_llm_startz)AsyncIteratorCallbackHandler.on_llm_start   s        		r   tokenstrc                V   K   |"|dk    r| j                             |           d S d S d S )N )r   
put_nowait)r   r)   r%   s      r   on_llm_new_tokenz-AsyncIteratorCallbackHandler.on_llm_new_token!   s<      "J!!%((((( r   responser   c                <   K   | j                                          d S r   r   set)r   r/   r%   s      r   
on_llm_endz'AsyncIteratorCallbackHandler.on_llm_end%         	r   errorBaseExceptionc                <   K   | j                                          d S r   r1   )r   r5   r%   s      r   on_llm_errorz)AsyncIteratorCallbackHandler.on_llm_error(   r4   r   AsyncIterator[str]c                 K   | j                                         r| j                                        s7t	          j        t	          j        | j                                                   t	          j        | j                                                  gt          j                   d {V \  }}|r&|	                                
                                 t          t          t          t          d         f         |	                                                                          }|du rd S |W V  | j                                         | j                                        5d S d S )N)return_whenT)r   emptyr   is_setr   waitensure_futuregetFIRST_COMPLETEDpopcancelr
   r	   r*   r   result)r   r   othertoken_or_dones       r   aiterz"AsyncIteratorCallbackHandler.aiter-   si     *""$$ 	 DI,<,<,>,> 	  !( )$*..*:*:;;)$)..*:*:;;	 $3! ! !      KD%  %		""$$$ !sGDM'9!:DHHJJ<M<M<O<OPPM $$  3 *""$$ 	 DI,<,<,>,> 	  	  	  	  	 r   N)r   r   )r   r   )r!   r"   r#   r$   r%   r   r   r   )r)   r*   r%   r   r   r   )r/   r   r%   r   r   r   )r5   r6   r%   r   r   r   )r   r9   )__name__
__module____qualname____doc____annotations__propertyr   r    r(   r.   r3   r8   rG   r   r   r   r   r      s         ::   X$ $ $ $   ) ) ) )      
           r   r   )
__future__r   r   typingr   r   r   r   r   r	   r
   langchain_core.callbacksr   langchain_core.outputsr   r   r   r   r   <module>rR      s    " " " " " "  G G G G G G G G G G G G G G G G G G 9 9 9 9 9 9 , , , , , ,
;  ;  ;  ;  ; #7 ;  ;  ;  ;  ; r   