
    	hh5                       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	m
Z
mZ d dlmZmZmZmZ ddlmZ ddlmZmZmZmZmZ d	d
lmZmZ d	dlmZmZmZ d	dlm Z m!Z! d	dl"m#Z#m$Z$ d	dl%m&Z&mZ' ddl(m)Z)m*Z*m+Z+ d	dl,m-Z- d	dl.m/Z/m0Z0m1Z1  G d dee)                   Z2 G d dee)                   Z3 G d dee)                   Z4 G d dee)                   Z5 G d dee)                   Z6dS )    )annotationsN)TracebackType)AnyListGenericIterable	Awaitablecast)SelfCallableIteratorAsyncIterator   )ParsedResponseSnapshot)ResponseStreamEventResponseTextDoneEventResponseCompletedEventResponseTextDeltaEvent'ResponseFunctionCallArgumentsDeltaEvent   )	NOT_GIVENNotGiven)is_givenconsume_sync_iteratorconsume_async_iterator)buildconstruct_type_unchecked)StreamAsyncStream)ParsedResponser      )TextFormatT
parse_textparse_response)	ToolParam)ParsedContentParsedResponseOutputMessageParsedResponseFunctionToolCallc                  V    e Zd ZddZd dZd!dZd"dZd!dZd#dZd$dZ	d%dZ
d"dZdS )&ResponseStream
raw_streamStream[RawResponseStreamEvent]text_formattype[TextFormatT] | NotGiveninput_toolsIterable[ToolParam] | NotGivenstarting_after
int | NonereturnNonec                   || _         |j        | _        |                                 | _        t          ||          | _        || _        d S N)r-   r/   _raw_streamresponse	_response
__stream__	_iteratorResponseStreamState_state_starting_afterselfr+   r-   r/   r1   s        v/var/www/html/web-builder-api.evdpl.com/venv/lib/python3.11/site-packages/openai/lib/streaming/responses/_responses.py__init__zResponseStream.__init__   I     &#,**)k{[[[-     ResponseStreamEvent[TextFormatT]c                4    | j                                         S N)r<   __next__rA   s    rB   rI   zResponseStream.__next__-   s    ~&&(((rE   *Iterator[ResponseStreamEvent[TextFormatT]]c              #  &   K   | j         D ]}|V  d S rH   r<   rA   items     rB   __iter__zResponseStream.__iter__0   s,      N 	 	DJJJJ	 	rE   r   c                    | S rH    rJ   s    rB   	__enter__zResponseStream.__enter__4   s    rE   c              #     K   | j         D ]<}| j                            |          }|D ]}| j        |j        | j        k    r|V  =d S rH   r8   r>   handle_eventr?   sequence_numberrA   	sse_eventevents_to_fireevents       rB   r;   zResponseStream.__stream__7   sn      ) 	  	 I![55i@@N'    '/53H4K_3_3_KKK 	  	 rE   exc_typetype[BaseException] | NoneexcBaseException | Noneexc_tbTracebackType | Nonec                .    |                                   d S rH   closerA   r\   r^   r`   s       rB   __exit__zResponseStream.__exit__>   s     	

rE   c                8    | j                                          dS z
        Close the response and release the connection.

        Automatically called if the response body is read to completion.
        N)r:   rd   rJ   s    rB   rd   zResponseStream.closeF   s     	rE   ParsedResponse[TextFormatT]c                h    |                                   | j        j        }|st          d          |S )xWaits until the stream has been read to completion and returns
        the accumulated `ParsedResponse` object.
        ,Didn't receive a `response.completed` event.
