§
    Ý
@g²#  ã                  óž  — 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dAd„Z5dBd „Z6dCd%„Z7dDd)„Z8dEd.„Z9dFd0„Z:ed1œdGd4„Z;dHd6„Z<dId8„Z=dJd;„Z>dKd=„Z?dLd@„Z@dS )Mé    )Ú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_formatÚtoolsú,Iterable[ChatCompletionToolParam] | NotGivenÚreturnc                óø   — t          | ¦  «        sd S | D ]e}|d         dk    rt          d|d         › d�¦  «        ‚|d                              d¦  «        }|durt          d|d         d         › d�¦  «        ‚Œfd S )	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)r*   Útoolr1   s      úT/var/www/piapp/venv/lib/python3.11/site-packages/openai/lib/_parsing/_completions.pyÚvalidate_input_toolsr7   '   sº   € õ �E‰?Œ?ð Øˆàð 
ð 
ˆØ�Œ<˜:Ò%Ð%ÝØgÐX\Ð]cÔXdÐgÐgÐgñô ð ð �jÔ!×%Ò% hÑ/Ô/ˆØ˜ÐÐÝØn�D˜Ô$ VÔ,ÐnÐnÐnñô ð ð ð
ð 
ó    Úresponse_formatúJtype[ResponseFormatT] | completion_create_params.ResponseFormat | NotGivenÚinput_toolsÚchat_completionú-ChatCompletion | ParsedChatCompletion[object]ú%ParsedChatCompletion[ResponseFormatT]c                óT  — t          |¦  «        rd„ |D ¦   «         }ng }g }|j        D �]Ž}|j        dk    rt          |¬¦  «        ‚|j        dk    rt	          ¦   «         ‚|j        }g }|j        r¸|j        D ]°}|j        dk    rw|                     ¦   «         }| 	                    t          i |¥di t          t          |d         ¦  «        ¥dt          ||j        ¬¦  «        i¥i¥t          ¬¦  «        ¦  «         Œ„t           rt#          |¦  «         Œ›| 	                    |¦  «         Œ±| 	                    t          t          t          t$          ¦  «        t'          | ¦  «                 i |                     ¦   «         ¥d	i |                     ¦   «         ¥t)          | |¬
¦  «        |dœ¥i¥¬¦  «        ¦  «         �Œ�t          t*          t,                   t          t          t          t*          ¦  «        t'          | ¦  «                 i |                     ¦   «         ¥d|i¥¬¦  «        ¦  «        S )Nc                ó   — g | ]}|‘ŒS © rA   )Ú.0Úts     r6   ú
<listcomp>z)parse_chat_completion.<locals>.<listcomp>A   s   € Ð.Ð.Ð.˜Q�qÐ.Ð.Ð.r8   Úlength)Ú
completionÚcontent_filterr/   Úparsed_arguments)r;   r/   )ÚvalueÚtype_Úmessage©r9   rK   )ÚparsedÚ
tool_calls)rJ   rI   Úchoices)r   rO   Úfinish_reasonr!   r"   rK   rN   r.   Úto_dictÚappendr   r   r   Úparse_function_tool_argumentsr/   r   r   r
   r   Úsolve_response_format_tÚmaybe_parse_contentr   r&   )	r9   r;   r<   rO   ÚchoicerK   rN   Ú	tool_callÚtool_call_dicts	            r6   Úparse_chat_completionrY   :   sª  € õ �ÑÔð Ø.Ð. +Ð.Ñ.Ô.ˆˆàˆà35€GØ!Ô)ð 0
