Ë
    îO´jny  ã                  ó4  — 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mZmZ d dlmZmZmZ d dlmZ ddlmZmZmZ dd	lmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ d
dl%m&Z& ddlm'Z'm(Z(m)Z) ddl*m+Z+m,Z,m-Z- ddl.m/Z/ ddl0m1Z1m2Z2 ddl3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 ddl:m;Z;m<Z< ddl=m>Z>m?Z?m@Z@ ddlAmBZBmCZC ddlDmEZEmFZF ddlGmHZI ddlJmKZL  G d„ dee4   «      ZM G d„ dee4   «      ZN G d„ dee4   «      ZO G d„ d ee4   «      ZP G d!„ d"ee4   «      ZQ G d#„ d$«      ZRd'd%„ZSd(d&„ZTy))é    )ÚannotationsN)ÚTracebackType)ÚTYPE_CHECKINGÚAnyÚGenericÚCallableÚIterableÚ	AwaitableÚAsyncIteratorÚcast)ÚSelfÚIteratorÚassert_never)Ú	from_jsoné   )ÚParsedChoiceSnapshotÚParsedChatCompletionSnapshotÚ#ParsedChatCompletionMessageSnapshot)Ú
ChunkEventÚContentDoneEventÚRefusalDoneEventÚContentDeltaEventÚRefusalDeltaEventÚLogprobsContentDoneEventÚLogprobsRefusalDoneEventÚChatCompletionStreamEventÚLogprobsContentDeltaEventÚLogprobsRefusalDeltaEventÚ"FunctionToolCallArgumentsDoneEventÚ#FunctionToolCallArgumentsDeltaEventé   )Úaccumulate_deltaé   )ÚOmitÚIncExÚomit)Úis_givenÚconsume_sync_iteratorÚconsume_async_iterator)Ú
model_dump)ÚbuildÚconstruct_typeé   )ÚResponseFormatTÚhas_parseable_inputÚmaybe_parse_contentÚparse_chat_completionÚget_input_tool_by_nameÚparse_function_tool_arguments)ÚStreamÚAsyncStream)ÚChatCompletionChunkÚParsedChatCompletionÚChatCompletionToolUnionParam)ÚLengthFinishReasonErrorÚContentFilterFinishReasonError)Ú
ModerationÚChoiceLogprobs)ÚChoice)ÚResponseFormatc                  óŠ   — e Zd 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edd
„«       Zdd„Zy)ÚChatCompletionStreamá+  Wrapper over the Chat Completions streaming API that adds helpful
    events such as `content.done`, supports automatically parsing
    responses & tool calls and accumulates a `ChatCompletion` object
    from each individual chunk.

    https://platform.openai.com/docs/api-reference/streaming
    c               ó‚   — || _         |j                  | _        | j                  «       | _        t        ||¬«      | _        y ©N©Úresponse_formatÚinput_tools©Ú_raw_streamÚresponseÚ	_responseÚ
__stream__Ú	_iteratorÚChatCompletionStreamStateÚ_state©ÚselfÚ
raw_streamrE   rF   s       ú}/var/www/origus_pro_usr/data/www/origus.pro/core/.venv/lib/python3.12/site-packages/openai/lib/streaming/chat/_completions.pyÚ__init__zChatCompletionStream.__init__7   ó6   € ð &ˆÔØ#×,Ñ,ˆŒØŸ™Ó*ˆŒÜ/ÀÐ]hÔiˆ�ó    c                ó6   — | j                   j                  «       S ©N)rL   Ú__next__©rP   s    rR   rX   zChatCompletionStream.__next__C   s   € Ø�~‰~×&Ñ&Ó(Ð(rU   c              #  ó6   K  — | j                   D ]  }|–— Œ y ­wrW   ©rL   ©rP   Úitems     rR   Ú__iter__zChatCompletionStream.__iter__F   s   è ø€ Ø—N‘Nò 	ˆDØ‹Jñ	ùs   ‚c                ó   — | S rW   © rY   s    rR   Ú	__enter__zChatCompletionStream.__enter__J   s   € ØˆrU   c                ó$   — | j                  «        y rW   ©Úclose©rP   Úexc_typeÚexcÚexc_tbs       rR   Ú__exit__zChatCompletionStream.__exit__M   s   € ð 	�
‰
�rU   c                ó8   — | j                   j                  «        y©zŠ
        Close the response and release the connection.

        Automatically called if the response body is read to completion.
        N)rJ   rd   rY   s    rR   rd   zChatCompletionStream.closeU   s   € ð 	�‰×ÑÕrU   c                óV   — | j                  «        | j                  j                  «       S )áV  Waits until the stream has been read to completion and returns
        the accumulated `ParsedChatCompletion` object.

        If you passed a class type to `.stream()`, the `completion.choices[0].message.parsed`
        property will be the content deserialised into that class, if there was any content returned
        by the API.
        ©Ú
