
    Sj
                    x   % S r SSKJr  SSKJr  SSKJr  SSKJr  \" SS9 " S S	5      5       r	\	" S
SSS5      \	" SSSS5      \	" SSSS5      \	" SSSS5      \	" SSSS5      \	" SSSS5      \	" SSSS5      \	" SSS S5      \	" S!SS S5      \	" S"S#S$S%5      S&.
r
S'\S('   S-S.S* jjrS/S0S+ jjr  S/         S1S, jjrg))2z<Precios estimados del modelo de agentes (USD por 1M tokens).    )annotations)	dataclass)Session)settingsT)frozenc                  B    \ rS rSr% S\S'   S\S'   S\S'   SrS\S	'   S
rg)ModelPricing   strmodelfloatinput_per_1m_usdoutput_per_1m_usdNzfloat | Nonecached_input_per_1m_usd )__name__
__module____qualname____firstlineno____annotations__r   __static_attributes__r       RC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\utils\agents_pricing.pyr	   r	      s    J,0\0r   r	   gpt-5.6-solg      @g      >@g      ?gpt-5.6-terrag      @g      .@      ?gpt-5.5gpt-5.4gpt-5.2g      ?g      ,@gffffff?gpt-5g      ?g      $@g      ?
gpt-5-mini       @皙?gpt-4.1g       @o3gpt-4o-minig333333?g333333?g333333?)
r   r   r   r   r   r    r!   r$   r%   r&   zdict[str, ModelPricing]_MODEL_PRICINGNc                    U b   SSK Jn  U" U 5      R                  5       $ [        R
                  =(       d    SR                  5       $ ! [         a     N3f = f)Nr   AgentsOpenAIModelsClassr!   ).app.backend.classes.agents_openai_models_classr*   get_selected_model_code	Exceptionr   agents_modelstrip)dbr*   s     r   resolve_agents_modelr1   #   sS    	~	^*2.FFHH !!1\88::  		s   A 
AAc                   U =(       d    [        U5      =(       d    SR                  5       R                  5       nUb\   SSKJn  U" U5      R                  U5      nU(       a6  [        US   [        US   5      [        US   5      UR                  S5      S9$  U[        ;   a	  [        U   $ [        US	S
SS9$ ! [         a     N+f = f)Nr!   r   r)   
model_coder   r   r   )r   r   r   r   r   r"   r#   )r1   r/   lowerr+   r*   get_pricing_by_coder	   r   getr-   r'   )r   r0   keyr*   rows        r   pricing_for_modelr9   .   s    <(,<
C
C
E
K
K
MC	~	^)"-AA#FC#l+%*3/A+B%C&+C0C,D&E,/GG4M,N	   nc"" %	 	  		s   AB8 8
CCc                ^    [        X#S9nU S-  UR                  -  US-  UR                  -  -   $ )N)r0   i@B )r9   r   r   )prompt_tokenscompletion_tokensr   r0   ps        r   estimate_cost_usdr>   H   sA     	%'AI%););;I%	?  r   )N)r0   Session | Nonereturnr   )NN)r   
str | Noner0   r?   r@   r	   )
r;   intr<   rB   r   rA   r0   r?   r@   r   )__doc__
__future__r   dataclassesr   sqlalchemy.ormr   app.backend.core.configr   r	   r'   r   r1   r9   r>   r   r   r   <module>rH      s   B " ! " , $1 1 1  sD#>!/3dCIsD#6IsD$7ItT59'4u5|T3>IsC5
tS#s
+tS%@+' ;: 				 	 			
 	r   