
    hY%h1                       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)         Z6y)    )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                  t    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y
)ResponseStreamc                   || _         |j                  | _        | j                         | _        t        ||      | _        y N)text_formatinput_tools_raw_streamresponse	_response
__stream__	_iteratorResponseStreamState_stateself
raw_streamr-   r.   s       /var/www/pru.catia.catastroantioquia-mas.com/valormas/lib/python3.12/site-packages/openai/lib/streaming/responses/_responses.py__init__zResponseStream.__init__   5     &#,,*)k{[    c                6    | j                   j                         S N)r4   __next__r8   s    r:   r@   zResponseStream.__next__+   s    ~~&&((r=   c              #  6   K   | j                   D ]  }|  y wr?   r4   r8   items     r:   __iter__zResponseStream.__iter__.   s     NN 	DJ	s   c                    | S r?    rA   s    r:   	__enter__zResponseStream.__enter__2   s    r=   c              #  z   K   | j                   D ](  }| j                  j                  |      }|D ]  }|  * y wr?   r0   r6   handle_eventr8   	sse_eventevents_to_fireevents       r:   r3   zResponseStream.__stream__5   sC     )) 	I![[55i@N' 	s   9;c                $    | j                          y r?   closer8   exc_typeexcexc_tbs       r:   __exit__zResponseStream.__exit__;   s     	

r=   c                8    | j                   j                          yz
        Close the response and release the connection.

        Automatically called if the response body is read to completion.
        N)r2   rS   rA   s    r:   rS   zResponseStream.closeC   s     	r=   c                l    | j                          | 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_doner6   _completed_responseRuntimeErrorr8   r1   s     r:   get_final_responsez!ResponseStream.get_final_responseK   s1     	;;22MNNr=   c                    t        |        | S )*Blocks until the stream has been consumed.)r   rA   s    r:   r_   zResponseStream.until_doneV   s    d#r=   N)r9   zStream[RawResponseStreamEvent]r-   type[TextFormatT] | NotGivenr.   Iterable[ToolParam] | NotGivenreturnNonerh   z ResponseStreamEvent[TextFormatT])rh   z*Iterator[ResponseStreamEvent[TextFormatT]]rh   r   rU   ztype[BaseException] | NonerV   zBaseException | NonerW   zTracebackType | Nonerh   ri   rh   ri   rh   zParsedResponse[TextFormatT])__name__
__module____qualname__r;   r@   rF   rI   r3   rX   rS   rc   r_   rH   r=   r:   r*   r*      s    
\ 3
\ 2	
\
 4
\ 

\), " %	
 
	r=   r*   c                  D    e Zd Z	 	 	 	 	 	 	 	 ddZddZ	 	 	 	 	 	 	 	 ddZy)ResponseStreamManagerc               <    d | _         || _        || _        || _        y r?   )_ResponseStreamManager__stream#_ResponseStreamManager__api_request#_ResponseStreamManager__text_format#_ResponseStreamManager__input_toolsr8   api_requestr-   r.   s       r:   r;   zResponseStreamManager.__init__]   s$     =A(((r=   c                    | j                         }t        || j                  | j                        | _        | j                  S N)r9   r-   r.   )rv   r*   rw   rx   ru   r8   r9   s     r:   rI   zResponseStreamManager.__enter__i   s=    '')
&!****
 }}r=   c                R    | j                   | j                   j                          y y r?   )ru   rS   rT   s       r:   rX   zResponseStreamManager.__exit__t   s#     ==$MM! %r=   N)rz   z,Callable[[], Stream[RawResponseStreamEvent]]r-   rf   r.   rg   rh   ri   )rh   zResponseStream[TextFormatT]rl   )ro   rp   rq   r;   rI   rX   rH   r=   r:   rs   rs   \   s]    
)A
) 2	
)
 4
) 

)	"," "" %	"
 