until_donerN   Úget_final_completionrY   s    rR   rp   z)ChatCompletionStream.get_final_completion]   s!   € ð 	�‰ÔØ�{‰{×/Ñ/Ó1Ð1rU   c                ó   — t        | «       | S )ú*Blocks until the stream has been consumed.)r(   rY   s    rR   ro   zChatCompletionStream.until_doneh   s   € ä˜dÔ#ØˆrU   c                ó.   — | j                   j                  S rW   ©rN   Úcurrent_completion_snapshotrY   s    rR   ru   z0ChatCompletionStream.current_completion_snapshotm   ó   € à�{‰{×6Ñ6Ð6rU   c              #  ó’   K  — | j                   D ]4  }t        |«      sŒ| j                  j                  |«      }|D ]  }|–— Œ Œ6 y ­wrW   ©rH   Ú$_is_valid_chat_completion_chunk_weakrN   Úhandle_chunk©rP   Ú	sse_eventÚevents_to_fireÚevents       rR   rK   zChatCompletionStream.__stream__q   sN   è ø€ Ø×)Ñ)ò 	ˆIÜ7¸	ÔBØØ!Ÿ[™[×5Ñ5°iÓ@ˆNØ'ò �Ø“ññ		ùs   ‚AAN)rQ   zStream[ChatCompletionChunk]rE   ú2type[ResponseFormatT] | ResponseFormatParam | OmitrF   ú-Iterable[ChatCompletionToolUnionParam] | OmitÚreturnÚNone©r�   z*ChatCompletionStreamEvent[ResponseFormatT])r�   z4Iterator[ChatCompletionStreamEvent[ResponseFormatT]]©r�   r   ©rf   ztype[BaseException] | Nonerg   zBaseException | Nonerh   zTracebackType | Noner�   r‚   ©r�   r‚   ©r�   z%ParsedChatCompletion[ResponseFormatT]©r�   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rS   rX   r^   ra   ri   rd   rp   ro   Úpropertyru   rK   r`   rU   rR   r@   r@   .   s�   „ ñð
jð 0ð
jð Lð	
jð
 Cð
jð 
ó
jó)óóðà,ðð "ðð %ð	ð
 
óóó	2óð
 ò7ó ð7ôrU   r@   c                  óH   — e Zd ZdZ	 	 	 	 	 	 	 	 dd„Zdd„Z	 	 	 	 	 	 	 	 dd„Zy)	ÚChatCompletionStreamManageraF  Context manager over a `ChatCompletionStream` that is returned by `.stream()`.

    This context manager ensures the response cannot be leaked if you don't read
    the stream to completion.

    Usage:
    ```py
    with client.chat.completions.stream(...) as stream:
        for event in stream:
            ...
    ```
    c               ó<   — d | _         || _        || _        || _        y rW   )Ú$_ChatCompletionStreamManager__streamÚ)_ChatCompletionStreamManager__api_requestÚ-_ChatCompletionStreamManager__response_formatÚ)_ChatCompletionStreamManager__input_tools©rP   Úapi_requestrE   rF   s       rR   rS   z$ChatCompletionStreamManager.__init__ˆ   s%   € ð GKˆŒØ(ˆÔØ!0ˆÔØ(ˆÕrU   c                óˆ   — | j                  «       }t        || j                  | j                  ¬«      | _        | j                  S ©N)rQ   rE   rF   )r’   r@   r“   r”   r‘   ©rP   rQ   s     rR   ra   z%ChatCompletionStreamManager.__enter__”   s=   € Ø×'Ñ'Ó)ˆ
ä,Ø!Ø ×2Ñ2Ø×*Ñ*ô
ˆŒð �}‰}ÐrU   c                óR   — | j                   �| j                   j                  «        y y rW   )r‘   rd   re   s       rR   ri   z$ChatCompletionStreamManager.__exit__Ÿ   s#   € ð �=‰=Ð$Ø�M‰M×ÑÕ!ð %rU   N)r–   z)Callable[[], Stream[ChatCompletionChunk]]rE   r   rF   r€   r�   r‚   )r�   z%ChatCompletionStream[ResponseFormatT]r…   )r‰   rŠ   r‹   rŒ   rS   ra   ri   r`   rU   rR   r�   r�   z   sd   „ ñð
)à>ð
)ð Lð	
)ð
 Cð
)ð 
ó
)ó	ð"à,ð"ð "ð"ð %ð	"ð
 
