
    .Ui                    X   U d dl 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	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 d d
lmZmZ d dlmZ d dlmZ d dlmZ  G d d      Ze G d d             Z eeef   Zee!ee!ef   f   Z"de#d<   ee
d   e!e df   Z$de#d<   e G d d             Z%y)    )annotationsN)Mapping)fieldsreplace)	AnnotatedAnyLiteralUnion)Omit)BodyQuery)ResponseIncludable)	Reasoning)	BaseModelGetCoreSchemaHandler)	dataclass)core_schema)	TypeAliasc                  *    e Zd Ze	 	 	 	 	 	 dd       Zy)_OmitTypeAnnotationc                2   dd}t        j                  t        j                         t        j                  |      g      }t        j                  |t        j
                  t        j                  t              |g      t        j                  d             S )Nc                    t               S N)_Omit)values    q/home/jay/workspace/tools/ai-image-gen/jaaz-app/server/venv/lib/python3.12/site-packages/agents/model_settings.pyvalidate_from_nonezL_OmitTypeAnnotation.__get_pydantic_core_schema__.<locals>.validate_from_none   s	    7N    c                     y r    )instances    r   <lambda>zB_OmitTypeAnnotation.__get_pydantic_core_schema__.<locals>.<lambda>+   s    r   )json_schemapython_schemaserialization)r   Nonereturnr   )	r   chain_schemanone_schema no_info_plain_validator_functionjson_or_python_schemaunion_schemais_instance_schemar   $plain_serializer_function_ser_schema)cls_source_type_handlerr   from_none_schemas        r   __get_pydantic_core_schema__z0_OmitTypeAnnotation.__get_pydantic_core_schema__   s    	 '33'')<<=OP
 00(%22  2259$ &JJK`a

 
	
r   N)r0   r   r1   r   r'   zcore_schema.CoreSchema)__name__
__module____qualname__classmethodr3   r    r   r   r   r      s0    

 '
 
 	
 
r   r   c                  "    e Zd ZU ded<   ded<   y)MCPToolChoicestrserver_labelnameN)r4   r5   r6   __annotations__r    r   r   r9   r9   /   s    
Ir   r9   r   Headers)autorequirednone
ToolChoicec                  R   e Zd ZU dZdZded<   	 dZded<   	 dZded<   	 dZded<   	 dZ	ded	<   	 dZ
d
ed<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZd
ed<   	 dZd
ed<   	 dZded<   	 dZded<   	 dZded<   	 dZded<   	 dZded <   	 dZd!ed"<   	 d%d#Zd&d$Zy)'ModelSettingsa?  Settings to use when calling an LLM.

    This class holds optional model configuration parameters (e.g. temperature,
    top_p, penalties, truncation, etc.).

    Not all models/providers support all of these parameters, so please check the API documentation
    for the specific model and provider you are using.
    Nzfloat | Nonetemperaturetop_pfrequency_penaltypresence_penaltyzToolChoice | Nonetool_choicezbool | Noneparallel_tool_callsz"Literal['auto', 'disabled'] | None
truncationz
int | None
max_tokenszReasoning | None	reasoningz'Literal['low', 'medium', 'high'] | None	verbosityzdict[str, str] | Nonemetadatastoreinclude_usagez%list[ResponseIncludable | str] | Noneresponse_includetop_logprobszQuery | Noneextra_queryzBody | None
extra_bodyzHeaders | Noneextra_headerszdict[str, Any] | None
extra_argsc                   || S t        |       D ci c]9  }t        ||j                        !|j                  t        ||j                        ; }}| j                  |j                  Yi }| j                  r|j	                  | j                         |j                  r|j	                  |j                         |r|nd|d<   t        | fi |S c c}w )zpProduce a new ModelSettings by overlaying any non-None values from the
        override on top of this instance.NrW   )r   getattrr<   rW   updater   )selfoverridefieldchangesmerged_argss        r   resolvezModelSettings.resolve   s     K  
x,8 JJ%**55
 
 ??&(*=*=*IK""4??3""""8#6#673>KDGL!t'w''
s   >Cc                    t        j                  |       }i }|j                         D ]0  \  }}t        |t              r|j                  d      ||<   ,|||<   2 |S )Njson)mode)dataclassesasdictitems
isinstancer   
model_dump)r[   dataclass_dict	json_dict
field_namer   s        r   to_json_dictzModelSettings.to_json_dict   sh    $++D1$&	!/!5!5!7 	.J%+(-(8(8f(8(E	*%(-	*%		. r   )r\   zModelSettings | Noner'   rD   )r'   zdict[str, Any])r4   r5   r6   __doc__rE   r=   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   r`   rl   r    r   r   rD   rD   :   sG    !%K$8E<2&*|*>%)l)=%)K")8'++ 6:J29
 "J
!:"&I& :>I6= '+H#*;E;> "&M;%0 ?C;Bu  $L*#Q !%K$) #J") %)M>() )-J%,B(.r   rD   )&
__future__r   rd   collections.abcr   r   r   typingr   r   r	   r
   openair   r   openai._typesr   r   openai.types.responsesr   openai.types.sharedr   pydanticr   r   pydantic.dataclassesr   pydantic_corer   typing_extensionsr   r   r9   r:   r>   r=   rB   rD   r    r   r   <module>ry      s    "  # ' 1 1   % 5 ) 4 * % '
 
:   
 ++,S%T	"223 3g&@A3W[[\
I \ ~ ~ ~r   