Ë
    $Æ%h  ã                  óD  — d dl mZ d dlZd dlmZ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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„Z0	 	 	 	 	 	 dd„Z1y)é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚListÚIterableÚcast)ÚTypeVarÚassert_neveré   )ÚResponsesPydanticFunctionToolé   )ÚNotGiven)Úis_given)ÚPYDANTIC_V2Úmodel_parse_json)Úconstruct_type_unchecked)Úis_basemodel_typeÚis_dataclass_like_typeé   )Úsolve_response_format_tÚ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     ú\/var/www/skyplay_api_hub/venv/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                ó$  — t        | «      }g }|j                  D �]©  }|j                  dk(  rÔg }|j                  D ]}  }|j                  dk7  r|j	                  |«       Œ$|j	                  t        t        t        t        «      |   i |j                  «       ¥dt        |j                  | ¬«      i¥¬«      «       Œ |j	                  t        t        t        t        «      |   i |j                  «       ¥d|i¥¬«      «       Œç|j                  dk(  rA|j	                  t        t        i |j                  «       ¥dt        ||¬	«      i¥¬«      «       �Œ7|j                  d
k(  s-|j                  dk(  s|j                  dk(  s|j                  dk(  r|j	                  |«       �Œ†t        rt!        |«       �Œ™|j	                  |«       �Œ¬ t        t"        t$           t        t        t        t"        «      |   i |j                  «       ¥d|i¥¬«      «      S )NÚmessageÚoutput_textÚparsed)Útext_format)r,   ÚvalueÚcontentÚfunction_callÚparsed_arguments)Úinput_toolsr8   Úcomputer_callÚfile_search_callÚweb_search_callÚ	reasoningÚoutput)r   r?   r'   r7   Úappendr   r   r   r   Úto_dictÚ
parse_textÚtextr    r"   Úparse_function_tool_argumentsr   r
   r   r$   )r5   r:   ÚresponseÚsolved_tÚoutput_listr?   Úcontent_listÚitems           r.   Úparse_responserJ   5   sö  € ô ' {Ó3€HØ?A€Kà—/‘/ó 1'ˆØ�;‰;˜)Ò#Ø=?ˆLØŸ™ò �Ø—9‘9 Ò-Ø ×'Ñ'¨Ô-Øà×#Ñ#Ü,Ü"¤3Ô(@ÓAÀ(ÑKðØ"Ÿl™l›nðà$¤j°·±ÈÔ&Tñôõðð ×ÑÜ(ÜœsÔ$?Ó@ÀÑJðØ Ÿ.™.Ó*ðà! <ñôõð �[‰[˜OÒ+Ø×ÑÜ(Ü8ðØ Ÿ.™.Ó*ðà*Ô,IØ(3À6ô-ñôö
ð �K‰K˜?Ò*Ø�{‰{Ð0Ò0Ø�{‰{Ð/Ò/Ø�{‰{˜kÒ)à×Ñ˜vÖ&ÝÜ˜Ö à×Ñ˜vÖ&ðc1'ôf Ü”{Ñ#Ü Ü”sœNÓ+¨HÑ5ðØ×"Ñ"Ó$ðà˜+ñô	
ó	ð 	r0   c                ó  — t        |«      sy 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   r   Ú	TypeErrorÚpydanticÚTypeAdapterÚvalidate_json)rC   r5   s     r.   rB   rB   }   sy   € Ü�KÔ Øä˜Ô%Ü”KÔ!1°+¸tÓ!DÓEÐEä˜kÔ*ÝÜÐXÐYdÐXeÐfÓgÐgä×#Ñ# KÓ0×>Ñ>¸tÓDÐDä
ÐIÈ+ÈÐWÓ
XÐXr0   c                óT   — | D ]#  }|d   dk(  sŒ|j                  d«      |k(  sŒ!|c S  y )Nr'   Úfunctionr*   )Úget)r:   r*   Útools      r.   Úget_input_tool_by_namerT   �   s7   € Øò ˆØ�‰<˜:Ó%¨$¯(©(°6Ó*:¸dÓ*BØŠKðð r0   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)r:   r*   r+   )r   rT   r*   r   ÚobjectÚ
isinstancer   r   ÚmodelÚ	argumentsrR   ÚjsonÚloads)r:   r8   Ú
input_toolrS   s       r.   rD   rD   •   s~   € ð
 Ð¤(¨;Ô"7Øä'°KÀm×FXÑFXÔY€JÙØä”˜
Ó#€DÜ�$Ô5Ô6Ü §
¡
¨M×,CÑ,CÓDÐDà�>‰>˜(Ô#Øä�:‰:�m×-Ñ-Ó.Ð.r0   )r,   r'   Úreturnr!   )r5   útype[TextFormatT] | NotGivenr:   ú%Iterable[ToolParam] | NotGiven | NonerE   z!Response | ParsedResponse[object]r]   zParsedResponse[TextFormatT])rC   Ústrr5   r^   r]   zTextFormatT | None)r:   zIterable[ToolParam]r*   r`   r]   zFunctionToolParam | None)r:   r_   r8   z9ParsedResponseFunctionToolCall | ResponseFunctionToolCallr]   rV   )2Ú
__future__r   rZ   Útypingr   r   r   r   r   Útyping_extensionsr	   r
   rM   Ú_toolsr   Ú_typesr   Ú_utilsr   Ú_compatr   r   Ú_modelsr   Ú	_pydanticr   r   Ú_completionsr   r   Útypes.responsesr   r   r   r   r   r   r   r   r    r!   r"   Ú#types.chat.completion_create_paramsr#   r$   r/   rJ   rB   rT   rD   © r0   r.   ú<module>rn      s¹   ðÝ "ã ß ;Õ ;ß 3ã å 2Ý Ý ß 4Ý /ß Aß P÷÷ ÷ ñ õ BáØàô€óðEà-ðEð 7ðEð 0ð	Eð
 !óEóPYó ð/à6ð/ð Mð/ð ô	/r0   