ô"rU   r�   c                  óŠ   — e Zd 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edd
„«       Zdd„Zy)ÚAsyncChatCompletionStreamrA   c               ó‚   — || _         |j                  | _        | j                  «       | _        t        ||¬«      | _        y rC   rG   rO   s       rR   rS   z"AsyncChatCompletionStream.__init__²   rT   rU   c              ƒ  óR   K  — | j                   j                  «       ƒ d {  –—† S 7 Œ­wrW   )rL   Ú	__anext__rY   s    rR   rŸ   z#AsyncChatCompletionStream.__anext__¾   s   è ø€ Ø—^‘^×-Ñ-Ó/×/Ð/Ð/ús   ‚' %¡'c               óH   K  — | j                   2 3 d {  –—† }|­–— Œ7 Œ
6 y ­wrW   r[   r\   s     rR   Ú	__aiter__z#AsyncChatCompletionStream.__aiter__Á   s&   è ø€ ØŸ.™.÷ 	ð 	�$ØŒJð	ø™.ùs   ‚"� “” —"ž  "c              ƒ  ó   K  — | S ­wrW   r`   rY   s    rR   Ú
__aenter__z$AsyncChatCompletionStream.__aenter__Å   s   è ø€ Øˆùs   ‚c              ƒ  ó@   K  — | j                  «       ƒ d {  –—†  y 7 Œ­wrW   rc   re   s       rR   Ú	__aexit__z#AsyncChatCompletionStream.__aexit__È   s   è ø€ ð �j‰j‹l×Òús   ‚–—c              ƒ  óT   K  — | j                   j                  «       ƒ d{  –—†  y7 Œ­wrk   )rJ   ÚacloserY   s    rR   rd   zAsyncChatCompletionStream.closeÐ   s   è ø€ ð �n‰n×#Ñ#Ó%×%Ò%ús   ‚( &¡(c              ƒ  ór   K  — | j                  «       ƒ d{  –—†  | j                  j                  «       S 7 Œ­w)rm   Nrn   rY   s    rR   rp   z.AsyncChatCompletionStream.get_final_completionØ   s0   è ø€ ð �o‰oÓ×ÐØ�{‰{×/Ñ/Ó1Ð1ð 	 ús   ‚7–5—7c              ƒ  ó8   K  — t        | «      ƒ d{  –—†  | S 7 Œ­w)rr   N)r)   rY   s    rR   ro   z$AsyncChatCompletionStream.until_doneã   s   è ø€ ä$ TÓ*×*Ð*Øˆð 	+ús   ‚‘’c                ó.   — | j                   j                  S rW   rt   rY   s    rR   ru   z5AsyncChatCompletionStream.current_completion_snapshotè   rv   rU   c               ó¤   K  — | j                   2 3 d {  –—† }t        |«      sŒ| j                  j                  |«      }|D ]  }|­–— Œ	 Œ=7 Œ86 y ­wrW   rx   r{   s       rR   rK   z$AsyncChatCompletionStream.__stream__ì   sW   è ø€ Ø#×/Ñ/÷ 	ð 	�)Ü7¸	ÔBØØ!Ÿ[™[×5Ñ5°iÓ@ˆNØ'ò �Ø”ñð		øÑ/ùs%   ‚A�A“A”A—5AÁAÁAN)rQ   z AsyncStream[ChatCompletionChunk]rE   r   rF   r€   r�   r‚   rƒ   )r�   z9AsyncIterator[ChatCompletionStreamEvent[ResponseFormatT]]r„   r…   r†   r‡   rˆ   )r‰   rŠ   r‹   rŒ   rS   rŸ   r¡   r£   r¥   rd   rp   ro   r�   ru   rK   r`   rU   rR   rœ   rœ   ©   s�   „ ñð
jð 5ð
jð Lð	
jð
 Cð
jð 
ó
jó0óóðà,ðð "ðð %ð	ð
 
óó&ó	2óð
 ò7ó ð7ôrU   rœ   c                  óH   — e Zd ZdZ	 	 	 	 	 	 	 	 dd„Zdd„Z	 	 	 	 	 	 	 	 dd„Zy)	Ú AsyncChatCompletionStreamManageraQ  Context manager over a `AsyncChatCompletionStream` that is returned by `.stream()`.

    This context manager ensures the response cannot be leaked if you don't read
    the stream to completion.

    Usage:
    ```py
    async with client.chat.completions.stream(...) as stream:
        for event in stream:
            ...
    ```
    c               ó<   — d | _         || _        || _        || _        y rW   )Ú)_AsyncChatCompletionStreamManager__streamÚ._AsyncChatCompletionStreamManager__api_requestÚ2_AsyncChatCompletionStreamManager__response_formatÚ._AsyncChatCompletionStreamManager__input_toolsr•   s       rR   rS   z)AsyncChatCompletionStreamManager.__init__  s%   € ð LPˆŒØ(ˆÔØ!0ˆÔØ(ˆÕrU   c              ƒ  óœ   K  — | j                   ƒ d {  –—† }t        || j                  | j                  ¬«      | _        | j                  S 7 Œ7­wr˜   )r°   rœ   r±   r²   r¯   r™   s     rR   r£   z+AsyncChatCompletionStreamManager.__aenter__  sF   è ø€ Ø×-Ñ-×-ˆ
ä1Ø!Ø ×2Ñ2Ø×*Ñ*ô
ˆŒð �}‰}Ðð .ús   ‚A’A
“8Ac              ƒ  ón   K  — | j                   �#| j                   j                  «       ƒ d {  –—†  y y 7 Œ­wrW   )r¯   rd   re   s       rR   r¥   z*AsyncChatCompletionStreamManager.__aexit__  s0   è ø€ ð �=‰=Ð$Ø—-‘-×%Ñ%Ó'×'Ñ'ð %Ø'ús   ‚*5¬3­5N)r–   z+Awaitable[AsyncStream[ChatCompletionChunk]]rE   r   rF   r€   r�   r‚   )r�   z*AsyncChatCompletionStream[ResponseFormatT]r…   )r‰   rŠ   r‹   rŒ   rS   r£   r¥   r`   rU   rR   r­   r­   õ   sd   „ ñð
)à@ð
)ð Lð	
)ð
 Cð
)ð 
ó
)ó	ð(à,ð(ð "ð(ð %ð	(ð
 
ô(rU   r­   c                  óp   — e Zd ZdZeedœ	 	 	 	 	 dd„Zdd„Zedd„«       Zdd„Z	dd„Z
dd„Z	 	 	 	 	 	 dd	„Zy
)rM   aS  Helper class for manually accumulating `ChatCompletionChunk`s into a final `ChatCompletion` object.

    This is useful in cases where you can't always use the `.stream()` method, e.g.

    ```py
    from openai.lib.streaming.chat import ChatCompletionStreamState

    state = ChatCompletionStreamState()

    stream = client.chat.completions.create(..., stream=True)
    for chunk in response:
        state.handle_chunk(chunk)

        # can also access the accumulated `ChatCompletion` mid-stream
        state.current_completion_snapshot

    print(state.get_final_completion())
    ```
    )rF   rE   c               óÌ   — d | _         g | _        t        |«      r|D �cg c]  }|‘Œ c}ng | _        || _        t        j                  |«      r|| _        y t        | _        y c c}w rW   )	Ú7_ChatCompletionStreamState__current_completion_snapshotÚ/_ChatCompletionStreamState__choice_event_statesr'   Ú_input_toolsÚ_response_formatÚinspectÚisclassr&   Ú_rich_response_format)rP   rF   rE   Útools       rR   rS   z"ChatCompletionStreamState.__init__9  s\   € ð SWˆÔ*Ø=?ˆÔ"ä>FÀ{Ô>S¨kÖ: dšTÓ:ÐY[ˆÔØ /ˆÔÜELÇ_Á_ÐUdÔEe°/ˆÕ"ÔkoˆÕ"ùò ;s   ž	A!c                óZ   — t        | j                  | j                  | j                  ¬«      S )zÉParse the final completion object.

        Note this does not provide any guarantees that the stream has actually finished, you must
        only call this method when the stream is finished.
        )Úchat_completionrE   rF   )r1   ru   r½   r¹   rY   s    rR   rp   z.ChatCompletionStreamState.get_final_completionF  s,   € ô %Ø ×<Ñ<Ø ×6Ñ6Ø×)Ñ)ô