"r=   rs   c                  t    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y
)AsyncResponseStreamc                   || _         |j                  | _        | j                         | _        t        ||      | _        y r,   r/   r7   s       r:   r;   zAsyncResponseStream.__init__   r<   r=   c                R   K   | j                   j                          d {   S 7 wr?   )r4   	__anext__rA   s    r:   r   zAsyncResponseStream.__anext__   s     ^^--////s   '%'c               H   K   | j                   2 3 d {   }| 7 
6 y wr?   rC   rD   s     r:   	__aiter__zAsyncResponseStream.__aiter__   s&     .. 	 	$J	.s   "  " "c                  K   | j                   2 3 d {   }| j                  j                  |      }|D ]  }| 	 17 ,6 y wr?   rK   rM   s       r:   r3   zAsyncResponseStream.__stream__   sL     #// 	 	)![[55i@N' 	/s%   AAA A)A AAc                   K   | S wr?   rH   rA   s    r:   
__aenter__zAsyncResponseStream.__aenter__   s     s   c                @   K   | j                          d {    y 7 wr?   rR   rT   s       r:   	__aexit__zAsyncResponseStream.__aexit__   s      jjls   c                T   K   | j                   j                          d{    y7 wrZ   )r2   acloserA   s    r:   rS   zAsyncResponseStream.close   s      nn##%%%s   (&(c                   K   | j                          d{    | j                  j                  }|st        d      |S 7 )w)r\   Nr]   r^   rb   s     r:   rc   z&AsyncResponseStream.get_final_response   s@      oo;;22MNN 	 s   AA *Ac                8   K   t        |        d{    | S 7 w)re   N)r   rA   s    r:   r_   zAsyncResponseStream.until_done   s     $T*** 	+s   N)r9   z#AsyncStream[RawResponseStreamEvent]r-   rf   r.   rg   rh   ri   rj   )rh   z/AsyncIterator[ResponseStreamEvent[TextFormatT]]rk   rl   rm   rn   )ro   rp   rq   r;   r   r   r3   r   r   rS   rc   r_   rH   r=   r:   r   r   ~   s    
\ 8
\ 2	
\
 4
\ 

\0, " %	
 
&	r=   r   c                  D    e Zd Z	 	 	 	 	 	 	 	 ddZddZ	 	 	 	 	 	 	 	 ddZy)AsyncResponseStreamManagerc               <    d | _         || _        || _        || _        y r?   )#_AsyncResponseStreamManager__stream(_AsyncResponseStreamManager__api_request(_AsyncResponseStreamManager__text_format(_AsyncResponseStreamManager__input_toolsry   s       r:   r;   z#AsyncResponseStreamManager.__init__   s%     BF(((r=   c                   K   | j                    d {   }t        || j                  | j                        | _        | j                  S 7 7wr|   )r   r   r   r   r   r}   s     r:   r   z%AsyncResponseStreamManager.__aenter__   sF     ---
+!****
 }} .s   AA
8Ac                n   K   | j                   #| j                   j                          d {    y y 7 wr?   )r   rS   rT   s       r:   r   z$AsyncResponseStreamManager.__aexit__   s0      ==$--%%''' %'s   *535N)rz   z.Awaitable[AsyncStream[RawResponseStreamEvent]]r-   rf   r.   rg   rh   ri   )rh   z AsyncResponseStream[TextFormatT]rl   )ro   rp   rq   r;   r   r   rH   r=   r:   r   r      s]    
)C
) 2	
)
 4
) 

)	(,( "( %	(
 
(r=   r   c                  8    e Zd Z	 	 	 	 	 	 ddZddZddZddZy)	r5   c                   d | _         d | _        t        |      r|D cg c]  }| c}ng | _        || _        t        j                  |      r|| _        y t        | _        y c c}w r?   )	&_ResponseStreamState__current_snapshotr`   r   _input_tools_text_formatinspectisclassr   _rich_text_format)r8   r.   r-   tools       r:   r;   zResponseStreamState.__init__   s\     BFGK >F{>Sk:dT:Y['AHQ\A]+cl ;s   	A!c                   | j                  |      x| _        }g }|j                  dk(  r|j                  |j                     }|j                  dk(  sJ |j
                  |j                     }|j                  dk(  sJ |j                  t        t        |j                  |j                  |j                  |j                  d|j                               |S |j                  dk(  r|j                  |j                     }|j                  dk(  sJ |j
                  |j                     }|j                  dk(  sJ |j                  t        t        t           |j                  |j                  |j                  d|j                  t        |j                  | j                                      |S |j                  dk(  rx|j                  |j                     }|j                  d	k(  sJ |j                  t        t"        |j                  |j                  |j                  d|j$                  
             |S |j                  dk(  r3| j&                  }|J |j                  t        t(        d|             |S |j                  |       |S )Nresponse.output_text.deltamessageoutput_text)content_indexdeltaitem_idoutput_indextypesnapshotzresponse.output_text.done)r-   )r   r   r   r   textparsed&response.function_call_arguments.deltafunction_call)r   r   r   r   r   response.completed)r   r1   )accumulate_eventr   r   outputr   contentr   appendr   r   r   r   r   r   r"   r#   r   r   	argumentsr`   r   )r8   rP   r   eventsr   r   r1   s          r:   rL   z ResponseStreamState.handle_event   sK   -1-B-B5-II(9;::55__U%7%78F;;)+++nnU%8%89G<<=000MM*"'"5"5++!MM!&!3!35$\\
