§
    Ý
@gKm  ã                  ó2  — d dl mZ d dlmZmZmZmZmZmZm	Z	 d dl
mZ 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 dd	lmZmZ dd
lmZ ddlmZmZ ddlm Z m!Z! ddl"m#Z# ddl$m%Z% ddl&m'Z' ddl(m)Z)m*Z+m,Z-m.Z/ ddl0m1Z1 ddl2m3Z3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z< ddl=m>Z> ddl?m@Z@ ddlAmBZB ddlCmDZD ddlEmFZF ddlGmHZH ddgZI G d„ de¦  «        ZJ G d „ de¦  «        ZK G d!„ d"¦  «        ZL G d#„ d$¦  «        ZM G d%„ d&¦  «        ZN G d'„ d(¦  «        ZOdS ))é    )Úannotations)ÚDictÚListÚTypeÚUnionÚIterableÚOptionalÚcast)Úpartial)ÚLiteralNé   )Ú_legacy_response)Ú	NOT_GIVENÚBodyÚQueryÚHeadersÚNotGiven)Úmaybe_transformÚasync_maybe_transform)Úcached_property)ÚSyncAPIResourceÚAsyncAPIResource)Úto_streamed_response_wrapperÚ"async_to_streamed_response_wrapper)ÚStream)Úcompletion_create_params)Úmake_request_options)ÚResponseFormatTÚvalidate_input_toolsÚparse_chat_completionÚtype_to_response_format_param)Ú	ChatModel)ÚChatCompletionStreamManagerÚ AsyncChatCompletionStreamManager)ÚChatCompletion)ÚChatCompletionChunk)ÚParsedChatCompletion)ÚChatCompletionModality)ÚChatCompletionToolParam)ÚChatCompletionAudioParam)ÚChatCompletionMessageParam)Ú ChatCompletionStreamOptionsParam)Ú$ChatCompletionPredictionContentParam)Ú#ChatCompletionToolChoiceOptionParamÚCompletionsÚAsyncCompletionsc                  óÎ   — e Zd ZedEd„¦   «         ZedFd„¦   «         ZeeeeeeeeeeeeeeeeeeeeeeeeeedddedœdGdA„ZeeeeeeeeeeeeeeeeeeeeeeeeeedddedœdHdD„ZdS )Ir/   ÚreturnÚCompletionsWithRawResponsec                ó    — t          | ¦  «        S ©a  
        This property can be used as a prefix for any HTTP method call to return the
        the raw response object instead of the parsed content.

        For more information, see https://www.github.com/openai/openai-python#accessing-raw-response-data-eg-headers
        )r3   ©Úselfs    úZ/var/www/piapp/venv/lib/python3.11/site-packages/openai/resources/beta/chat/completions.pyÚwith_raw_responsezCompletions.with_raw_response+   s   € õ *¨$Ñ/Ô/Ð/ó    Ú CompletionsWithStreamingResponsec                ó    — t          | ¦  «        S ©zÌ
        An alternative to `.with_raw_response` that doesn't eagerly read the response body.

        For more information, see https://www.github.com/openai/openai-python#with_streaming_response
        )r;   r6   s    r8   Úwith_streaming_responsez#Completions.with_streaming_response5   s   € õ 0°Ñ5Ô5Ð5r:   N©ÚaudioÚresponse_formatÚfrequency_penaltyÚfunction_callÚ	functionsÚ