ð 	
rU   c                ó6   — | j                   €J ‚| j                   S rW   )r·   rY   s    rR   ru   z5ChatCompletionStreamState.current_completion_snapshotR  s    € à×1Ñ1Ð=Ð=Ð=Ø×1Ñ1Ð1rU   c                óh   — | j                  |«      | _        | j                  || j                  ¬«      S )zTAccumulate a new chunk into the snapshot and returns an iterable of events to yield.)ÚchunkÚcompletion_snapshot)Ú_accumulate_chunkr·   Ú_build_events)rP   rÃ   s     rR   rz   z&ChatCompletionStreamState.handle_chunkW  s9   € à-1×-CÑ-CÀEÓ-JˆÔ*à×!Ñ!ØØ $× BÑ Bð "ó 
ð 	
rU   c                óº   — 	 | j                   |j                     S # t        $ r6 t        | j                  ¬«      }| j                   j                  |«       |cY S w xY w)N)rF   )r¸   ÚindexÚ
IndexErrorÚChoiceEventStater¹   Úappend)rP   ÚchoiceÚchoice_states      rR   Ú_get_choice_statez+ChatCompletionStreamState._get_choice_state`  sU   € ð	 Ø×-Ñ-¨f¯l©lÑ;Ð;øÜò 	 Ü+¸×8IÑ8IÔJˆLØ×&Ñ&×-Ñ-¨lÔ;ØÒð	 ús   ‚ ›<AÁAc                ó  — | j                   }|€t        |«      S |j                  D �]Þ  }	 |j                  |j                     }|j                  j
                  xs g }t        t        t        t        t        t        dt        |j                  t        t        dt        |j                  j
                  xs g «      D ��ci c]  \  }}|dddii“Œ c}}dœ«      ¬«      «      t        d|j                  j                  «       «      «      ¬«      «      |_        t        |«      D ]z  \  }}	|j                  j
                  xs g |   }
|	j                  dk(  r7|
j                  dk(  sJ ‚|	j                   j"                  |
j                   _        Œit$        sŒpt'        |	«       Œ| 	 |j.                  rh|j.                  |_        t1        | j2                  | j4                  ¬«      r6|j.                  dk(  rt7        |¬«      ‚|j.                  dk(  rt9        |¬«      ‚|j                  j:                  r‰|j                  j<                  sst?        | j@                  «      r^|j                  j:                  jC                  «       r:tE        tG        |j                  j:                  d«      d¬«      |j                  _$        |j                  j
                  xs g D ]ì  }|j                  j
                  xs g |j                     }|j                  dk(  r¢tK        | j4                  |j                   jL                  ¬«      }|sŒg|jO                  di «      jO                  d«      sŒ‰|j                   jP                  sŒ tE        tG        |j                   jP                  d«      d¬«      |j                   _        ŒÛt$        sŒât'        |«       Œî |jR                  €�Œ¤|jR                  €AtU        tV        |jR                  j:                  |jR                  j<                  ¬«      |_)        �Œñ|jR                  j:                  r`|jR                  j:                  €g |jR                  _        |jR                  j:                  jY                  |jR                  j:                  «       |jR                  j<                  s�Œ|jR                  j<                  €g |jR                  _        |jR                  j<                  jY                  |jR                  j<                  «       �Œá |jZ                  |_-        |j\                  |_.        |j^                  �<t        t`        t        t`        |j^                  j                  «       ¬«      «      |_/        |S c c}}w # t(        $ r‚ t        t*        t        t*        i |j                  ddh¬	«      ¥d
