o
    @boj                     @  sD   d Z ddlmZ ddlmZ ddlmZ eddG dd dZd	S )
uH   Estimación de costo por llamada según tokens / audio / caracteres TTS.    )annotations)	dataclass)CallSessionT)frozenc                   @  sL   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ddZ	dS )	CostRatesu/   Precios unitarios (sobreescribibles vía .env).g?floatllm_input_per_1mg?llm_output_per_1mg~jt?stt_per_minutegMb?tts_per_1k_charssessionr   returnc                 C  sL   |j d | j |jd | j  }|jd | j }|jd | j }|| | S )Ng    .Ag      N@g     @@)total_prompt_tokensr   total_completion_tokensr	   stt_audio_secondsr
   tts_charactersr   )selfr   llmstttts r   ;/var/www/html/bot-asterisk-ari/backend/call_metrics/cost.pyestimate   s   zCostRates.estimateN)r   r   r   r   )
__name__
__module____qualname____doc__r   __annotations__r	   r
   r   r   r   r   r   r   r   
   s   
 r   N)r   
__future__r   dataclassesr   call_metrics.sessionr   r   r   r   r   r   <module>   s    