logit_biasÚlogprobsÚmax_completion_tokensÚ
max_tokensÚmetadataÚ
modalitiesÚnÚparallel_tool_callsÚ
predictionÚpresence_penaltyÚseedÚservice_tierÚstopÚstoreÚstream_optionsÚtemperatureÚtool_choiceÚtoolsÚtop_logprobsÚtop_pÚuserÚextra_headersÚextra_queryÚ
extra_bodyÚtimeoutÚmessagesú$Iterable[ChatCompletionMessageParam]ÚmodelúUnion[str, ChatModel]r@   ú-Optional[ChatCompletionAudioParam] | NotGivenrA   ú type[ResponseFormatT] | NotGivenrB   úOptional[float] | NotGivenrC   ú0completion_create_params.FunctionCall | NotGivenrD   ú6Iterable[completion_create_params.Function] | NotGivenrE   ú#Optional[Dict[str, int]] | NotGivenrF   úOptional[bool] | NotGivenrG   úOptional[int] | NotGivenrH   rI   ú#Optional[Dict[str, str]] | NotGivenrJ   ú1Optional[List[ChatCompletionModality]] | NotGivenrK   rL   úbool | NotGivenrM   ú9Optional[ChatCompletionPredictionContentParam] | NotGivenrN   rO   rP   ú/Optional[Literal['auto', 'default']] | NotGivenrQ   ú*Union[Optional[str], List[str]] | NotGivenrR   rS   ú5Optional[ChatCompletionStreamOptionsParam] | NotGivenrT   rU   ú.ChatCompletionToolChoiceOptionParam | NotGivenrV   ú,Iterable[ChatCompletionToolParam] | NotGivenrW   rX   rY   ústr | NotGivenrZ   úHeaders | Noner[   úQuery | Noner\   úBody | Noner]   ú'float | httpx.Timeout | None | NotGivenú%ParsedChatCompletion[ResponseFormatT]c                óÄ  ‡‡— t          ‰¦  «         ddi|pi ¥}dˆˆfd„}!|                      dt          i d	|“d
|“d|“d|“d|“d|“d|“d|	“d|
“d|“d|“d|“d|“d|“d|“d|“dt          ‰¦  «        “||||d|||‰|||dœ¥t          j        ¦  «        t          |||| |!¬¦  «        t          t          t          t                            t          ¦  «        d¬¦  «        S )aÔ  Wrapper over the `client.chat.completions.create()` method that provides richer integrations with Python specific types
        & returns a `ParsedChatCompletion` object, which is a subclass of the standard `ChatCompletion` class.

        You can pass a pydantic model to this method and it will automatically convert the model
        into a JSON schema, send it to the API and parse the response content back into the given model.

        This method will also automatically parse `function` tool calls if:
        - You use the `openai.pydantic_function_tool()` helper method
        - You mark your tool schema with `"strict": True`

        Example usage:
        ```py
        from pydantic import BaseModel
        from openai import OpenAI


        class Step(BaseModel):
            explanation: str
            output: str


        class MathResponse(BaseModel):
            steps: List[Step]
            final_answer: str


        client = OpenAI()
        completion = client.beta.chat.completions.parse(
            model="gpt-4o-2024-08-06",
            messages=[
                {"role": "system", "content": "You are a helpful math tutor."},
                {"role": "user", "content": "solve 8x + 31 = 2"},
            ],
            response_format=MathResponse,
        )

        message = completion.choices[0].message
        if message.parsed:
            print(message.parsed.steps)
            print("answer: ", message.parsed.final_answer)
        ```
        úX-Stainless-Helper-Methodúbeta.chat.completions.parseÚraw_completionr%   r2   rx   c                ó(   •— t          ‰| ‰¬¦  «        S ©N)rA   Úchat_completionÚinput_tools©Ú_parse_chat_completion©r|   rA   rV   s    €€r8   Úparserz!Completions.parse.<locals>.parser•   ó#   ø€ Ý)Ø /Ø .Ø!ðñ ô ð r:   ú/chat/completionsr^   r`   r@   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rA   F)rO   rP   rQ   rR   ÚstreamrS   rT   rU   rV   rW   rX   rY   ©rZ   r[   r\   r]   Úpost_parser©ÚbodyÚoptionsÚcast_tor‡   ©r|   r%   r2   rx   )Ú_validate_input_toolsÚ_postr   Ú_type_to_response_formatr   ÚCompletionCreateParamsr   r
   r   r'   r   r%   ©"r7   r^   r`   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r„   s"       `                    `        r8   ÚparsezCompletions.parse>   sÛ  øø€ õ` 	˜eÑ$Ô$Ð$ð (Ð)Fð