until_doner>   _completed_responseRuntimeErrorrA   r9   s     rB   get_final_responsez!ResponseStream.get_final_responseN   s;     	;2 	OMNNNrE   c                $    t          |            | S )*Blocks until the stream has been consumed.)r   rJ   s    rB   rn   zResponseStream.until_doneY   s    d###rE   N)
r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r3   rF   )r3   rK   r3   r   r\   r]   r^   r_   r`   ra   r3   r4   r3   r4   r3   ri   )__name__
__module____qualname__rC   rI   rP   rS   r;   rf   rd   rr   rn   rR   rE   rB   r*   r*      s        . . . .) ) ) )                   	 	 	 	     rE   r*   c                  &    e Zd ZddZddZddZdS )ResponseStreamManagerapi_request,Callable[[], Stream[RawResponseStreamEvent]]r-   r.   r/   r0   r1   r2   r3   r4   c               L    d | _         || _        || _        || _        || _        d S rH   )_ResponseStreamManager__stream#_ResponseStreamManager__api_request#_ResponseStreamManager__text_format#_ResponseStreamManager__input_tools&_ResponseStreamManager__starting_afterrA   r   r-   r/   r1   s        rB   rC   zResponseStreamManager.__init__`   s2     =A((( .rE   ResponseStream[TextFormatT]c                    |                                  }t          || j        | j        | j                  | _        | j        S N)r+   r-   r/   r1   )r   r*   r   r   r   r   rA   r+   s     rB   rS   zResponseStreamManager.__enter__n   sH    ''))
&!**0	
 
 
 }rE   r\   r]   r^   r_   r`   ra   c                J    | j         | j                                          d S d S rH   )r   rd   re   s       rB   rf   zResponseStreamManager.__exit__z   s.     =$M!!!!! %$rE   N)
r   r   r-   r.   r/   r0   r1   r2   r3   r4   )r3   r   rw   )rz   r{   r|   rC   rS   rf   rR   rE   rB   r~   r~   _   sP        / / / /
 
 
 
" " " " " "rE   r~   c                  V    e Zd ZddZd dZd!dZd!dZd"dZd#dZd$dZ	d%dZ
d"dZdS )&AsyncResponseStreamr+   #AsyncStream[RawResponseStreamEvent]r-   r.   r/   r0   r1   r2   r3   r4   c                   || _         |j        | _        |                                 | _        t          ||          | _        || _        d S r6   r7   r@   s        rB   rC   zAsyncResponseStream.__init__   rD   rE   rF   c                D   K   | j                                          d {V S rH   )r<   	__anext__rJ   s    rB   r   zAsyncResponseStream.__anext__   s,      ^--/////////rE   /AsyncIterator[ResponseStreamEvent[TextFormatT]]c               4   K   | j         2 3 d {V }|W V  6 d S rH   rM   rN   s     rB   	__aiter__zAsyncResponseStream.__aiter__   sF      . 	 	 	 	 	 	 	$JJJJJ )..s   c                  K   | j         2 3 d {V }| j                            |          }|D ]}| j        |j        | j        k    r|W V  C6 d S rH   rU   rX   s       rB   r;   zAsyncResponseStream.__stream__   s      #/ 	  	  	  	  	  	  	 )![55i@@N'    '/53H4K_3_3_KKKK   0//s   Ar   c                
   K   | S rH   rR   rJ   s    rB   
__aenter__zAsyncResponseStream.__aenter__   s      rE   r\   r]   r^   r_   r`   ra   c                >   K   |                                   d {V  d S rH   rc   re   s       rB   	__aexit__zAsyncResponseStream.__aexit__   s.       jjllrE   c                H   K   | j                                          d{V  dS rh   )r:   acloserJ   s    rB   rd   zAsyncResponseStream.close   s4       n##%%%%%%%%%%%rE   ri   c                x   K   |                                   d{V  | j        j        }|st          d          |S )rk   Nrl   rm   rq   s     rB   rr   z&AsyncResponseStream.get_final_response   sQ       oo;2 	OMNNNrE   c                4   K   t          |            d{V  | S )rt   N)r   rJ   s    rB   rn   zAsyncResponseStream.until_done   s+      $T*********rE   N)
r+   r   r-   r.   r/   r0   r1   r2   r3   r4   ru   )r3   r   rv   rw   rx   ry   )rz   r{   r|   rC   r   r   r;   r   r   rd   rr   rn   rR   rE   rB   r   r      s        . . . .0 0 0 0                & & & &	 	 	 	     rE   r   c                  &    e Zd ZddZddZddZdS )AsyncResponseStreamManagerr   .Awaitable[AsyncStream[RawResponseStreamEvent]]r-   r.   r/   r0   r1   r2   r3   r4   c               L    d | _         || _        || _        || _        || _        d S rH   )#_AsyncResponseStreamManager__stream(_AsyncResponseStreamManager__api_request(_AsyncResponseStreamManager__text_format(_AsyncResponseStreamManager__input_tools+_AsyncResponseStreamManager__starting_afterr   s        rB   rC   z#AsyncResponseStreamManager.__init__   s3     BF((( .rE    AsyncResponseStream[TextFormatT]c                |   K   | j          d {V }t          || j        | j        | j                  | _        | j        S r   )r   r   r   r   r   r   r   s     rB   r   z%AsyncResponseStreamManager.__aenter__   sU      -------
+!**0	
 
 
 }rE   r\   r]   r^   r_   r`   ra   c                Z   K   | j         !| j                                          d {V  d S d S rH   )r   rd   re   s       rB   r   z$AsyncResponseStreamManager.__aexit__   sD       =$-%%''''''''''' %$rE   N)
r   r   r-   r.   r/   r0   r1   r2   r3   r4   )r3   r   rw   )rz   r{   r|   rC   r   r   rR   rE   rB   r   r      sP        / / / /
 
 
 
( ( ( ( ( (rE   r   c                  .    e Zd ZddZddZddZddZdS )r=   r/   r0   r-   r.   r3   r4   c                   d | _         d | _        t          |          rd |D             ng | _        || _        t          j        |          r|nt          | _        d S )Nc                    g | ]}|S rR   rR   ).0tools     rB   
<listcomp>z0ResponseStreamState.__init__.<locals>.<listcomp>   s    :::dT:::rE   )	&_ResponseStreamState__current_snapshotro   r   _input_tools_text_formatinspectisclassr   _rich_text_format)rA   r/   r-   s      rB   rC   zResponseStreamState.__init__   sk     BFGK >F{>S>S[::k::::Y['AHQ\A]A]2l++clrE   r[   RawResponseStreamEvent&List[ResponseStreamEvent[TextFormatT]]c                   |                      |          x| _        }g }|j        dk    r|j        |j                 }|j        dk    sJ |j        |j                 }|j        dk    sJ |                    t          t          |j        |j
        |j        |j        |j        |j        d|j        	  	                   n|j        dk    r|j        |j                 }|j        dk    sJ |j        |j                 }|j        dk    sJ |                    t          t          t                    |j        |j        |j        |j        |j        d|j        t#          |j        | j                  	  	                   n|j        dk    rg|j        |j                 }|j        d	k    sJ |                    t          t&          |j
        |j        |j        |j        d|j        
                     n\|j        dk    r<| j        }|J |                    t          t,          |j        d|                     n|                    |           |S )Nresponse.output_text.deltamessageoutput_text)content_indexdeltaitem_idoutput_indexrW   logprobstypesnapshotzresponse.output_text.done)r-   )r   r   r   rW   r   r   textparsed&response.function_call_arguments.deltafunction_call)r   r   r   rW   r   r   response.completed)rW   r   r9   )accumulate_eventr   r   outputr   contentr   appendr   r   r   r   rW   r   r   r   r"   r#   r   r   	argumentsro   r   )rA   r[   r   eventsr   r   r9   s          rB   rV   z ResponseStreamState.handle_event   s   -1-B-B5-I-II(9;:555_U%78F;)++++nU%89G<=0000MM*"'"5+!M!&!3$)$9"^5$\
 
 
    Z666_U%78F;)++++nU%89G<=0000MM)+6"'"5!M!&!3$)$9"^4%ejd>OPPP
 
 
    ZCCC_U%78F;/1111MM;+!M!&!3$)$9A#-  
 
 
 
 Z////H'''MM*$)$9-%	      MM%   rE   r   c                   | j         }||                     |          S |j        dk    r|j        j        dk    rZ|j                            t          t          t          t                    |j        
                                                     n|j        j        dk    rZ|j                            t          t          t          t                    |j        
                                                     nn|j                            |j                   nM|j        dk    rv|j        |j                 }|j        dk    rX|j                            t          t          t          t                    |j        
                                                     n|j        dk    rR|j        |j                 }|j        dk    r4|j        |j                 }|j        dk    sJ |xj        |j        z  c_        no|j        dk    r3|j        |j                 }|j        dk    r|xj        |j        z  c_        n1|j        d	k    r&t)          | j        |j        | j        
          | _        |S )Nzresponse.output_item.addedr   type_valuer   zresponse.content_part.addedr   r   r   r   )r-   r9   r/   )r   _create_initial_responser   rO   r   r   r   r
   r   r(   to_dictr'   r   r   r&   partr   r   r   r   r$   r   r9   r   ro   )rA   r[   r   r   r   s        rB   r   z$ResponseStreamState.accumulate_eventE  sV   *00777:555z/11&&,"3(FGGuzOaOaOcOc     
 I--&&,4=X3Y3Yafakasasauauvvv    &&uz2222Z888_U%78F{i''%%,4]3K3KSXS]SeSeSgSghhh   Z777_U%78F{i'' .)<=|}4444+ZCCC_U%78F{o--  EK/  Z///'5 - -( ( (D$ rE   c                    |j         dk    rt          d|j          d          t          t          |j                                                  S )Nzresponse.createdz5Expected to have received `response.created` before ``r   )r   rp   r   r   r9   r   )rA   r[   s     rB   r   z,ResponseStreamState._create_initial_responsep  sP    :+++dW\Wadddeee'.DENLbLbLdLdeeeerE   N)r/   r0   r-   r.   r3   r4   )r[   r   r3   r   )r[   r   r3   r   )rz   r{   r|   rC   rV   r   r   rR   rE   rB   r=   r=      st        
m 
m 
m 
mL L L L\) ) ) )Vf f f f f frE   r=   )7
__future__r   r   typesr   typingr   r   r   r   r	   r
   typing_extensionsr   r   r   r   _typesr   _eventsr   r   r   r   r   r   r   _utilsr   r   r   _modelsr   r   
_streamingr   r   types.responsesr    r   _parsing._responsesr"   r#   r$   types.responses.tool_paramr%   types.responses.parsed_responser&   r'   r(   r*   r~   r   r   r=   rR   rE   rB   <module>r      s   " " " " " "        @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ E E E E E E E E E E E E * * * * * *              + * * * * * * * N N N N N N N N N N 7 7 7 7 7 7 7 7 . . . . . . . . ] ] ] ] ] ] ] ] J J J J J J J J J J 4 4 4 4 4 4         > > > > >W[) > > >B"" "" "" "" ""GK0 "" "" ""J> > > > >'+. > > >B"( "( "( "( "(!5 "( "( "(JJf Jf Jf Jf Jf'+. Jf Jf Jf Jf JfrE   