t        i t        d|j                  j                  «       «      «      i¥¬«      «      }|j                  j-                  |«       Y �Œdw xY w)Núdict[object, object]TÚfunctionÚparsed_arguments)ÚparsedÚ
tool_calls)Úexclude©Útype_ÚvalueÚdelta©Úexclude_unsetrÕ   ÚmessagerD   Úlength)Ú
completionÚcontent_filterzutf-8)Úpartial_mode)rF   ÚnameÚstrict)ÚcontentÚrefusal)1r·   Ú$_convert_initial_chunk_into_snapshotÚchoicesrÈ   rÜ   rÔ   r   r   r,   r"   r*   r%   Ú	enumeraterÙ   Úto_dictÚtyperÑ   rÒ   r   r   rÉ   r   rË   Úfinish_reasonr/   rº   r¹   r9   r:   rã   rä   r'   r½   Úlstripr   ÚbytesrÓ   r2   rá   ÚgetÚ	argumentsÚlogprobsr+   r<   ÚextendÚusageÚsystem_fingerprintÚ
moderationr;   )rP   rÃ   rÄ   rÌ   Úchoice_snapshotÚprevious_tool_callsÚidxÚ_Ú
tool_indexÚ	prev_toolÚnew_toolÚtool_call_chunkÚtool_call_snapshotÚ
input_tools                 rR   rÅ   z+ChatCompletionStreamState._accumulate_chunkh  s  € Ø"×@Ñ@ÐàÐ&Ü7¸Ó>Ð>à—m‘mó x	YˆFð7DØ"5×"=Ñ"=¸f¿l¹lÑ"K�Ø&5×&=Ñ&=×&HÑ&HÒ&NÈBÐ#ä*.Ü7Ü"ÜAÜ.Ü Ø 6Ü *Ø$3×$;Ñ$;ô -1ä(-à6:ô ?HÈ×H_ÑH_×HjÑHjÒHpÐnpÓ>q÷;.á4:°C¸ð 14°jÐCUÐW[ÐB\Ð5]Ñ0]ó;.ñ)*ó
-&ô!"óô( !Ð!7¸¿¹×9MÑ9MÓ9OÓPó+ôó+�Ô'ô@ .7Ð7JÓ-Kò 0Ñ)�J 	Ø /× 7Ñ 7× BÑ BÒ HÀbÈ*ÑU�Hà —~‘~¨Ò3Ø'Ÿ}™}°
Ò:Ð:Ð:Ø=F×=OÑ=O×=`Ñ=`˜×)Ñ)Õ:Þ&Ü$ YÕ/ñ0ð* ×#Ò#Ø06×0DÑ0D�Ô-ä&°t×7LÑ7LÐZ^×ZkÑZkÕlØ×+Ñ+¨xÒ7ô 6ÐATÔUÐUà×+Ñ+Ð/?Ò?Ü<ÐH[Ô\Ð\ð  ×'Ñ'×/Ò/Ø'×/Ñ/×7Ò7Ü˜T×7Ñ7Ô8à#×+Ñ+×3Ñ3×:Ñ:Ô<ä1:Ü˜/×1Ñ1×9Ñ9¸7ÓCØ!%ô2�×'Ñ'Ô.ð
 $*§<¡<×#:Ñ#:Ò#@¸bò 5�Ø&5×&=Ñ&=×&HÑ&HÒ&NÈBÐP_×PeÑPeÑ%fÐ"à%×*Ñ*¨jÒ8Ü!7Ø$(×$5Ñ$5Ð<N×<WÑ<W×<\Ñ<\ô"�Jò
 #Ø&ŸN™N¨:°rÓ:×>Ñ>¸xÕHØ.×7Ñ7×AÓAäGPÜ!Ð"4×"=Ñ"=×"GÑ"GÈÓQØ)-ôHÐ*×3Ñ3ÕDö #Ü Ð!3Õ4ð%5ð( �‰Ò*Ø"×+Ñ+Ð3Ü/4Ü&Ø &§¡× 7Ñ 7Ø &§¡× 7Ñ 7ô0�OÖ,ð —‘×.Ò.Ø*×3Ñ3×;Ñ;ÐCØ?A˜O×4Ñ4Ô<à'×0Ñ0×8Ñ8×?Ñ?ÀÇÁ×@WÑ@WÔXà—‘×.Ô.Ø*×3Ñ3×;Ñ;ÐCØ?A˜O×4Ñ4Ô<à'×0Ñ0×8Ñ8×?Ñ?ÀÇÁ×@WÑ@WÖXðqx	Yðt %*§K¡KÐÔ!Ø16×1IÑ1IÐÔ.Ø×ÑÐ'Ü-1ÜœN´À5×CSÑCS×C[ÑC[ÓC]Ô^ó.ÐÔ*ð #Ð"ùóW;.øô. ò DÜ"&Ü(Ü"Ü2ðØ$×/Ñ/¸dÈWÈIÐ/ÓVðà%Ô'7¸¼DÐAWÐY_×YeÑYe×YmÑYmÓYoÓ<pÓ'qñôó	#�ð $×+Ñ+×2Ñ2°?×CðDús,   «BU:Â>U4,ÃCU:ÆU:Õ4U:Õ:BXØXc               óF  — g }|j                  t        t        d||¬«      «       |j                  D �]l  }| j	                  |«      }|j                  |j
                     }|j                  j                  �u|j                  j                  �_|j                  t        t        d|j                  j                  |j                  j                  |j                  j                  ¬«      «       |j                  j                  �`|j                  j                  �J|j                  t        t        d|j                  j                  |j                  j                  ¬«      «       |j                  j                  r÷|j                  j                  }|€J ‚|j                  j                  D ]Ä  }||j
                     }	|	j                  dk(  r’|j                  €J ‚|j                  t        t         d|	j                  j"                  |j
                  |	j                  j$                  |	j                  j&                  |j                  j$                  xs d	¬
«      «       Œ³t(        sŒºt+        |	«       ŒÆ |j,                  �ø|j,                  �ì|j,                  j                  r`|j,                  j                  rJ|j                  t        t.        d|j,                  j                  |j,                  j                  ¬«      «       |j,                  j                  r`|j,                  j                  rJ|j                  t        t0        d|j,                  j                  |j,                  j                  ¬«      «       |j3                  |j5                  ||| j6                  ¬«      «       �Œo |S )NrÃ   )ré   rÃ   Úsnapshotzcontent.delta)ré   rÙ   rÿ   rÓ   zrefusal.delta)ré   rÙ   rÿ   rÑ   z#tool_calls.function.arguments.deltaÚ )ré   rá   rÈ   rî   rÒ   Úarguments_deltazlogprobs.content.delta)ré   rã   rÿ   zlogprobs.refusal.delta)ré   rä   rÿ   )Úchoice_chunkrô   rE   )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ð   Úget_done_eventsrº   )
rP   rÃ   rÄ   r}   rÌ   rÍ   rô   rÔ   Útool_call_deltaÚ	tool_calls
             rR   rÆ   z'ChatCompletionStreamState._build_eventsñ  s  € ð LNˆà×ÑÜ”* 7°%ÐBUÔVô	
ð —m‘mó K	ˆFØ×1Ñ1°&Ó9ˆLØ1×9Ñ9¸&¿,¹,ÑGˆOà�|‰|×#Ñ#Ð/°O×4KÑ4K×4SÑ4SÐ4_Ø×%Ñ%ÜÜ)Ø,Ø$Ÿl™l×2Ñ2Ø!0×!8Ñ!8×!@Ñ!@Ø.×6Ñ6×=Ñ=ôôð �|‰|×#Ñ#Ð/°O×4KÑ4K×4SÑ4SÐ4_Ø×%Ñ%ÜÜ)Ø,Ø$Ÿl™l×2Ñ2Ø!0×!8Ñ!8×!@Ñ!@ô	ôð �|‰|×&Ò&Ø,×4Ñ4×?Ñ?�
Ø!Ð-Ð-Ð-à'-§|¡|×'>Ñ'>ò 0�OØ *¨?×+@Ñ+@Ñ A�Ià —~‘~¨Ò3Ø.×7Ñ7ÐCÐCÐCØ&×-Ñ-Ü!Ü CØ%JØ%.×%7Ñ%7×%<Ñ%<Ø&5×&;Ñ&;Ø*3×*<Ñ*<×*FÑ*FØ1:×1CÑ1C×1TÑ1TØ0?×0HÑ0H×0RÑ0RÒ0XÐVXôõ
ö 'Ü$ YÕ/ð#0ð& �‰Ð*¨×/GÑ/GÐ/SØ—?‘?×*Ò*¨×/GÑ/G×/OÒ/OØ"×)Ñ)ÜÜ5Ø!9Ø$*§O¡O×$;Ñ$;Ø%4×%=Ñ%=×%EÑ%Eô	ôð —?‘?×*Ò*¨×/GÑ/G×/OÒ/OØ"×)Ñ)ÜÜ5Ø!9Ø$*§O¡O×$;Ñ$;Ø%4×%=Ñ%=×%EÑ%Eô	ôð ×!Ñ!Ø×,Ñ,Ø!'Ø$3Ø$(×$9Ñ$9ð -ó öðKK	ðZ ÐrU   N)rF   r€   rE   r   r�   r‚   r‡   rˆ   )rÃ   r6   r�   z4Iterable[ChatCompletionStreamEvent[ResponseFormatT]])rÌ   ÚChoiceChunkr�   rÊ   ©rÃ   r6   r�   r   )rÃ   r6   rÄ   r   r�   ú0list[ChatCompletionStreamEvent[ResponseFormatT]])r‰   rŠ   r‹   rŒ   r&   rS   rp   r�   ru   rz   rÎ   rÅ   rÆ   r`   rU   rR   rM   rM   $  s‹   „ ñð. FJØNRñ	pð Cðpð Lð	pð
 
