Ë
    $Æ%h¾#  ã                  óæ  — U d dl mZ d dlZd dlmZmZmZmZ d dlm	Z	m
Z
mZ d dl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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' ddl(m)Z)m*Z* ddl+m,Z, ddl-m.Z/ ddl0m1Z1  e	dd¬«      Z2dZ3de4d<   ef	 	 	 d#d„Z5	 	 	 	 	 	 	 	 d$d„Z6d%d„Z7	 	 	 	 	 	 d&d„Z8	 	 	 	 	 	 d'd„Z9	 	 	 	 d(d„Z:edœ	 	 	 	 	 d)d„Z;	 	 	 	 d*d„Z<d+d„Z=d,d „Z>d-d!„Z?	 	 	 	 d.d"„Z@y)/é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚIterableÚcast)ÚTypeVarÚ	TypeGuardÚassert_neveré   )ÚPydanticFunctionToolé   )Ú	NOT_GIVENÚNotGiven)Úis_dictÚis_given)ÚPYDANTIC_V2Úmodel_parse_json)Úconstruct_type_unchecked)Úis_basemodel_typeÚto_strict_json_schemaÚis_dataclass_like_type)	ÚParsedChoiceÚChatCompletionÚParsedFunctionÚParsedChatCompletionÚChatCompletionMessageÚParsedFunctionToolCallÚChatCompletionToolParamÚParsedChatCompletionMessageÚcompletion_create_params)ÚLengthFinishReasonErrorÚContentFilterFinishReasonError)ÚFunctionDefinition)ÚResponseFormat)ÚFunctionÚResponseFormatT)ÚdefaultÚNoneÚ_default_response_formatc                ó¸   — t        | «      sy | D ]I  }|d   dk7  rt        d|d   › d�«      ‚|d   j                  d«      }|dusŒ6t        d|d   d   › d�«      ‚ y )	NÚtypeÚfunctionzECurrently only `function` tool types support auto-parsing; Received `ú`ÚstrictTÚnamez@` is not strict. Only `strict` function tools can be auto-parsed)r   Ú
ValueErrorÚget)ÚtoolsÚtoolr.   s      ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/openai/lib/_parsing/_completions.pyÚvalidate_input_toolsr5   '   s�   € ô �EŒ?Øàò 
ˆØ�‰<˜:Ò%ÜØWÐX\Ð]cÑXdÐWeÐefÐgóð ð �jÑ!×%Ñ% hÓ/ˆØ˜ÒÜØ�D˜Ñ$ VÑ,Ð-Ð-mÐnóð ñ
ó    c                óä  — t        |«      r|D �cg c]  }|‘Œ }}ng }g }|j                  D �]i  }|j                  dk(  rt        |¬«      ‚|j                  dk(  r
t	        «       ‚|j
                  }g }|j                  r¦|j                  D ]—  }|j                  dk(  rc|j                  «       }	|j                  t        i |	¥di t        t        |	d   «      ¥dt        ||j                  ¬«      i¥i¥t        ¬«      «       Œut         rt#        |«       Œ‡|j                  |«       Œ™ |j                  t        t        t        t$        «      t'        | «         i |j                  «       ¥di |j                  «       ¥t)        | |¬	«      |r|nd d
œ¥i¥¬«      «       �Œl t        t*        t,           t        t        t        t*        «      t'        | «         i |j                  «       ¥d|i¥¬«      «      S c c}w )NÚlength)Ú
completionÚcontent_filterr,   Úparsed_arguments)Úinput_toolsr,   )ÚvalueÚtype_Úmessage©Úresponse_formatr?   )ÚparsedÚ
tool_calls)r>   r=   Úchoices)r   rD   Úfinish_reasonr!   r"   r?   rC   r+   Úto_dictÚappendr   r   r   Úparse_function_tool_argumentsr,   r   r   r
   r   Úsolve_response_format_tÚmaybe_parse_contentr   r&   )
rA   r<   Úchat_completionÚtrD   Úchoicer?   rC   Ú	tool_callÚtool_call_dicts
             r4   Úparse_chat_completionrP   :   s  € ô �ÔØ"-Ö.˜Q’qÐ.ˆÑ.àˆà35€GØ!×)Ñ)ó 0