àÐ" ð
ˆð
	ð 	ð 	ð 	ð 	ð 	ð 	ð �zŠzØÝ ðØ ðà˜Uðð ˜Uðð (Ð):ð	ð
 $ ]ðð   ðð ! *ðð  ðð ,Ð-Bðð ! *ðð  ðð ! *ðð ˜ðð *Ð+>ðð ! *ðð  'Ð(8ð!ð" &Õ'?ÀÑ'PÔ'Pð#ð$ !Ø$0Ø Ø"Ø#Ø&4Ø#.Ø#.Ø"Ø$0Ø"Ø ð;ð ð õ> )Ô?ñA!ô !õD )Ø+Ø'Ø%ØØ"ðñ ô õ �Õ2µ?ÔCÔDÅnÑUÔUØð] ñ /
ô /
ð /	
r:   úJcompletion_create_params.ResponseFormat | type[ResponseFormatT] | NotGivenú,ChatCompletionStreamManager[ResponseFormatT]c                óT  — ddi|pi ¥}t          | j        j        j        j        fi d|“d|“d|“dd“dt          |¦  «        “d	|“d
|“d|“d|“d|	“d|
“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d |“d!|“d"|“d#|“d$| “Ž}!t          |!||¬%¦  «        S )&a˜  Wrapper over the `client.chat.completions.create(stream=True)` method that provides a more granular event API
        and automatic accumulation of each delta.

        This also supports all of the parsing utilities that `.parse()` does.

        Unlike `.create(stream=True)`, the `.stream()` method requires usage within a context manager to prevent accidental leakage of the response:

        ```py
        with client.beta.chat.completions.stream(
            model="gpt-4o-2024-08-06",
            messages=[...],
        ) as stream:
            for event in stream:
                if event.type == "content.delta":
                    print(event.delta, flush=True, end="")
        ```

        When the context manager is entered, a `ChatCompletionStream` instance is returned which, like `.create(stream=True)` is an iterator. The full list of events that are yielded by the iterator are outlined in [these docs](https://github.com/openai/openai-python/blob/main/helpers.md#chat-completions-events).

        When the context manager exits, the response will be closed, however the `stream` instance is still available outside
        the context manager.
        rz   úbeta.chat.completions.streamr^   r`   r@   r‡   TrA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rR   rQ   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   ©rA   r€   )r   Ú_clientÚchatÚcompletionsÚcreater‘   r#   ©"r7   r^   r`   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   Úapi_requests"                                     r8   r‡   zCompletions.streamÍ   s  € ðz (Ð)Gð
àÐ" ð
ˆõ
 =DØŒLÔÔ)Ô0ð#=
ð #=
ð #=
à�Xð#=
ð �%ð#=
ð �%ð	#=
ð
 �4ð#=