ópó

ð ò2ó ð2ó
ó óG#ðRYð #ðYð :ð	Yð
 
:ôYrU   rM   c                  óX   — e Zd Zdd„Z	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 d	d„Zy)
rÊ   c               óv   — || _         d| _        d| _        d| _        d| _        t        «       | _        d | _        y )NF)r¹   Ú_content_doneÚ_refusal_doneÚ_logprobs_content_doneÚ_logprobs_refusal_doneÚsetÚ_done_tool_callsÚ*_ChoiceEventState__current_tool_call_index)rP   rF   s     rR   rS   zChoiceEventState.__init__N  s<   € Ø'ˆÔà"ˆÔØ"ˆÔØ&+ˆÔ#Ø&+ˆÔ#Ü*-«%ˆÔØ59ˆÕ&rU   c               ó  — g }|j                   rd|j                  | j                  ||¬«      «       | j                  �6| j                  | j                  vr| j                  ||| j                  ¬«       |j                  j                  xs g D ]x  }| j                  |j                  k7  rL|j                  | j                  ||¬«      «       | j                  �| j                  ||| j                  ¬«       |j                  | _        Œz |S )N)rô   rE   )r}   rô   rø   )	rê   rð   Ú_content_done_eventsr  r  Ú_add_tool_done_eventrÙ   rÔ   rÈ   )rP   r  rô   rE   r}   r  s         rR   r  z ChoiceEventState.get_done_eventsX  s  € ð LNˆà×(Ò(Ø×!Ñ!Ø×)Ñ)¸/Ð[jÐ)Ókôð
 ×.Ñ.Ð:Ø×2Ñ2¸$×:OÑ:OÑOà×)Ñ)Ø#1Ø$3Ø#×=Ñ=ð *ô ð &×+Ñ+×6Ñ6Ò<¸"ò 	=ˆIØ×-Ñ-°·±Ò@Ø×%Ñ%Ø×-Ñ-¸oÐ_nÐ-Óoôð ×1Ñ1Ð=Ø×-Ñ-Ø'5Ø(7Ø#'×#AÑ#Að .ô ð .7¯_©_ˆDÕ*ð	=ð ÐrU   c               ó¬  — g }|j                   j                  r‰| j                  s}d| _        t        ||j                   ¬«      }||j                   _        |j                  t        t        dt        t        t        «      «      d|j                   j                  |¬«      «       |j                   j                  �H| j                  s<d| _        |j                  t        t        d|j                   j                  ¬«      «       |j                  �^|j                  j                  �H| j                  s<d| _        |j                  t        t        d|j                  j                  ¬	«      «       |j                  �^|j                  j                  �H| j                   s<d| _        |j                  t        t"        d
