o
    i                     @   sN   d dl mZ d dl mZ G dd dZG dd deeZG dd deeZd	S )
    )AsyncStreamHandler)StreamHandlerc                   @   s   e Zd Zdd ZdddZdS )BaseVertexAIStreamHandlerc                 C   s(   | j ddr
| js| j| d S d S )Nis_chatF)optionsgetchunksappend)selfchunk r   \/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/contrib/internal/vertexai/_utils.py_process_chunk   s   z(BaseVertexAIStreamHandler._process_chunkNc                 C   sR   | j dd | jd< | j dd | jd< | jj| j| j| j| jd | j  d S )Nmodel_instanceinstancehistory)argskwargsresponse)	r   r   request_kwargsintegrationllmobs_set_tagsprimary_spanrequest_argsr   finish)r
   	exceptionr   r   r   finalize_stream   s   z)BaseVertexAIStreamHandler.finalize_streamN)__name__
__module____qualname__r   r   r   r   r   r   r      s    r   c                   @      e Zd ZdddZdS )VertexAIStreamHandlerNc                 C   s   |  | d S r   r   r
   r   iteratorr   r   r   process_chunk   s   z#VertexAIStreamHandler.process_chunkr   r   r   r    r&   r   r   r   r   r"          r"   c                   @   r!   )VertexAIAsyncStreamHandlerNc                    s   |  | d S r   r#   r$   r   r   r   r&      s   z(VertexAIAsyncStreamHandler.process_chunkr   r'   r   r   r   r   r)      r(   r)   N)0ddtrace.llmobs._integrations.base_stream_handlerr   r   r   r"   r)   r   r   r   r   <module>   s
    