õ 5°_ÑEÔEÐEð#=
ð 0Ð/ð#=
ð (˜-ð#=
ð  �ið#=
ð "�zð#=
ð �Xð#=
ð #8Ð"7ð#=
ð "�zð#=
ð �Xð#=
ð "�zð#=
ð  ˆað!#=
ð" !4Ð 3ð##=
ð$ "�zð%#=
ð& .Ð-ð'#=
ð( �ð)#=
ð* &˜ð+#=
ð, �%ð-#=
ð. �ð/#=
ð0 *˜>ð1#=
ð2 $˜ð3#=
ð4 $˜ð5#=
ð6 �%ð7#=
ð8 &˜ð9#=
ð: �%ð;#=
ð< �ð=#=
ð> (˜-ð?#=
ð@ $˜ðA#=
ðB "�zðC#=
ðD �GðE#=
ˆõH +ØØ+Øð
ñ 
ô 
ð 	
r:   )r2   r3   )r2   r;   ©Br^   r_   r`   ra   r@   rb   rA   rc   rB   rd   rC   re   rD   rf   rE   rg   rF   rh   rG   ri   rH   ri   rI   rj   rJ   rk   rK   ri   rL   rl   rM   rm   rN   rd   rO   ri   rP   rn   rQ   ro   rR   rh   rS   rp   rT   rd   rU   rq   rV   rr   rW   ri   rX   rd   rY   rs   rZ   rt   r[   ru   r\   rv   r]   rw   r2   rx   )Br^   r_   r`   ra   r@   rb   rA   r•   rB   rd   rC   re   rD   rf   rE   rg   rF   rh   rG   ri   rH   ri   rI   rj   rJ   rk   rK   ri   rL   rl   rM   rm   rN   rd   rO   ri   rP   rn   rQ   ro   rR   rh   rS   rp   rT   rd   rU   rq   rV   rr   rW   ri   rX   rd   rY   rs   rZ   rt   r[   ru   r\   rv   r]   rw   r2   r–   ©	Ú__name__Ú
__module__Ú__qualname__r   r9   r>   r   r”   r‡   © r:   r8   r/   r/   *   s_  € € € € € Øð0ð 0ð 0ñ „_ð0ð ð6ð 6ð 6ñ „_ð6ð @IØ<EØ8AØJSØLUØ:CØ.7Ø:CØ/8Ø8AØHQØ&/Ø/8ØPYØ7@Ø)2ØHQØ;DØ+4ØPYØ2;ØFOØ>GØ1:Ø,5Ø(ð )-Ø$(Ø"&Ø;DðIM
ð M
ð M
ð M
ð M
ð M
ðh @IØfoØ8AØJSØLUØ:CØ.7Ø:CØ/8Ø8AØHQØ&/Ø/8ØPYØ7@Ø)2ØHQØ;DØ+4ØPYØ2;ØFOØ>GØ1:Ø,5Ø(ð )-Ø$(Ø"&Ø;DðIi
ð i
ð i
ð i
ð i
ð i
ð i
ð i
r:   c                  óÎ   — e Zd ZedEd„¦   «         ZedFd„¦   «         ZeeeeeeeeeeeeeeeeeeeeeeeeeedddedœdGdA„ZeeeeeeeeeeeeeeeeeeeeeeeeeedddedœdHdD„ZdS )Ir0   r2   ÚAsyncCompletionsWithRawResponsec                ó    — t          | ¦  «        S r5   )r§   r6   s    r8   r9   z"AsyncCompletions.with_raw_response:  s   € õ /¨tÑ4Ô4Ð4r:   Ú%AsyncCompletionsWithStreamingResponsec                ó    — t          | ¦  «        S r=   )r©   r6   s    r8   r>   z(AsyncCompletions.with_streaming_responseD  s   € õ 5°TÑ:Ô:Ð:r:   Nr?   r^   r_   r`   ra   r@   rb   rA   rc   rB   rd   rC   re   rD   rf   rE   rg   rF   rh   rG   ri   rH   rI   rj   rJ   rk   rK   rL   rl   rM   rm   rN   rO   rP   rn   rQ   ro   rR   rS   rp   rT   rU   rq   rV   rr   rW   rX   rY   rs   rZ   rt   r[   ru   r\   rv   r]   rw   rx   c              ƒ  óà  ‡‡K  — t          ‰¦  «         ddi|pi ¥}dˆˆfd„}!|                      dt          i d	|“d
|“d|“d|“d|“d|“d|“d|	“d|
“d|“d|“d|“d|“d|“d|“d|“dt          ‰¦  «        “||||d|||‰|||dœ¥t          j        ¦  «        ƒ d{V —†t          |||| |!¬¦  «        t          t          t          t                            t          ¦  «        d¬¦  «        ƒ d{V —†S ) aä  Wrapper over the `client.chat.completions.create()` method that provides richer integrations with Python specific types
        & returns a `ParsedChatCompletion` object, which is a subclass of the standard `ChatCompletion` class.

        You can pass a pydantic model to this method and it will automatically convert the model
        into a JSON schema, send it to the API and parse the response content back into the given model.

        This method will also automatically parse `function` tool calls if:
        - You use the `openai.pydantic_function_tool()` helper method
        - You mark your tool schema with `"strict": True`

        Example usage:
        ```py
        from pydantic import BaseModel
        from openai import AsyncOpenAI


        class Step(BaseModel):
            explanation: str
            output: str


        class MathResponse(BaseModel):
            steps: List[Step]
            final_answer: str


        client = AsyncOpenAI()
        completion = await client.beta.chat.completions.parse(
            model="gpt-4o-2024-08-06",
            messages=[
                {"role": "system", "content": "You are a helpful math tutor."},
                {"role": "user", "content": "solve 8x + 31 = 2"},
            ],
            response_format=MathResponse,
        )

        message = completion.choices[0].message
        if message.parsed:
            print(message.parsed.steps)
            print("answer: ", message.parsed.final_answer)
        ```
        rz   r{   r|   r%   r2   rx   c                ó(   •— t          ‰| ‰¬¦  «        S r~   r�   rƒ   s    €€r8   r„   z&AsyncCompletions.parse.<locals>.parser¤  r…   r:   r†   r^   r`   r@   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rA   F)rO   rP   rR   rQ   r‡   rS   rT   rU   rV   rW   rX   rY   Nrˆ   rŠ   rŽ   )r�   r�   r   r‘   r   r’   r   r
   r   r'   r   r%   r“   s"       `                    `        r8   r”   zAsyncCompletions.parseM  s  øøè è € õ` 	˜eÑ$Ô$Ð$ð (Ð)Fð
àÐ" ð
ˆð
	ð 	ð 	ð 	ð 	ð 	ð 	ð —Z’ZØÝ,ðØ ðà˜Uðð ˜Uðð (Ð):ð	ð
 $ ]ðð   ðð ! *ðð  ðð ,Ð-Bðð ! *ðð  ðð ! *ðð ˜ðð *Ð+>ðð ! *ðð  'Ð(8ð!ð" &Õ'?ÀÑ'PÔ'Pð#ð$ !Ø$0Ø"Ø Ø#Ø&4Ø#.Ø#.Ø"Ø$0Ø"Ø ð;ð ð õ> )Ô?ñA!ô !ð !ð !ð !ð !ð !ð !õD )Ø+Ø'Ø%ØØ"ðñ ô õ �Õ2µ?ÔCÔDÅnÑUÔUØð]  ñ /
ô /
ð /
ð /
ð /
ð /
ð /
ð /
ð /	
r:   r•   ú1AsyncChatCompletionStreamManager[ResponseFormatT]c                óh  — t          |¦  «         ddi|pi ¥} | j        j        j        j        d&i d|“d|“d|“dd“dt          |¦  «        “d	|“d
|“d|“d|“d|	“d|
“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d|“d |“d!|“d"|“d#|“d$| “Ž}!t          |!||¬%¦  «        S )'a°  Wrapper over the `client.chat.completions.create(stream=True)` method that provides a more granular event API
        and automatic accumulation of each delta.

        This also supports all of the parsing utilities that `.parse()` does.

        Unlike `.create(stream=True)`, the `.stream()` method requires usage within a context manager to prevent accidental leakage of the response:

        ```py
        async with client.beta.chat.completions.stream(
            model="gpt-4o-2024-08-06",
            messages=[...],
        ) as stream:
            async for event in stream:
                if event.type == "content.delta":
                    print(event.delta, flush=True, end="")
        ```

        When the context manager is entered, an `AsyncChatCompletionStream` instance is returned which, like `.create(stream=True)` is an async iterator. The full list of events that are yielded by the iterator are outlined in [these docs](https://github.com/openai/openai-python/blob/main/helpers.md#chat-completions-events).

        When the context manager exits, the response will be closed, however the `stream` instance is still available outside
        the context manager.
        rz   r˜   r^   r`   r@   r‡   TrA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r™   r¥   )r�   rš   r›   rœ   r�   r‘   r$   rž   s"                                     r8   r‡   zAsyncCompletions.streamÜ  s  € õx 	˜eÑ$Ô$Ð$ð (Ð)Gð
àÐ" ð
ˆð
 ;�d”lÔ'Ô3Ô:ð "
ð "
ð "
Ø�Xð"
à�%ð"
ð �%ð"
ð �4ð	"
õ
 5°_ÑEÔEÐEð"
ð 0Ð/ð"
ð (˜-ð"
ð  �ið"
ð "�zð"
ð �Xð"
ð #8Ð"7ð"
ð "�zð"
ð �Xð"
ð "�zð"
ð ˆað"
ð  !4Ð 3ð!"
ð" "�zð#"
ð$ .Ð-ð%"
ð& �ð'"
ð( &˜ð)"
ð* �ð+"
ð, �%ð-"
ð. *˜>ð/"
ð0 $˜ð1"
ð2 $˜ð3"
ð4 �%ð5"
ð6 &˜ð7"
ð8 �%ð9"
ð: �ð;"
ð< (˜-ð="
ð> $˜ð?"
ð@ "�zðA"
ðB �GðC"
ˆõF 0ØØ+Øð
ñ 
ô 
ð 	
r:   )r2   r§   )r2   r©   r    )Br^   r_   r`   ra   r@   rb   rA   r•   rB   rd   rC   re   rD   rf   rE   rg   rF   rh   rG   ri   rH   ri   rI   rj   rJ   rk   rK   ri   rL   rl   rM   rm   rN   rd   rO   ri   rP   rn   rQ   ro   rR   rh   rS   rp   rT   rd   rU   rq   rV   rr   rW   ri   rX   rd   rY   rs   rZ   rt   r[   ru   r\   rv   r]   rw   r2   r­   r¡   r¥   r:   r8   r0   r0   9  s_  € € € € € Øð5ð 5ð 5ñ „_ð5ð ð;ð ;ð ;ñ „_ð;ð @IØ<EØ8AØJSØLUØ:CØ.7Ø:CØ/8Ø8AØHQØ&/Ø/8ØPYØ7@Ø)2ØHQØ;DØ+4ØPYØ2;ØFOØ>GØ1:Ø,5Ø(ð )-Ø$(Ø"&Ø;DðIM
ð M
ð M
ð M
ð M
ð M
ðh @IØfoØ8AØJSØLUØ:CØ.7Ø:CØ/8Ø8AØHQØ&/Ø/8ØPYØ7@Ø)2ØHQØ;DØ+4ØPYØ2;ØFOØ>GØ1:Ø,5Ø(ð )-Ø$(Ø"&Ø;DðIj
ð j
ð j
ð j
ð j
ð j
ð j
ð j
r:   c                  ó   — e Zd Zdd„ZdS )r3   rœ   r/   r2   ÚNonec                óP   — || _         t          j        |j        ¦  «        | _        d S ©N)Ú_completionsr   Úto_raw_response_wrapperr”   ©r7   rœ   s     r8   Ú__init__z#CompletionsWithRawResponse.__init__J  s(   € Ø'ˆÔå%Ô=ØÔñ
ô 
ˆŒ
ˆ
ˆ
r:   N©rœ   r/   r2   r°   ©r¢   r£   r¤   r¶   r¥   r:   r8   r3   r3   I  ó(   € € € € € ð
ð 
ð 
ð 
ð 
ð 
r:   r3   c                  ó   — e Zd Zdd„ZdS )r§   rœ   r0   r2   r°   c                óP   — || _         t          j        |j        ¦  «        | _        d S r²   )r³   r   Úasync_to_raw_response_wrapperr”   rµ   s     r8   r¶   z(AsyncCompletionsWithRawResponse.__init__S  s(   € Ø'ˆÔå%ÔCØÔñ
ô 
ˆŒ
ˆ
ˆ
r:   N©rœ   r0   r2   r°   r¸   r¥   r:   r8   r§   r§   R  r¹   r:   r§   c                  ó   — e Zd Zdd„ZdS )r;   rœ   r/   r2   r°   c                óF   — || _         t          |j        ¦  «        | _        d S r²   )r³   r   r”   rµ   s     r8   r¶   z)CompletionsWithStreamingResponse.__init__\  s%   € Ø'ˆÔå1ØÔñ
ô 
ˆŒ
ˆ
ˆ
r:   Nr·   r¸   r¥   r:   r8   r;   r;   [  r¹   r:   r;   c                  ó   — e Zd Zdd„ZdS )r©   rœ   r0   r2   r°   c                óF   — || _         t          |j        ¦  «        | _        d S r²   )r³   r   r”   rµ   s     r8   r¶   z.AsyncCompletionsWithStreamingResponse.__init__e  s%   € Ø'ˆÔå7ØÔñ
ô 
ˆŒ
ˆ
ˆ
r:   Nr½   r¸   r¥   r:   r8   r©   r©   d  r¹   r:   r©   )PÚ
__future__r   Útypingr   r   r   r   r   r	   r
   Ú	functoolsr   Útyping_extensionsr   ÚhttpxÚ r   Ú_typesr   r   r   r   r   Ú_utilsr   r   Ú_compatr   Ú	_resourcer   r   Ú	_responser   r   Ú