|j                  j                  ¬«      «       |S )NT)rE   rÜ   z'type[ContentDoneEvent[ResponseFormatT]]zcontent.done)ré   rã   rÓ   zrefusal.done)ré   rä   zlogprobs.content.done)ré   rã   zlogprobs.refusal.done)rÜ   rã   r  r0   rÓ   rË   r+   r   r   r   rä   r  r   rï   r  r   r  r   )rP   rô   rE   r}   rÓ   s        rR   r  z%ChoiceEventState._content_done_events�  sœ  € ð LNˆà×"Ñ"×*Ò*°4×3EÒ3EØ!%ˆDÔä(Ø /Ø'×/Ñ/ôˆFð .4ˆO×#Ñ#Ô*à×!Ñ!Üô ØAÜœSÔ"2Ó3óð (Ø+×3Ñ3×;Ñ;Ø!ôôð ×"Ñ"×*Ñ*Ð6¸t×?QÒ?QØ!%ˆDÔØ×!Ñ!ÜÔ&¨^À_×E\ÑE\×EdÑEdÔeôð
 ×$Ñ$Ð0Ø×(Ñ(×0Ñ0Ð<Ø×/Ò/à*.ˆDÔ'Ø×!Ñ!ÜÔ.Ð5LÐVe×VnÑVn×VvÑVvÔwôð
 ×$Ñ$Ð0Ø×(Ñ(×0Ñ0Ð<Ø×/Ò/à*.ˆDÔ'Ø×!Ñ!ÜÔ.Ð5LÐVe×VnÑVn×VvÑVvÔwôð ÐrU   c          
     óú  — || j                   v ry | j                   j                  |«       |j                  j                  €J ‚|j                  j                  |   }|j                  dk(  rt        | j                  |j                  ¬«      }||j                  _        |j                  t        t        d||j                  j                  |j                  j                  |¬«      «       y t        rt        |«       y y )NrÑ   )rF   rÑ   z"tool_calls.function.arguments.done)ré   rÈ   rá   rî   rÒ   )r  ÚaddrÜ   rÔ   ré   r3   r¹   rÑ   rÒ   rË   r+   r   rá   rî   r   r   )rP   r}   rô   rø   rü   rÒ   s         rR   r  z%ChoiceEventState._add_tool_done_eventÁ  sè   € ð ˜×.Ñ.Ñ.Øà×Ñ×!Ñ! *Ô-à×&Ñ&×1Ñ1Ð=Ð=Ð=Ø,×4Ñ4×?Ñ?À
ÑKÐà×"Ñ" jÒ0Ü<Ø ×-Ñ-Ð8J×8SÑ8Sô Ðð <LÐ×'Ñ'Ô8à×!Ñ!ÜÜ6Ø=Ø$Ø+×4Ñ4×9Ñ9Ø0×9Ñ9×CÑCØ%5ôõ	õ ÜÐ+Õ,ð rU   N)rF   z"list[ChatCompletionToolUnionParam]r�   r‚   )r  r  rô   r   rE   r   r�   r  )rô   r   rE   r   r�   r  )r}   r  rô   r   rø   Úintr�   r‚   )r‰   rŠ   r‹   rS   r  r  r  r`   rU   rR   rÊ   rÊ   M  s‰   „ ó:ð'ð "ð'ð .ð	'ð
 Lð'ð 
