
    	h                    0   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'Z0d0d+Z1dS )1    )annotationsN)TYPE_CHECKINGAnyListIterablecast)TypeVarassert_never   )ResponsesPydanticFunctionTool   )NotGiven)is_given)PYDANTIC_V1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)defaulttype_typereturnr!   c                    t          |           }t          |          sJ t          t          |          }|d         dk    sJ d|d         v sJ dd|d         d         |d         d         dS )Nr'   json_schemaschemaTname)r'   strictr,   r+   )r   r   r   r#   )r&   response_format_dicts     k/var/www/html/web-builder-api.evdpl.com/venv/lib/python3.11/site-packages/openai/lib/_parsing/_responses.pytype_to_text_format_paramr0   &   s    8??()))))0DEE'=8888+M::::: $]3F;&}5h?	      text_formattype[TextFormatT] | NotGiveninput_tools%Iterable[ToolParam] | NotGiven | Noneresponse!Response | ParsedResponse[object]ParsedResponse[TextFormatT]c                T   t          |           }g }|j        D ]*}|j        dk    rg }|j        D ]}|j        dk    r|                    |           #|                    t          t          t          t                    |         i |	                                dt          |j        |           i                     |                    t          t          t          t                    |         i |	                                d|i                     |j        dk    rR|                    t          t          i |	                                dt          ||	          i                     b|j        d
k    sy|j        dk    sn|j        dk    sc|j        dk    sX|j        dk    sM|j        dk    sB|j        dk    s7|j        dk    s,|j        dk    s!|j        dk    s|j        dk    s|j        dk    r|                    |           t          rt!          |           |                    |           ,t          t"          t$                   t          t          t          t"                    |         i |	                                d|i                    S )Nmessageoutput_textparsed)r2   )r&   valuecontentfunction_callparsed_arguments)r4   r?   computer_callfile_search_callweb_search_call	reasoningmcp_callmcp_approval_requestimage_generation_callcode_interpreter_calllocal_shell_callmcp_list_toolsexeccustom_tool_calloutput)r   rM   r'   r>   appendr   r   r   r   to_dict
parse_texttextr    r"   parse_function_tool_argumentsr   r
   r   r$   )r2   r4   r6   solved_toutput_listrM   content_listitems           r/   parse_responserW   5   s    '{33H?AK/ 9' 9';)##=?L  9-- ''---##,"3(@AA(K"llnn$j&T&T&T       (s$?@@J ..**!<       [O++(8 ..***,I(36- - -   
 
 
 
 K?**{000{///{k)){j(({444{555{555{000{...{f$${000v&&&& 	'    v&&&&{# sN++H5""$$+ 	
 	
 	
	 	 	r1   rQ   strTextFormatT | Nonec                J   t          |          sd S t          |          r#t          t          t	          ||                     S t          |          r@t          r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   r   	TypeErrorpydanticTypeAdaptervalidate_json)rQ   r2   s     r/   rP   rP      s    K   t%% FK!1+t!D!DEEEk** E 	hfYdffggg#K00>>tDDD
W+WW
X
XXr1   Iterable[ToolParam]r,   FunctionToolParam | Nonec                b    | D ]+}|d         dk    r|                     d          |k    r|c S ,d S )Nr'   functionr,   )get)r4   r,   tools      r/   get_input_tool_by_namere      sE      <:%%$((6*:*:d*B*BKKK4r1   r?   9ParsedResponseFunctionToolCall | ResponseFunctionToolCallobjectc                D   | t          |           sd S t          | |j                  }|sd S t          t          |          }t          |t                    rt          |j        |j	                  S |
                    d          sd S t          j        |j	                  S )N)r4   r,   r-   )r   re   r,   r   rg   
isinstancer   r   model	argumentsrc   jsonloads)r4   r?   
input_toolrd   s       r/   rR   rR      s    
 (;"7"7t'KmFXYYYJ t
##D$566 E
M,CDDD>>(## t:m-...r1   )r&   r'   r(   r!   )r2   r3   r4   r5   r6   r7   r(   r8   )rQ   rX   r2   r3   r(   rY   )r4   r_   r,   rX   r(   r`   )r4   r5   r?   rf   r(   rg   )2
__future__r   rl   typingr   r   r   r   r   typing_extensionsr	   r
   r\   _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$   r0   rW   rP   re   rR    r1   r/   <module>r|      s%   " " " " " "  ; ; ; ; ; ; ; ; ; ; ; ; ; ; 3 3 3 3 3 3 3 3  2 2 2 2 2 2             4 4 4 4 4 4 4 4 / / / / / / A A A A A A A A P P P P P P P P                          B A A A A Ag     M M M M`Y Y Y Y    / / / / / /r1   