o
    `+ i	                     @  sd   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 deZdS )	    )annotationsN)AsyncIterator)AnyLiteralUnioncast)AsyncCallbackHandler)	LLMResultc                   @  sl   e Zd ZU dZded< ded< ed%dd	Zd&ddZd'ddZd(ddZ	d)ddZ
d*dd Zd+d"d#Zd$S ),AsyncIteratorCallbackHandlerz0Callback handler that returns an async iterator.zasyncio.Queue[str]queuezasyncio.Eventdonereturnboolc                 C  s   dS )NT selfr   r   o/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/langchain/callbacks/streaming_aiter.pyalways_verbose   s   z+AsyncIteratorCallbackHandler.always_verboseNonec                 C  s   t  | _t  | _d S N)asyncioQueuer   Eventr   r   r   r   r   __init__   s   
z%AsyncIteratorCallbackHandler.__init__
serializeddict[str, Any]prompts	list[str]kwargsr   c                      | j   d S r   )r   clear)r   r   r   r   r   r   r   on_llm_start   s   z)AsyncIteratorCallbackHandler.on_llm_starttokenstrc                   s*   |d ur|dkr| j | d S d S d S )N )r   
put_nowait)r   r"   r   r   r   r   on_llm_new_token%   s   z-AsyncIteratorCallbackHandler.on_llm_new_tokenresponser	   c                   r   r   r   set)r   r'   r   r   r   r   
on_llm_end)      z'AsyncIteratorCallbackHandler.on_llm_enderrorBaseExceptionc                   r   r   r(   )r   r,   r   r   r   r   on_llm_error,   r+   z)AsyncIteratorCallbackHandler.on_llm_errorAsyncIterator[str]c                 C s   | j  r| j sRtjt| j  t| j gtjdI d H \}}|r.|	 
  ttttd f |	  }|du rCd S |V  | j  r| j rd S d S )N)return_whenT)r   emptyr   is_setr   waitensure_futuregetFIRST_COMPLETEDpopcancelr   r   r#   r   result)r   r   otherZtoken_or_doner   r   r   aiter1   s   z"AsyncIteratorCallbackHandler.aiterN)r   r   )r   r   )r   r   r   r   r   r   r   r   )r"   r#   r   r   r   r   )r'   r	   r   r   r   r   )r,   r-   r   r   r   r   )r   r/   )__name__
__module____qualname____doc____annotations__propertyr   r   r!   r&   r*   r.   r;   r   r   r   r   r
      s   
 


	

r
   )
__future__r   r   collections.abcr   typingr   r   r   r   Zlangchain_core.callbacksr   Zlangchain_core.outputsr	   r
   r   r   r   r   <module>   s    