Ë
    ²Œj…)  ã                  óN  — U d dl mZ d dl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(m)Z) ddl*m+Z+m,Z, ddl-m.Z. ddl/m0Z1 ddl2m3Z3  e
dd¬«      Z4dZ5de6d<    ejn                  d«      Z8de6d<   	 	 	 	 d(d„Z9ef	 	 	 d)d„Z:ef	 	 	 d)d„Z;	 	 	 	 	 	 	 	 d*d„Z<	 	 	 	 	 	 d+d„Z=	 	 	 	 	 	 d,d„Z>	 	 	 	 	 	 d-d„Z?	 	 	 	 d.d „Z@ed!œ	 	 	 	 	 d/d"„ZA	 	 	 	 d0d#„ZBd1d$„ZCd2d%„ZDd3d&„ZE	 	 	 	 d4d'„ZFy)5é    )Ú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                óD   — | d   dk(  sy| d   j                  d«      duryy)zDCheck if the given tool is a strict ChatCompletionFunctionToolParam.ÚtypeÚfunctionFÚstrictT©Úget)Útools    új/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/openai/lib/_parsing/_completions.pyÚ$is_strict_chat_completion_tool_paramr4   +   s1   € ð �‰<˜:Ò%ØØˆJÑ×Ñ˜HÓ%¨TÑ1Øàó    c                óf   — t        | «      st        S | D �cg c]  }t        |«      sŒ|‘Œ c}S c c}w )zMSelect only the strict ChatCompletionFunctionToolParams from the given tools.)r   r   r4   )ÚtoolsÚts     r3   Ú#select_strict_chat_completion_toolsr9   7   s0   € ô �EŒ?ÜˆáÓH‘u�!Ô DÀQÕ GŠA�uÑHÐHùÒHs   –.§.c                óî   — t        | «      st        S | D ]I  }|d   dk7  rt        d|d   › d�«      ‚|d   j                  d«      }|dusŒ6t        d|d   d   › d�«      ‚ t	        t
        t           | «      S )	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                ór  — t        |«      r|D �cg c]  }|‘Œ }}ng }g }|j                  D �]°  }|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        ¬«      «       Œu|j                  dk(  r8t         j#                  d	|j$                  |j&                  j(                  d
¬«       Œ¼t*        rt-        |«       ŒÎ|j                  |«       Œà |j                  t        t        t        t.        «      t1        | «         i |j                  «       ¥di |j                  «       ¥t3        | |¬«      |r|nd dœ¥i¥¬«      «       �Œ³ t        t4        t6           t        t        t        t4        «      t1        | «         i |j                  «       ¥d|i¥¬«      «      S c c}w )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   Úsolve_response_format_tÚmaybe_parse_contentr   r'   )
rK   rD   Úchat_completionr8   rN   ÚchoicerI   rM   Ú	tool_callÚtool_call_dicts
             r3   Úparse_chat_completionr[   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¤Ó-Ô.EÀoÓ.VÑWð
Ø—n‘nÓ&ð
àð  Ø!Ÿ/™/Ó+ð ä"5Ø,;Ø$+ô#ñ 5?¡jÀDò ñ
ôö	
ðS *ôt Üœ_Ñ-Ü Ü”sÔ0Ó1Ô2IÈ/Ó2ZÑ[ðØ!×)Ñ)Ó+ðà˜7ñô	
ó	ð 	ùò /s   �	H4c                ó.   ‡— t        ˆfd„| D «       d «      S )Nc              3  ó~   •K  — | ]4  }|d    dk(  sŒ|j                  di «      j                  d«      ‰k(  sŒ1|–— Œ6 y­w)r-   r.   r<   Nr0   )Ú.0r8   r<   s     €r3   Ú	<genexpr>z)get_input_tool_by_name.<locals>.<genexpr>«   s=   øè ø€ Ðq™K�q¨1¨V©9¸
Ó+BÀqÇuÁuÈZÐY[ÓG\×G`ÑG`ÐagÓGhÐlpÓGp”™Kùs   ƒ=‘$=¶=)Únext©rD   r<   s    `r3   Úget_input_tool_by_namerb   ¨   s   ø€ ô Óq™KÓqÐswÓxÐxr5   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 )Nra   r.   r/   )rb   r<   r   Úobjectr1   Ú
isinstancer   r   ÚmodelÚ	argumentsr$   ÚjsonÚloads)rD   r.   Ú
input_toolÚinput_fns       r3   rR   rR   ®   s‚   € ô (°KÀhÇmÁmÔT€JÙØä”F˜JŸN™N¨:Ó6Ó7€HÜ�(Ô0Ô1Ü §¡°×0BÑ0BÓCÐCäÔ&¨Ó1€Hà�<‰<˜Ô!Øä�:‰:�h×(Ñ(Ó)Ð)r5   c                óv   — t        | «      r.|j                  r"|j                  st        | |j                  «      S y ©N)Úhas_rich_response_formatÚcontentÚrefusalÚ_parse_contentrJ   s     r3   rV   rV   Á   s,   € ô
   Ô0°W·_²_ÈWÏ_Ê_Ü˜o¨w¯©Ó?Ð?àr5   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])rn   r   r*   ©rK   s    r3   rU   rU   Ì   s!   € ô   Ô0ØÐäÐ'Ô)AÓBÐBr5   )rD   c                óL   — t        | «      ry|xs g D ]  }t        |«      sŒ y y)NTF)rn   Úis_parseable_tool)rK   rD   rj   s      r3   Úhas_parseable_inputrw   Ú   s1   € ô
   Ô0Øà!Ò' RÒ'ˆ
Ü˜ZÕ(Ùð (ð r5   c                ó4   — t        | «      syt        | «      ryy)NFT)r   Úis_response_format_paramrt   s    r3   rn   rn   é   s   € ô �OÔ$Øä Ô0Øàr5   c                ó   — t        | «      S rm   )r   rt   s    r3   ry   ry   õ   s   € Ü�?Ó#Ð#r5   c                óº   — | d   dk7  ryt        t        | j                  d«      «      }t        |t        «      ryt        t
        |«      j                  d«      xs dS )Nr-   r.   FTr/   )r   rd   r1   re   r   r$   )rj   rk   s     r3   rv   rv   ù   sS   € Ø�&Ñ˜ZÒ'Øä”F˜JŸN™N¨:Ó6Ó7€HÜ�(Ô0Ô1ØäÔ" HÓ-×1Ñ1°(Ó;ÒD¸uÐDr5   c                óî   — 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   Ú	TypeErrorÚpydanticÚTypeAdapterÚvalidate_json)rK   ro   s     r3   rq   rq     so   € Ü˜Ô)Ü”OÔ%5°oÀwÓ%OÓPÐPä˜oÔ.ÝÜÐXÐYhÐXiÐjÓkÐkä×#Ñ# OÓ4×BÑBÀ7ÓKÐKä
ÐIÈ/ÐIZÐ[Ó
\Ð\r5   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-   r‚   )r   r   ry   r   r-   r   Ú__name__r   r~   r   r}   r   )rK   Újson_schema_typer<   s      r3   Útype_to_response_format_paramr†     s§   € ô �OÔ$Üˆä Ô0ØÐô
 œ4 Ó1€OàTXÐä˜Ô)Ø×'Ñ'ˆØ*ÑÜ	 Ô	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ˆ   rW   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   r‹   r‡   rs   )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   rs   ro   rŠ   r‡   r'   )rK   z5type | completion_create_params.ResponseFormat | Omitr‡   zResponseFormatParam | Omit)GÚ
__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>   r[   rb   rR   rV   rU   rw   rn   ry   rv   rq   r†   © r5   r3   Ú<module>r       sã  ðÞ "ã Û ß 5Ó 5ß >Ñ >ã å )ß  ß 'ß 4Ý /ß XÑ X÷÷ ÷ ÷ SÝ 5Ý XÝ MáØàô€ð
 "&Ð ˜$Ó %à'�g×'Ñ'Ð(<Ó=€€^Ó =ð	Ø
&ð	à/ó	ð <@ðIØ8ðIà5óIð <@ðBØ8ðBà5óBð*Oà[ðOð ?ðOð Cð	Oð
 +óOðdyØ6ðyØ>Aðyà+óyð*Ø6ð*ØB[ð*àó*ð&àGðð Iðð ó	ðCØGðCàóCð" BFñà6ðð ?ðð 
ó	ð	ØGð	à%ó	ó$óEó
]ð ØJð àô r5   