Ë
    s0žj¦  ã                  ó<  — 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
 d dlZddlmZ ddlmZ dd	l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 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' ddl(m)Z)  e	dd¬«      Z*dd„Z+	 	 	 	 	 	 	 	 dd„Z,dd„Z-dd„Z.	 	 	 	 	 	 dd„Z/y)é    )ÚannotationsN)ÚTYPE_CHECKINGÚListÚIterableÚcast)ÚTypeVarÚassert_neveré   )ÚResponsesPydanticFunctionToolé   )ÚOmit)Úis_given)ÚPYDANTIC_V1Úmodel_parse_json)Úconstruct_type_unchecked)Úis_basemodel_typeÚis_dataclass_like_typeé   )Útype_to_response_format_param)ÚResponseÚ	ToolParamÚParsedContentÚParsedResponseÚFunctionToolParamÚParsedResponseOutputItemÚParsedResponseOutputTextÚResponseFunctionToolCallÚParsedResponseOutputMessageÚResponseFormatTextConfigParamÚParsedResponseFunctionToolCall)ÚResponseFormatÚTextFormatT)Údefaultc                óž   — t        | «      }t        |«      sJ ‚t        t        |«      }|d   dk(  sJ ‚d|d   v sJ ‚dd|d   d   |d   d   dœS )NÚtypeÚjson_schemaÚschemaTÚname)r%   Ústrictr(   r'   )r   r   r   r!   )Útype_Úresponse_format_dicts     úV/home/Script/Script_env/lib/python3.12/site-packages/openai/lib/_parsing/_responses.pyÚtype_to_text_format_paramr-   &   s}   € Ü8¸Ó?ÐÜÐ(Ô)Ð)Ð)Ü¤Ð0DÓEÐØ Ñ'¨=Ò8Ð8Ð8ØÐ+¨MÑ:Ñ:Ð:Ð:ð ØØ$ ]Ñ3°FÑ;Ø& }Ñ5°hÑ?ñ	ð ó    c                ól  — g }|j                   D �]÷  }|j                  dk(  rÀg }|j                  D ]s  }|j                  dk7  r|j                  |«       Œ$|j                  t	        t
        t           i |j                  «       ¥dt        |j                  | ¬«      i¥¬«      «       Œu |j                  t	        t        t           i |j                  «       ¥d|i¥¬«      «       ŒÓ|j                  dk(  rA|j                  t	        t        i |j                  «       ¥dt        ||¬	«      i¥¬«      «       �Œ#|j                  d
k(  �sŽ|j                  dk(  �s~|j                  dk(  �sn|j                  dk(  �s^|j                  dk(  �sN|j                  dk(  �s>|j                  dk(  �s.|j                  dk(  �s|j                  dk(  �s|j                  dk(  sÿ|j                  dk(  sð|j                  dk(  sá|j                  dk(  sÒ|j                  dk(  sÃ|j                  dk(  s´|j                  dk(  s¥|j                  dk(  s–|j                  dk(  s‡|j                  dk(  sx|j                  dk(  si|j                  dk(  sZ|j                  dk(  sK|j                  d k(  s<|j                  d!k(  s-|j                  d"k(  s|j                  d#k(  s|j                  d$k(  r|j                  |«       �ŒÔt        rt        |«       �Œç|j                  |«       �Œú t	        t        t           i |j                  «       ¥d%|i¥¬«      S )&NÚmessageÚoutput_textÚparsed)Útext_format)r*   ÚvalueÚcontentÚfunction_callÚparsed_arguments)Úinput_toolsr6   Úcomputer_callÚfile_search_callÚweb_search_callÚtool_search_callÚtool_search_outputÚadditional_toolsÚ	reasoningÚprogramÚprogram_outputÚ
compactionÚmcp_callÚmcp_approval_requestÚmcp_approval_responseÚimage_generation_callÚcode_interpreter_callÚlocal_shell_callÚlocal_shell_call_outputÚ
shell_callÚshell_call_outputÚapply_patch_callÚapply_patch_call_outputÚmcp_list_toolsÚexecÚcustom_tool_callÚfunction_call_outputÚcomputer_call_outputÚcustom_tool_call_outputÚoutput)rT   r%   r5   Úappendr   r   r"   Úto_dictÚ
parse_textÚtextr   r    Úparse_function_tool_argumentsr   r	   r   )r3   r8   ÚresponseÚoutput_listrT   Úcontent_listÚitems          r,   Úparse_responser^   5   sï  € ð @B€Kà—/‘/ó H'ˆØ�;‰;˜)Ò#Ø=?ˆLØŸ™ò �Ø—9‘9 Ò-Ø ×'Ñ'¨Ô-Øà×#Ñ#Ü,Ü6´{ÑCðØ"Ÿl™l›nðà$¤j°·±ÈÔ&Tñôõðð ×ÑÜ(Ü5´kÑBðØ Ÿ.™.Ó*ðà! <ñôõð �[‰[˜OÒ+Ø×ÑÜ(Ü8ðØ Ÿ.™.Ó*ðà*Ô,IØ(3À6ô-ñôö
ð �K‰K˜?Ó*Ø�{‰{Ð0Ó0Ø�{‰{Ð/Ó/Ø�{‰{Ð0Ó0Ø�{‰{Ð2Ó2Ø�{‰{Ð0Ó0Ø�{‰{˜kÓ)Ø�{‰{˜iÓ'Ø�{‰{Ð.Ó.Ø�{‰{˜lÒ*Ø�{‰{˜jÒ(Ø�{‰{Ð4Ò4Ø�{‰{Ð5Ò5Ø�{‰{Ð5Ò5Ø�{‰{Ð5Ò5Ø�{‰{Ð0Ò0Ø�{‰{Ð7Ò7Ø�{‰{˜lÒ*Ø�{‰{Ð1Ò1Ø�{‰{Ð0Ò0Ø�{‰{Ð7Ò7Ø�{‰{Ð.Ò.Ø�{‰{˜fÒ$Ø�{‰{Ð0Ò0Ø�{‰{Ð4Ò4Ø�{‰{Ð4Ò4Ø�{‰{Ð7Ò7à×Ñ˜vÖ&ÝÜ˜Ö à×Ñ˜vÖ&ðQH'ôT $Üœ[Ñ)ð
Ø×ÑÓ ð
à�kñ
ôð r.   c                ó  — t        |«      sy t        |«      rt        t        t	        || «      «      S t        |«      r8t        r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   r   Ú	TypeErrorÚpydanticÚTypeAdapterÚvalidate_json)rX   r3   s     r,   rW   rW   �   sy   € Ü�KÔ Øä˜Ô%Ü”KÔ!1°+¸tÓ!DÓEÐEä˜kÔ*ÝÜÐXÐYdÐXeÐfÓgÐgä×#Ñ# KÓ0×>Ñ>¸tÓDÐDä
ÐIÈ+ÈÐWÓ
XÐXr.   c                óT   — | D ]#  }|d   dk(  sŒ|j                  d«      |k(  sŒ!|c S  y )Nr%   Úfunctionr(   )Úget)r8   r(   Útools      r,   Úget_input_tool_by_namerh       s7   € Øò ˆØ�‰<˜:Ó%¨$¯(©(°6Ó*:¸dÓ*BØŠKðð r.   c                ó4  — | �t        | «      sy t        | |j                  ¬«      }|sy t        t        |«      }t        |t        «      r t        |j                  |j                  «      S |j                  d«      sy t        j                  |j                  «      S )N)r8   r(   r)   )r   rh   r(   r   ÚobjectÚ
isinstancer   r   ÚmodelÚ	argumentsrf   ÚjsonÚloads)r8   r6   Ú
input_toolrg   s       r,   rY   rY   ¨   s~   € ð
 Ð¤(¨;Ô"7Øä'°KÀm×FXÑFXÔY€JÙØä”˜
Ó#€DÜ�$Ô5Ô6Ü §
¡
¨M×,CÑ,CÓDÐDà�>‰>˜(Ô#Øä�:‰:�m×-Ñ-Ó.Ð.r.   )r*   r%   Úreturnr   )r3   útype[TextFormatT] | Omitr8   ú!Iterable[ToolParam] | Omit | NonerZ   z!Response | ParsedResponse[object]rq   zParsedResponse[TextFormatT])rX   Ústrr3   rr   rq   zTextFormatT | None)r8   zIterable[ToolParam]r(   rt   rq   zFunctionToolParam | None)r8   rs   r6   z9ParsedResponseFunctionToolCall | ResponseFunctionToolCallrq   rj   )0Ú
__future__r   rn   Útypingr   r   r   r   Útyping_extensionsr   r	   ra   Ú_toolsr   Ú_typesr   Ú_utilsr   Ú_compatr   r   Ú_modelsr   Ú	_pydanticr   r   Ú_completionsr   Útypes.responsesr   r   r   r   r   r   r   r   r   r   r    Ú#types.chat.completion_create_paramsr!   r"   r-   r^   rW   rh   rY   © r.   r,   ú<module>r‚      s¹   ðÝ "ã ß 6Ó 6ß 3ã å 2Ý Ý ß 4Ý /ß AÝ 7÷÷ ÷ ñ õ BáØàô€óðXà)ðXð 3ðXð 0ð	Xð
 !óXóvYó ð/à2ð/ð Mð/ð ô	/r.   