ˆØ×Ñ 8Ò+Ü)°_ÔEÐEà×ÑÐ#3Ò3Ü0Ó2Ð2à—.‘.ˆà35ˆ
Ø×ÒØ$×/Ñ/ò 1�	Ø—>‘> ZÒ/Ø%.×%6Ñ%6Ó%8�NØ×%Ñ%Ü0ð#Ø"0ð#à *ð -"Ü&*¬3°¸zÑ0JÓ&Kð-"à$6Ô8UØ4?È)×J\ÑJ\ô9&ñ-"ñ#ô #9ôõõ #Ü  Õ+à×%Ñ% iÕ0ð)1ð, 	�‰Ü$Üœ3¤Ó-Ô.EÀoÓ.VÑWð
Ø—n‘nÓ&ð
àð  Ø!Ÿ/™/Ó+ð ä"5Ø,;Ø$+ô#ñ 5?¡jÀDò ñ
ôö	
ðC0
ôd Üœ_Ñ-Ü Ü”sÔ0Ó1Ô2IÈ/Ó2ZÑ[ðØ!×)Ñ)Ó+ðà˜7ñô	
ó	ð 	ùòo /s   �	G-c                ó.   ‡— t        ˆfd„| D «       d «      S )Nc              3  ól   •K  — | ]+  }|j                  d i «      j                  d«      ‰k(  sŒ(|–— Œ- y­w)r,   r/   N)r1   )Ú.0rL   r/   s     €r4   ú	<genexpr>z)get_input_tool_by_name.<locals>.<genexpr>…   s/   øè ø€ ÒU�q¨1¯5©5°¸RÓ+@×+DÑ+DÀVÓ+LÐPTÓ+T”ÑUùs   ƒ)4­4)Únext©r<   r/   s    `r4   Úget_input_tool_by_namerW   „   s   ø€ ÜÓU˜KÔUÐW[Ó\Ð\r6   c                óV  — t        | |j                  ¬«      }|sy t        t        |j	                  d«      «      }t        |t        «      r t        |j                  |j                  «      S t        t        |«      }|j	                  d«      sy t        j                  |j                  «      S )NrV   r,   r.   )rW   r/   r   Úobjectr1   Ú
isinstancer   r   ÚmodelÚ	argumentsr#   ÚjsonÚloads)r<   r,   Ú
input_toolÚinput_fns       r4   rH   rH   ˆ   s‚   € ô (°KÀhÇmÁmÔT€JÙØä”F˜JŸN™N¨:Ó6Ó7€HÜ�(Ô0Ô1Ü §¡°×0BÑ0BÓCÐCäÔ&¨Ó1€Hà�<‰<˜Ô!Øä�:‰:�h×(Ñ(Ó)Ð)r6   c                óv   — t        | «      r.|j                  r"|j                  st        | |j                  «      S y ©N)Úhas_rich_response_formatÚcontentÚrefusalÚ_parse_contentr@   s     r4   rJ   rJ   ›   s,   € ô
   Ô0°W·_²_ÈWÏ_Ê_Ü˜o¨w¯©Ó?Ð?àr6   c                ó<   — t        | «      r| S t        dt        «      S )z­Return the runtime type for the given response format.

    If no response format is given, or if we won't auto-parse the response format
    then we default to `None`.
    útype[ResponseFormatT])rc   r   r)   ©rA   s    r4   rI   rI   ¦   s!   € ô   Ô0ØÐäÐ'Ô)AÓBÐBr6   )r<   c                óL   — t        | «      ry|xs g D ]  }t        |«      sŒ y y)NTF)rc   Úis_parseable_tool)rA   r<   r_   s      r4   Úhas_parseable_inputrl   ´   s3   € ô
   Ô0Øà!Ò' Rò ˆ
Ü˜ZÕ(Ùðð r6   c                ó4   — t        | «      syt        | «      ryy)NFT)r   Úis_response_format_paramri   s    r4   rc   rc   Ã   s   € ô �OÔ$Øä Ô0Øàr6   c                ó   — t        | «      S rb   )r   ri   s    r4   rn   rn   Ï   s   € Ü�?Ó#Ð#r6   c                ó¨   — t        t        | j                  d«      «      }t        |t        «      ryt        t
        |«      j                  d«      xs dS )Nr,   Tr.   F)r   rY   r1   rZ   r   r#   )r_   r`   s     r4   rk   rk   Ó   sC   € Ü”F˜JŸN™N¨:Ó6Ó7€HÜ�(Ô0Ô1ØäÔ" HÓ-×1Ñ1°(Ó;ÒD¸uÐDr6   c                óî   — t        | «      rt        t        t        | |«      «      S t	        | «      r8t
        st        d| › �«      ‚t        j                  | «      j                  |«      S t        d| › �«      ‚)Nz:Non BaseModel types are only supported with Pydantic v2 - z3Unable to automatically parse response format type )
