
    -`i                     (   U d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ  e	e          Zed         Z ee          Zeedf         ed<   ed	         Z ee          Zeedf         ed
<   ee G d d                                  ZdefdZdS )    )AnyLiteralget_args)	dataclass)config)init_logger)	safe_hash)CLSLASTMEAN.SEQ_POOLING_TYPES)ALLSTEPTOK_POOLING_TYPESc                   n   e Zd ZU dZdZeez  dz  ed<   	 dZedz  ed<   	 dZ	edz  ed<   	 dZ
edz  ed<   	 dZedz  ed<   	 dZedz  ed<   	 dZedz  ed	<   	 dZedz  ed
<   	 dZedz  ed<   	 dZedz  ed<   	 dZedz  ed<   	 dZedz  ed<   	 dZee         dz  ed<   	 d ZdefdZdefdZdefdZdS )PoolerConfigz:Controls the behavior of output pooling in pooling models.Npooling_typeseq_pooling_typetok_pooling_type	normalize
dimensionsenable_chunked_processingmax_embed_lensoftmax
activationuse_activation
logit_biasstep_tag_idreturned_token_idsc                 n   t          |           | _        | j        x}r| j        t	          d          | j        t	          d          |t          v r%t                              d||           || _        d S |t          v r%t                              d||           || _        d S t          |          d S )Nz5Cannot set both `pooling_type` and `seq_pooling_type`z5Cannot set both `pooling_type` and `tok_pooling_type`z4Resolved `pooling_type=%r` to `seq_pooling_type=%r`.z4Resolved `pooling_type=%r` to `tok_pooling_type=%r`.)get_use_activationr   r   r   
ValueErrorr   r   loggerdebugr   NotImplementedError)selfr   s     f/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/config/pooler.py__post_init__zPoolerConfig.__post_init__l   s    066,,< 	8$0 K   $0 K   000J    
 )5%%%!222J    
 )5%%%),7773	8 	8    returnc                 2    | j         
J d            | j         S Nz!Should be resolved by ModelConfig)r   r&   s    r'   get_seq_pooling_typez!PoolerConfig.get_seq_pooling_type   #    $002U000$$r)   c                 2    | j         
J d            | j         S r,   )r   r-   s    r'   get_tok_pooling_typez!PoolerConfig.get_tok_pooling_type   r/   r)   c                     g }t          t          |                                          d                                          }|S )a  
        WARNING: Whenever a new field is added to this config,
        ensure that it is included in the factors list if
        it affects the computation graph.

        Provide a hash that uniquely identifies all the configs
        that affect the structure of the computation
        graph from input ids/embeddings to the final hidden states,
        excluding anything before input ids/embeddings and after
        the final hidden states.
        F)usedforsecurity)r	   strencode	hexdigest)r&   factorshash_strs      r'   compute_hashzPoolerConfig.compute_hash   s>      S\\0022EJJJTTVVr)   )__name__
__module____qualname____doc__r   SequencePoolingTypeTokenPoolingType__annotations__r   r   r   boolr   intr   r   r   floatr   r   r   r   r   listr(   r.   r1   r4   r9    r)   r'   r   r      s         EDBFL%(884?FFF	 48)D0777 15&-444
 "Itd{!!! "Jd
!!! .2td{111 !%M3:$$$ !GUT\     $J### #'ND4K&&&  $J###
 #Kt"""
 ,0S	D(///8 8 8>%&9 % % % %%&6 % % % %c      r)   r   oc                 >   t          | dd           x}t                              d           |S t          | dd           x}t                              d           |S t          | dd           x}t                              d           |S t          | dd           S )Nr   z\`normalize` is deprecated and will be removed in v0.15. Please use `use_activation` instead.r   zZ`softmax` is deprecated and will be removed in v0.15. Please use `use_activation` instead.r   z]`activation` is deprecated and will be removed in v0.15. Please use `use_activation` instead.r   )getattrr#   warning_once)rF   r   r   r   s       r'   r!   r!      s    QT222	?3	
 	
 	
 1i...;3	
 	
 	
 at444
A3	
 	
 	
 1&---r)   N)typingr   r   r   pydantic.dataclassesr   vllm.config.utilsr   vllm.loggerr   vllm.utils.hashingr	   r:   r#   r>   r   tupler@   r?   r   r   objectr!   rE   r)   r'   <module>rQ      sP   * ) ) ) ) ) ) ) ) ) ) * * * * * * $ $ $ $ $ $ # # # # # # ( ( ( ( ( (	X		34 5=X>Q5R5R 5,c12 R R R=) 2:(;K2L2L 5)3./ L L L 
L L L L L L L  L^.& . . . . . .r)   