ó
    ûÞ j'  ã                  óX  • % S SK Jr  S SKrS SKrS SKJrJrJrJr  S SK	J
r
JrJr  S SKrSSKJr  SSKJrJr  SS	KJrJr  SS
KJrJr  SSKJr  SSKJrJrJr  SSKJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)  SSK*J+r+J,r,  SSK-J.r.  SSK/J0r1  SSK2J3r3  \
" SSS9r4Sr5S\6S'   \Rn                  " S5      r8S\6S'       S'S jr9\4   S(S jjr:\4   S(S jjr;        S)S jr<      S*S jr=      S+S jr>      S,S jr?\S .     S-S! jjr@    S.S" jrAS/S# jrBS0S$ jrCS1S% jrD    S2S& jrEg)3é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚIterableÚcast)ÚTypeVarÚ	TypeGuardÚassert_neveré   )ÚPydanticFunctionToolé   )ÚOmitÚomit)Úis_dictÚis_given)ÚPYDANTIC_V1Úmodel_parse_json)Úconstruct_type_unchecked)Úis_basemodel_typeÚto_strict_json_schemaÚis_dataclass_like_type)
ÚParsedChoiceÚChatCompletionÚParsedFunctionÚParsedChatCompletionÚChatCompletionMessageÚParsedFunctionToolCallÚParsedChatCompletionMessageÚChatCompletionToolUnionParamÚChatCompletionFunctionToolParamÚcompletion_create_params)ÚLengthFinishReasonErrorÚContentFilterFinishReasonError)ÚFunctionDefinition)ÚResponseFormat)ÚFunctionÚResponseFormatT)ÚdefaultÚNoneÚ_default_response_formatzopenai.lib.parsingzlogging.LoggerÚlogc                óH   • U S   S:X  d  gU S   R                  S5      SLa  gg)zDCheck if the given tool is a strict ChatCompletionFunctionToolParam.ÚtypeÚfunctionFÚstrictT©Úget)Útools    ÚZ/var/www/html/gaurav/venv/lib/python3.13/site-packages/openai/lib/_parsing/_completions.pyÚ$is_strict_chat_completion_tool_paramr4   +   s1   € ð �‰<˜:Ó%ØØˆJÑ×Ñ˜HÓ%¨TÒ1Øàó    c                ó€   • [        U 5      (       d  [        $ U  Vs/ sH  n[        U5      (       d  M  UPM     sn$ s  snf )zMSelect only the strict ChatCompletionFunctionToolParams from the given tools.)r   r   r4   )ÚtoolsÚts     r3   Ú#select_strict_chat_completion_toolsr9   7   s2   € ô �E�?‰?ÜˆáÓH‘u�!Ô DÀQ× G�A‘uÑHÐHùÒHs   ›;²;c                ó   • [        U 5      (       d  [        $ U  HL  nUS   S:w  a  [        SUS    S35      eUS   R                  S5      nUSLd  M9  [        SUS   S    S35      e   [	        [
        [           U 5      $ )	Nr-   r.   zECurrently only `function` tool types support auto-parsing; Received `Ú`r/   TÚnamez@` is not strict. Only `strict` function tools can be auto-parsed)r   r   Ú
ValueErrorr1   r   r   r    )r7   r2   r/   s      r3   Úvalidate_input_toolsr>   A   s£   € ô �E�?‰?ÜˆãˆØ�‰<˜:Ó%ÜØWÐX\Ð]cÑXdÐWeÐefÐgóð ð �jÑ!×%Ñ% hÓ/ˆØ˜ÔÜØ�D˜Ñ$ VÑ,Ð-Ð-mÐnóð ñ ô ”Ô8Ñ9¸5ÓAÐAr5   c                ó  • [        U5      (       a  U Vs/ sH  o3PM     nnO/ n/ nUR                   GH£  nUR                  S:X  a	  [        US9eUR                  S:X  a
  [	        5       eUR
                  n/ nUR                  (       aï  UR                   Hß  nUR                  S:X  a]  UR                  5       n	UR                  [        0 U	ES0 [        [        U	S   5      ES[        XR                  S90E0E[        S95        Mp  UR                  S:X  a6  [         R#                  S	UR$                  UR&                  R(                  S
S9  M¶  [*        (       a  [-        U5        MÎ  UR                  U5        Má     UR                  [        [.        [0           0 UR                  5       ES0 UR                  5       E[3        U US9U(       a  UOS S.E0ES95        GM¦     [        [4        [0           0 UR                  5       ESU0ES9$ s  snf )NÚlength)Ú
completionÚcontent_filterr.   Úparsed_arguments)Úinput_toolsr.   )ÚvalueÚtype_Úcustomz?Custom tool calls are not callable. Ignoring tool call: %s - %sr   )Ú
stacklevelÚmessage©Úresponse_formatrI   )ÚparsedÚ
tool_calls)rF   rE   Úchoices)r   rN   Úfinish_reasonr"   r#   rI   rM   r-   Úto_dictÚappendr   r   r   Úparse_function_tool_argumentsr.   r   r+   ÚwarningÚidrG   r<   r   r
   r   r'   Úmaybe_parse_contentr   )
rK   rD   Úchat_completionr8   rN   ÚchoicerI   rM   Ú	tool_callÚtool_call_dicts
             r3   Úparse_chat_completionrZ   V   s  € ô �×ÑÙ"-Ó.¡+˜Q’q¡+ˆÐ.ˆàˆà35€GØ!×)Õ)ˆØ×Ñ 8Ó+Ü)°_ÑEÐEà×ÑÐ#3Ó3Ü0Ó2Ð2à—.‘.ˆà35ˆ
Ø××Ø$×/Ô/�	Ø—>‘> ZÓ/Ø%.×%6Ñ%6Ó%8�NØ×%Ñ%Ü0ð#Ø"0ð#à *ð -"Ü&*¬3°¸zÑ0JÓ&Kð-"à$6Ô8UØ4?×J\ÑJ\ñ9&ñ-"ñ#ô #9ñöð —^‘^ xÓ/ä—K‘KØYØ!Ÿ™Ø!×(Ñ(×-Ñ-Ø#$ð	  ó ÷ #’]Ü  Ö+à×%Ñ% iÖ0ñ9 0ð< 	�‰Ü$Ü"¤?Ñ3ð
Ø—n‘nÓ&ð
àð  Ø!Ÿ/™/Ó+ð ä"5Ø,;Ø$+ñ#ö 5?¡jÀDò ñ
ñ÷	
ñS *ôt $Ü"¤?Ñ3ð
Ø×%Ñ%Ó'ð
à�wñ
ñð ùò /s   •
Hc                ó0   ^• [        U4S jU  5       S 5      $ )Nc              3  óˆ   >#   • U H8  oS    S:X  d  M  UR                  S0 5      R                  S5      T:X  d  M4  Uv •  M:     g7f)r-   r.   r<   Nr0   )Ú.0r8   r<   s     €r3   Ú	<genexpr>Ú)get_input_tool_by_name.<locals>.<genexpr>¨   s>   øé € Ðq™K�q¨V©9¸
Ñ+B“ÀqÇuÁuÈZÐY[ÓG\×G`ÑG`ÐagÓGhÐlpÑGp—‘šKùs   ƒA’#A¹	A)Únext©rD   r<   s    `r3   Úget_input_tool_by_namerb   ¥   s   ø€ ô Ôq™KÓqÐswÓxÐxr5   c                ón  • [        XR                  S9nU(       d  g [        [        UR	                  S5      5      n[        U[        5      (       a   [        UR                  UR                  5      $ [        [        U5      nUR	                  S5      (       d  g [        R                  " UR                  5      $ )Nra   r.   r/   )rb   r<   r   Úobjectr1   Ú
isinstancer   r   ÚmodelÚ	argumentsr$   ÚjsonÚloads)rD   r.   Ú
input_toolÚinput_fns       r3   rR   rR   «   s†   € ô (°KÇmÁmÑT€JÞØä”F˜JŸN™N¨:Ó6Ó7€HÜ�(Ô0×1Ñ1Ü §¡°×0BÑ0BÓCÐCäÔ&¨Ó1€Hà�<‰<˜×!Ñ!Øä�:Š:�h×(Ñ(Ó)Ð)r5   c                ó’   • [        U 5      (       a7  UR                  (       a&  UR                  (       d  [        XR                  5      $ g ©N)Úhas_rich_response_formatÚcontentÚrefusalÚ_parse_contentrJ   s     r3   rU   rU   ¾   s-   € ô
   ×0Ñ0°W·_·_ÈWÏ_Ï_Ü˜o¯©Ó?Ð?àr5   )rD   c                ón   • [        U 5      (       a  gU=(       d    /  H  n[        U5      (       d  M    g   g)NTF)rn   Úis_parseable_tool)rK   rD   rj   s      r3   Úhas_parseable_inputrt   É   s7   € ô
   ×0Ñ0Øà!×' RÒ'ˆ
Ü˜Z×(Ó(Ùñ (ð r5   c                óH   • [        U 5      (       d  g[        U 5      (       a  gg)NFT)r   Úis_response_format_param©rK   s    r3   rn   rn   Ø   s#   € ô �O×$Ñ$Øä ×0Ñ0Øàr5   c                ó   • [        U 5      $ rm   )r   rw   s    r3   rv   rv   ä   s   € Ü�?Ó#Ð#r5   c                óÐ   • U S   S:w  a  g[        [        U R                  S5      5      n[        U[        5      (       a  g[        [
        U5      R                  S5      =(       d    S$ )Nr-   r.   FTr/   )r   rd   r1   re   r   r$   )rj   rk   s     r3   rs   rs   è   sV   € Ø�&Ñ˜ZÓ'Øä”F˜JŸN™N¨:Ó6Ó7€HÜ�(Ô0×1Ñ1ØäÔ" HÓ-×1Ñ1°(Ó;×D¸uÐDr5   c                ó  • [        U 5      (       a  [        [        [        X5      5      $ [	        U 5      (       a>  [
        (       a  [        SU  35      e[        R                  " U 5      R                  U5      $ [        SU  35      e)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)rK   ro   s     r3   rq   rq   ó   su   € Ü˜×)Ñ)Ü”OÔ%5°oÓ%OÓPÐPä˜o×.Ñ.ßŠ;ÜÐXÐYhÐXiÐjÓkÐkä×#Ò# OÓ4×BÑBÀ7ÓKÐKä
ÐIÈ/ÐIZÐ[Ó
\Ð\r5   c                óZ  • [        U 5      (       d  [        $ [        U 5      (       a  U $ [        [        U 5      n S n[        U 5      (       a  U R                  nU nOA[        U 5      (       a#  U R                  n[        R                  " U 5      nO[        SU  35      eS[        U5      USS.S.$ )Nz#Unsupported response_format type - Újson_schemaT)Úschemar<   r/   )r-   r€   )r   r   rv   r   r-   r   Ú__name__r   r|   r}   r{   r   )rK   Újson_schema_typer<   s      r3   Útype_to_response_format_paramr„      s³   € ô �O×$Ñ$Üˆä ×0Ñ0ØÐô
 œ4 Ó1€OàTXÐä˜×)Ñ)Ø×'Ñ'ˆØ*ÑÜ	 ×	0Ñ	0Ø×'Ñ'ˆÜ#×/Ò/°Ó@ÑäÐ=¸oÐ=NÐOÓPÐPð ä+Ð,<Ó=ØØñ
ñð r5   )r2   r   Úreturnz*TypeGuard[ChatCompletionFunctionToolParam])r7   ú-Iterable[ChatCompletionToolUnionParam] | Omitr…   z0Iterable[ChatCompletionFunctionToolParam] | Omit)rK   zFtype[ResponseFormatT] | completion_create_params.ResponseFormat | OmitrD   r†   rV   z-ChatCompletion | ParsedChatCompletion[object]r…   z%ParsedChatCompletion[ResponseFormatT])rD   ú"list[ChatCompletionToolUnionParam]r<   Ústrr…   z&ChatCompletionFunctionToolParam | None)rD   r‡   r.   zFunction | ParsedFunctionr…   zobject | None)rK   ú2type[ResponseFormatT] | ResponseFormatParam | OmitrI   z;ChatCompletionMessage | ParsedChatCompletionMessage[object]r…   zResponseFormatT | None)rK   z!type | ResponseFormatParam | OmitrD   r†   r…   Úbool)rK   r‰   r…   z TypeGuard[type[ResponseFormatT]])rK   rd   r…   zTypeGuard[ResponseFormatParam])rj   r   r…   rŠ   )rK   ztype[ResponseFormatT]ro   rˆ   r…   r'   )rK   z5type | completion_create_params.ResponseFormat | Omitr…   zResponseFormatParam | Omit)FÚ
__future__r   rh   ÚloggingÚtypingr   r   r   r   Útyping_extensionsr   r	   r
   r|   Ú_toolsr   Ú_typesr   r   Ú_utilsr   r   Ú_compatr   r   Ú_modelsr   Ú	_pydanticr   r   r   Ú
types.chatr   r   r   r   r   r   r   r   r    r!   Ú_exceptionsr"   r#   Útypes.shared_paramsr$   Ú#types.chat.completion_create_paramsr%   ÚResponseFormatParamÚ5types.chat.chat_completion_message_function_tool_callr&   r'   r*   Ú__annotations__Ú	getLoggerr+   r4   r9   r>   rZ   rb   rR   rU   rt   rn   rv   rs   rq   r„   © r5   r3   Ú<module>rž      sÉ  ðÞ "ã Û ß 5Ó 5ß >Ñ >ã å )ß  ß 'ß 4Ý /ß XÑ X÷÷ ÷ ÷ SÝ 5Ý XÝ MáØàñ€ð
 "&Ð ˜$Ó %à×'Ò'Ð(<Ó=€€^Ó =ð	Ø
&ð	à/ô	ð <@ðIØ8ðIà5õIð <@ðBØ8ðBà5õBð*Là[ðLð ?ðLð Cð	Lð
 +ôLð^yØ6ðyØ>Aðyà+ôyð*Ø6ð*ØB[ð*àô*ð&àGðð Iðð ô	ð BFñà6ðð ?ðð 
õ	ð	ØGð	à%ô	ô$ôEô
]ð ØJð àõ r5   