ñ 0
ˆØÔ 8Ò+Ð+Ý)°_ÐEÑEÔEÐEàÔÐ#3Ò3Ð3Ý0Ñ2Ô2Ð2à”.ˆà35ˆ
ØÔð 	1Ø$Ô/ð 1ð 1�	Ø”> ZÒ/Ð/Ø%.×%6Ò%6Ñ%8Ô%8�NØ×%Ò%Ý0ð#Ø"0ð#à *ð -"Ý&*­3°¸zÔ0JÑ&KÔ&Kð-"à$6Õ8UØ4?È)ÔJ\ð9&ñ 9&ô 9&ð-"ð -"ð#ð #õ #9ðñ ô ñô ð ð õ #ð 1Ý  Ñ+Ô+Ð+Ð+à×%Ò% iÑ0Ô0Ð0Ð0à�ŠÝ$Ý�3¥Ñ-Ô-Õ.EÀoÑ.VÔ.VÔWð
Ø—n’nÑ&Ô&ð
àð  Ø!Ÿ/š/Ñ+Ô+ð å"5Ø,;Ø$+ð#ñ #ô #ð '1ð ð  ð  ð
ð 
ðñ ô ñ	
ô 	
ð 	
ñ 	
õ" Ý�_Ô-Ý Ý•sÕ0Ñ1Ô1Õ2IÈ/Ñ2ZÔ2ZÔ[ðØ!×)Ò)Ñ+Ô+ðà˜7ðð ð	
ñ 	
ô 	
ñ	ô 	ð 	r8   úlist[ChatCompletionToolParam]r2   ÚstrúChatCompletionToolParam | Nonec                ó<   ‡— t          ˆfd„| D ¦   «         d ¦  «        S )Nc              3  óv   •K  — | ]3}|                      d i ¦  «                              d¦  «        ‰k    ¯/|V — Œ4dS )r/   r2   N)r4   )rB   rC   r2   s     €r6   ú	<genexpr>z)get_input_tool_by_name.<locals>.<genexpr>…   sJ   øè è € ÐUÐU�q¨1¯5ª5°¸RÑ+@Ô+@×+DÒ+DÀVÑ+LÔ+LÐPTÒ+TÐ+T�Ð+TÐ+TÐ+TÐ+TÐUÐUr8   )Únext©r;   r2   s    `r6   Úget_input_tool_by_namerb   „   s)   ø€ ÝÐUÐUÐUÐU˜KÐUÑUÔUÐW[Ñ\Ô\Ð\r8   r/   úFunction | ParsedFunctionÚobjectc                ón  — t          | |j        ¬¦  «        }|sd S t          t          |                     d¦  «        ¦  «        }t          |t          ¦  «        rt          |j        |j	        ¦  «        S t          t          |¦  «        }|                     d¦  «        sd S t          j        |j	        ¦  «        S )Nra   r/   r1   )rb   r2   r   rd   r4   Ú
isinstancer   r   ÚmodelÚ	argumentsr#   ÚjsonÚloads)r;   r/   Ú
input_toolÚinput_fns       r6   rS   rS   ˆ   s¥   € õ (°KÀhÄmÐTÑTÔT€JØð Øˆtå•F˜JŸNšN¨:Ñ6Ô6Ñ7Ô7€HÝ�(Õ0Ñ1Ô1ð DÝ ¤°Ô0BÑCÔCÐCåÕ&¨Ñ1Ô1€Hà�<Š<˜Ñ!Ô!ð ØˆtåŒ:�hÔ(Ñ)Ô)Ð)r8   ú6type[ResponseFormatT] | ResponseFormatParam | NotGivenrK   ú;ChatCompletionMessage | ParsedChatCompletionMessage[object]úResponseFormatT | Nonec                ój   — t          | ¦  «        r#|j        �|j        st          | |j        ¦  «        S d S ©N)Úhas_rich_response_formatÚcontentÚrefusalÚ_parse_contentrL   s     r6   rU   rU   ›   s<   € õ
   Ñ0Ô0ð @°W´_Ð5PÐY`ÔYhÐ5PÝ˜o¨w¬Ñ?Ô?Ð?àˆ4r8   útype[ResponseFormatT]c                óN   — 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`.
    rv   )rr   r   r)   ©r9   s    r6   rT   rT   ¦   s,   € õ   Ñ0Ô0ð ØÐåÐ'Õ)AÑBÔBÐBr8   )r;   ú%type | ResponseFormatParam | NotGivenÚboolc                óZ   — t          | ¦  «        rdS |pg D ]}t          |¦  «        r dS ŒdS )NTF)rr   Úis_parseable_tool)r9   r;   rk   s      r6   Úhas_parseable_inputr}   ´   sP   € õ
   Ñ0Ô0ð Øˆtà!Ð' Rð ð ˆ
Ý˜ZÑ(Ô(ð 	Ø�4�4ð	ð ˆ5r8   ú TypeGuard[type[ResponseFormatT]]c                óJ   — t          | ¦  «        sdS t          | ¦  «        rdS dS )NFT)r   Úis_response_format_paramrx   s    r6   rr   rr   Ã   s3   € õ �OÑ$Ô$ð Øˆuå Ñ0Ô0ð Øˆuàˆ4r8   úTypeGuard[ResponseFormatParam]c                ó    — t          | ¦  «        S rq   )r   rx   s    r6   r€   r€   Ï   s   € Ý�?Ñ#Ô#Ð#r8   rk   r   c                óÔ   — t          t          |                      d¦  «        ¦  «        }t          |t          ¦  «        rdS t          t
          |¦  «                             d¦  «        pdS )Nr/   Tr1   F)r   rd   r4   rf   r   r#   )rk   rl   s     r6   r|   r|   Ó   sY   € Ý•F˜JŸNšN¨:Ñ6Ô6Ñ7Ô7€HÝ�(Õ0Ñ1Ô1ð ØˆtåÕ" HÑ-Ô-×1Ò1°(Ñ;Ô;ÐD¸uÐDr8   rs   c                ó(  — t          | ¦  «        r#t          t          t          | |¦  «        ¦  «        S t	          | ¦  «        r@t
          st          d| › �¦  «        ‚t          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)r9   rs   s     r6   ru   ru   Û   s–   € Ý˜Ñ)Ô)ð QÝ•OÕ%5°oÀwÑ%OÔ%OÑPÔPÐPå˜oÑ.Ô.ð LÝð 	lÝÐjÐYhÐjÐjÑkÔkÐkåÔ# OÑ4Ô4×BÒBÀ7ÑKÔKÐKå
Ð[È/Ð[Ð[Ñ
\Ô
\Ð\r8   ú9type | completion_create_params.ResponseFormat | NotGivenúResponseFormatParam | NotGivenc                óV  — 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)Úschemar2   r1   )r.   rŒ   )r   r   r€   r   r.   r   Ú__name__r   r†   r‡   r…   r   )r9   Újson_schema_typer2   s      r6   Útype_to_response_format_paramr�   è   sÝ   € õ �OÑ$Ô$ð ÝÐå Ñ0Ô0ð ØÐõ
 �4 Ñ1Ô1€OàTXÐå˜Ñ)Ô)ð QØÔ'ˆØ*ÐÐÝ	 Ñ	0Ô	0ð QØÔ'ˆÝ#Ô/°Ñ@Ô@ÐÐåÐO¸oÐOÐOÑPÔPÐPð å+Ð,<Ñ=Ô=ØØð
ð 
ðð ð r8   )r*   r+   r,   r(   )r9   r:   r;   r+   r<   r=   r,   r>   )r;   rZ   r2   r[   r,   r\   )r;   rZ   r/   rc   r,   rd   )r9   rm   rK   rn   r,   ro   )r9   rm   r,   rv   )r9   ry   r;   r+   r,   rz   )r9   rm   r,   r~   )r9   rd   r,   r�   )rk   r   r,   rz   )r9   rv   rs   r[   r,   r&   )r9   r‰   r,   rŠ   )AÚ
__future__r   ri   Ú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    Ú_exceptionsr!   r"   Útypes.shared_paramsr#   Ú#types.chat.completion_create_paramsr$   ÚResponseFormatParamÚ,types.chat.chat_completion_message_tool_callr%   r&   r)   Ú__annotations__r7   rY   rb   rS   rU   rT   r}   rr   r€   r|   ru   r�   rA   r8   r6   ú<module>r¡      s  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à €€€Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >à €€€à )Ð )Ð )Ð )Ð )Ð )Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø /Ð /Ð /Ð /Ð /Ð /Ø XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ Xð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð SÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø XÐ XÐ XÐ XÐ XÐ XØ DÐ DÐ DÐ DÐ DÐ Dà�'Øàðñ ô €ð
 "&Ð Ð %Ð %Ð %Ñ %ð ;Dðð ð ð ð ð&Gð Gð Gð GðT]ð ]ð ]ð ]ð*ð *ð *ð *ð&ð ð ð ðCð Cð Cð Cð" AJðð ð ð ð ð ð	ð 	ð 	ð 	ð$ð $ð $ð $ðEð Eð Eð Eð
]ð 
]ð 
]ð 
]ð ð  ð  ð  ð  ð  r8   