r   r   r&   r   r   r   Ú	TypeErrorÚpydanticÚTypeAdapterÚvalidate_json)rA   rd   s     r4   rf   rf   Û   so   € Ü˜Ô)Ü”OÔ%5°oÀwÓ%OÓPÐPä˜oÔ.ÝÜÐXÐYhÐXiÐjÓkÐkä×#Ñ# OÓ4×BÑBÀ7ÓKÐKä
ÐIÈ/ÐIZÐ[Ó
\Ð\r6   c                ó0  — t        | «      st        S t        | «      r| S t        t        | «      } d }t        | «      r| j                  }| }n;t        | «      r"| j                  }t        j                  | «      }nt        d| › �«      ‚dt        |«      |ddœdœS )Nz#Unsupported response_format type - Újson_schemaT)Úschemar/   r.   )r+   rw   )r   r   rn   r   r+   r   Ú__name__r   rs   rt   rr   r   )rA   Újson_schema_typer/   s      r4   Útype_to_response_format_paramr{   è   s¨   € ô �OÔ$ÜÐä Ô0ØÐô
 œ4 Ó1€OàTXÐä˜Ô)Ø×'Ñ'ˆØ*ÑÜ	 Ô	0Ø×'Ñ'ˆÜ#×/Ñ/°Ó@ÑäÐ=¸oÐ=NÐOÓPÐPð ä+Ð,<Ó=ØØñ
ñð r6   )r2   ú,Iterable[ChatCompletionToolParam] | NotGivenÚreturnr(   )rA   zJtype[ResponseFormatT] | completion_create_params.ResponseFormat | NotGivenr<   r|   rK   z-ChatCompletion | ParsedChatCompletion[object]r}   z%ParsedChatCompletion[ResponseFormatT])r<   úlist[ChatCompletionToolParam]r/   Ústrr}   zChatCompletionToolParam | None)r<   r~   r,   zFunction | ParsedFunctionr}   rY   )rA   ú6type[ResponseFormatT] | ResponseFormatParam | NotGivenr?   z;ChatCompletionMessage | ParsedChatCompletionMessage[object]r}   zResponseFormatT | None)rA   r€   r}   rh   )rA   z%type | ResponseFormatParam | NotGivenr<   r|   r}   Úbool)rA   r€   r}   z TypeGuard[type[ResponseFormatT]])rA   rY   r}   zTypeGuard[ResponseFormatParam])r_   r   r}   r�   )rA   rh   rd   r   r}   r&   )rA   z9type | completion_create_params.ResponseFormat | NotGivenr}   zResponseFormatParam | NotGiven)AÚ
__future__r   r]   Útypingr   r   r   r   Útyping_extensionsr   r	   r
   rs   Ú_toolsr   Ú_typesr   r   Ú_utilsr   r   Ú_compatr   r   Ú_modelsr   Ú	_pydanticr   r   r   Ú
types.chatr   r   r   r   r   r   r   r   r    Ú_exceptionsr!   r"   Útypes.shared_paramsr#   Ú#types.chat.completion_create_paramsr$   ÚResponseFormatParamÚ,types.chat.chat_completion_message_tool_callr%   r&   r)   Ú__annotations__r5   rP   rW   rH   rJ   rI   rl   rc   rn   rk   rf   r{   © r6   r4   ú<module>r“      sw  ðÞ "ã ß 5Ó 5ß >Ñ >ã å )ß )ß 'ß 4Ý /ß XÑ X÷
÷ 
õ 
÷ SÝ 5Ý XÝ DáØàô€ð
 "&Ð ˜$Ó %ð ;DðØ7ðà	óð&Gà_ðGð >ðGð Cð	Gð
 +óGóT]ð*Ø1ð*Ø=Vð*àó*ð&àKðð Iðð ó	ðCØKðCàóCð" AJñà:ðð >ðð 
ó	ð	ØKð	à%ó	ó$óEó
]ð ØNð à#ô r6   