_streamingr   Ú
types.chatr   Ú_base_clientr   Úlib._parsingr   r   r�   r    r‚   r!   r‘   Útypes.chat_modelr"   Úlib.streaming.chatr#   r$   Útypes.chat.chat_completionr%   Ú types.chat.chat_completion_chunkr&   Ú!types.chat.parsed_chat_completionr'   Ú#types.chat.chat_completion_modalityr(   Ú%types.chat.chat_completion_tool_paramr)   Ú&types.chat.chat_completion_audio_paramr*   Ú(types.chat.chat_completion_message_paramr+   Ú/types.chat.chat_completion_stream_options_paramr,   Ú3types.chat.chat_completion_prediction_content_paramr-   Ú3types.chat.chat_completion_tool_choice_option_paramr.   Ú__all__r/   r0   r3   r§   r;   r©   r¥   r:   r8   ú<module>rÞ      s€  ðð #Ð "Ð "Ð "Ð "Ð "à DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %à €€€à !Ð !Ð !Ð !Ð !Ð !Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZØ !Ð !Ð !Ð !Ð !Ð !Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1ðð ð ð ð ð ð ð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *Ø `Ð `Ð `Ð `Ð `Ð `Ð `Ð `Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø DÐ DÐ DÐ DÐ DÐ DØ FÐ FÐ FÐ FÐ FÐ FØ JÐ JÐ JÐ JÐ JÐ JØ MÐ MÐ MÐ MÐ MÐ MØ OÐ OÐ OÐ OÐ OÐ OØ SÐ SÐ SÐ SÐ SÐ SØ `Ð `Ð `Ð `Ð `Ð `Ø hÐ hÐ hÐ hÐ hÐ hØ gÐ gÐ gÐ gÐ gÐ gàÐ,Ð
-€ðL
ð L
ð L
ð L
ð L
�/ñ L
ô L
ð L
ð^M
ð M
ð M
ð M
ð M
Ð'ñ M
ô M
ð M
ð`
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
r:   