t _ ZZ66__U%7%78F;;)+++nnU%8%89G<<=000MM)+6"'"5"5!MM!&!3!34%ejjd>O>OP
P ; ZZCC__U%7%78F;;/111MM;++!MM!&!3!3A#--	2  ZZ////H'''MM*-%  MM% r=   c                   | j                   }|| j                  |      S |j                  dk(  r|j                  j                  dk(  rR|j                  j                  t        t        t        t              |j                  j                                      |S |j                  j                  dk(  rR|j                  j                  t        t        t        t              |j                  j                                      |S |j                  j                  |j                         |S |j                  dk(  rz|j                  |j                     }|j                  dk(  rP|j                  j                  t        t        t        t              |j                  j                                      |S |j                  dk(  rs|j                  |j                     }|j                  dk(  rI|j                  |j                      }|j                  dk(  sJ |xj"                  |j$                  z  c_        |S |j                  dk(  rI|j                  |j                     }|j                  dk(  r|xj&                  |j$                  z  c_        |S |j                  d	k(  r1t)        | j*                  |j,                  | j.                  
      | _        |S )Nzresponse.output_item.addedr   type_valuer   zresponse.content_part.addedr   r   r   r   )r-   r1   r.   )r   _create_initial_responser   rE   r   r   r   r
   r   r(   to_dictr'   r   r   r&   partr   r   r   r   r$   r   r1   r   r`   )r8   rP   r   r   r   s        r:   r   z$ResponseStreamState.accumulate_event3  sG   **0077::55zz/1&&,"3(FGuzzOaOaOcD ; I-&&,4=X3Yafakakasasauv8 1 &&uzz20 / ZZ88__U%7%78F{{i'%%,4]3KSXS]S]SeSeSgh( # ZZ77__U%7%78F{{i' ..)<)<=||}444+  ZZCC__U%7%78F{{o-  EKK/   ZZ//'5 -- --(D$ r=   c                    |j                   dk7  rt        d|j                    d      t        t        |j                  j                               S )Nzresponse.createdz5Expected to have received `response.created` before ``r   )r   ra   r   r   r1   r   )r8   rP   s     r:   r   z,ResponseStreamState._create_initial_response^  sH    ::++!VW\WaWaVbbcdee'.DENNLbLbLdeer=   N)r.   rg   r-   rf   rh   ri   )rP   RawResponseStreamEventrh   z&List[ResponseStreamEvent[TextFormatT]])rP   r   rh   r   )ro   rp   rq   r;   rL   r   r   rH   r=   r:   r5   r5      s<    
m 4
m 2	
m
 

mFP)Vfr=   r5   )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*   rs   r   r   r5   rH   r=   r:   <module>r      s    "   @ @ E E *  + N N 7 . ] J J 4 ;W[) ;|"GK0 "D;'+. ;|(!5 (DDf'+. Dfr=   