:ó'ðR>ð .ð>ð Lð	>ð
 
:ó>ð@$-ð Ið$-ð .ð	$-ð
 ð$-ð 
ô$-rU   rÊ   c                óz  — | j                  «       }|j                  dd «       t        d|d   «      }| j                  D ]U  }i |j	                  ddh¬«      ¥dt        i t        d|j                  j                  «       «      «      i¥||j                  <   ŒW t        t        t        t        d	d i|¥d
di¥¬«      «      S )NÚobfuscationzlist[object]ræ   TrÙ   rÚ   rÜ   rÐ   rò   Úobjectzchat.completionrÖ   )
rè   Úpopr   ræ   r*   r"   rÙ   rÈ   r   r,   )rÃ   Údataræ   rÌ   s       rR   rå   rå   è  sË   € Ø�=‰=‹?€DØ‡H�Hˆ]˜DÔ!Ü�> 4¨	¡?Ó3€Gà—-‘-ò 
ˆð!
Ø×Ñ¨d¸W¸IÐÓFð!
àÔ'¨¬DÐ1GÈÏÉ×I]ÑI]ÓI_Ó,`Óañ!
ˆ�—‘Òð
ô Ü$ÜÜ.à$ dðàðð Ð+ñô	
ó
ð 
rU   c                ó    — | j                   dk(  S )Nzchat.completion.chunk)r  )r|   s    rR   ry   ry      s   € ð ×ÑÐ6Ñ6Ð6rU   r  )r|   r6   r�   Úbool)UÚ
__future__r   r»   Útypesr   Útypingr   r   r   r   r	   r
   r   r   Útyping_extensionsr   r   r   Újiterr   Ú_typesr   r   r   Ú_eventsr   r   r   r   r   r   r   r   r   r   r   r    Ú_deltasr"   r$   r%   r&   Ú_utilsr'   r(   r)   Ú_compatr*   Ú_modelsr+   r,   Ú_parsingr.   r/   r0   r1   r2   r3   Ú
_streamingr4   r5   Ú
types.chatr6   r7   r8   Ú_exceptionsr9   r:   Útypes.chat.chat_completionr;   r<   Ú types.chat.chat_completion_chunkr=   r  Ú#types.chat.completion_create_paramsr>   ÚResponseFormatParamr@   r�   rœ   r­   rM   rÊ   rå   ry   r`   rU   rR   ú<module>r3     sé   ðÝ "ã Ý ß b× bÓ bß :Ñ :å ç kÑ k÷÷ ÷ ó õ 'ß (Ñ (ß NÑ NÝ "ß -÷÷ ÷ /ß bÑ bß Sß EÝ FÝ YôI˜7 ?Ñ3ô IôX," '¨/Ñ":ô ,"ô^I ¨Ñ 8ô IôX,( w¨Ñ'?ô ,(ô^f ¨Ñ 8ô f÷R	X-ñ X-óvô07rU   