
    -`i!                         d dl mZ d dlmZmZmZ d dl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	ej        d
d
          ZdS )    deepcopy)	AnnotatedAnyOptionalN)ModelConfigPoolerConfig)get_use_activation)RequestOutputKind)PoolingTaskc                   8   e Zd ZU dZdZee ej        d          f         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edz  e	d<   dZee	d<   dZedz  e	d<   dZeeef         dz  e	d<   ej        Zee	d<   edee         fd            Zed             Z d#dZ!	 d$dede"d         ddfdZ#	 d$de"d         ddfdZ$dddee         fdZ%de"d         fdZ&d  Z'defd!Z(d%d"Z)dS )&PoolingParamsa  API parameters for pooling models.

    Attributes:
        truncate_prompt_tokens: Controls prompt truncation.
            Set to -1 to use the model's default truncation size.
            Set to k to keep only the last k tokens (left truncation).
            Set to None to disable truncation.
        dimensions: Reduce the dimensions of embeddings
            if model support matryoshka representation.
        normalize: Deprecated, please use use_activation instead.
        softmax: Deprecated, please use use_activation instead.
        activation: Deprecated, please use use_activation instead.
        use_activation: Whether to apply activation function to
            the classification outputs.
    N)getruncate_prompt_tokens
dimensions	normalizesoftmax
activationuse_activationstep_tag_idreturned_token_idstaskFrequires_token_idsskip_reading_prefix_cacheextra_kwargsoutput_kindreturnc                 
    ddgS )Nr   r    selfs    g/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/pooling_params.pyall_parameterszPoolingParams.all_parameters@   s    .//    c                      ddgdgdgddgdgdS )Nr   r   )embedclassifyscoretoken_embedtoken_classifyr    r!   s    r#   valid_parameterszPoolingParams.valid_parametersD   s7     #$45)*&'(*:;/0
 
 	
r%   c                      t          |           S )z2Returns a deep copy of the PoolingParams instance.r   r!   s    r#   clonezPoolingParams.cloneN   s    ~~r%   model_configr   c                 N   | j         || _         n(| j         |k    rd| j         d|d}t          |          t          |           | _        | j         dk    r| j        d| _        d S |                     |           |                     |           |                                  d S )NzYou cannot overwrite self.task=z with task=!pluginT)r   
ValueErrorr
   r   r   _merge_default_parameters_set_default_parameters_verify_valid_parameters)r"   r   r/   msgs       r#   verifyzPoolingParams.verifyR   s     9DIIY$H$)HHdHHHCS//! 166 9  -515.F
 	&&|444$$\222%%'''''r%   c           	      b   |d S |j         }|d S | j        
J d            | j        | j                 }|D ]D}t          ||d           t          | |d           t	          | |t          ||                     E| j        | j        dv rd| _        nd| _        |                     ||           d S )Ntask must be set)r*   r+   TF)pooler_configr   r,   getattrsetattrr   _verify_step_pooling)r"   r/   r;   r,   ks        r#   r4   z'PoolingParams._merge_default_parametersl   s     F$2 Fy$$&8$$$0;! 	< 	<A}a..6tQ%%-a!:!:;;;)1 y===15..16.!!-1ABBBBBr%   r;   r	   r,   c           	      P   ddg}|j         dk    rOg }|D ](}t          | |d           |                    |           )|rt          d| j         d| d| d          d S |D ]D}t          ||d           t          | |d           t          | |t          ||                     Ed S )Nr   r   STEPTask  only supports  parameters, does not support  parameters)tok_pooling_typer<   appendr3   r   r=   )r"   r;   r,   step_pooling_parametersinvalid_parametersr?   s         r#   r>   z"PoolingParams._verify_step_pooling   s    $12F"G)V33!#, 1 14D))5&--a000!  7DI 7 76F 7 7)7 7 7    - @ @=!T22:4D))1D!W]A%>%>???@ @r%   c                    | j         dv r| j        d| _        | j        w|w|j        st	          d|j         d          |j        }|3| j        |vr(t	          d|j         dt          |           d          d S | j        dk     rt	          d          d S d S d S | j         d	v r| j        	d| _        d S d S t	          d
| j                    )N)r'   r*   TzModel "zc" does not support matryoshka representation, changing output dimensions will lead to poor results.z" only supports zN matryoshka dimensions, use other output dimensions will lead to poor results.   z!Dimensions must be greater than 0)r(   r)   r+   zUnknown pooling task: )r   r   r   is_matryoshkar3   served_model_namematryoshka_dimensionsstr)r"   r/   mdss      r#   r5   z%PoolingParams._set_default_parameters   sH   9000"*&*#*|/G#1 $Q,"@ Q Q Q   #8?c11(5l&D 5 5-0XX5 5 5   21 _q(($%HIII% +*/G/G" )( YAAA"*&*### +* AdiAABBBr%   c           	          | j         
J d            | j        | j                  }g }| j        D ]-}||v rt          | |d           |                    |           .|rt          d| j          d| d| d          d S )Nr:   rB   rC   rD   rE   )r   r,   r$   r<   rG   r3   )r"   r,   rI   r?   s       r#   r6   z&PoolingParams._verify_valid_parameters   s    y$$&8$$$0;$ 	- 	-A$$$tQ%%1"))!,,, 	3	 3 32B 3 3%3 3 3  	 	r%   c                     d| j          d| j         d| j         d| j         d| j         d| j         d| j         d| j         d	| j         d
S )NzPoolingParams(task=z, dimensions=z, use_activation=z, step_tag_id=z, returned_token_ids=z, requires_token_ids=z, skip_reading_prefix_cache=z, truncate_prompt_tokens=z, extra_kwargs=))	r   r   r   r   r   r   r   r   r   r!   s    r#   __repr__zPoolingParams.__repr__   s    	1I	1 	1/	1 	1 #1	1 	1  +		1 	1
 #'"9	1 	1 #'"9	1 	1 *.)G	1 	1 '+&A	1 	1 !-	1 	1 	1	
r%   c                 D    | j         t          j        k    s
J d            d S )Nz,For pooling output_kind has to be FINAL_ONLY)r   r   
FINAL_ONLYr!   s    r#   __post_init__zPoolingParams.__post_init__   s,    #4#????: @????r%   )r   r   )N)r   N)*__name__
__module____qualname____doc__r   r   intmsgspecMeta__annotations__r   r   boolr   r   r   r   r   listr   r   r   r   r   dictrO   r   r   rV   r   propertyr$   r,   r.   r   r8   r4   r>   r5   r6   rT   rW   r    r%   r#   r   r      s        
 " JNIc<7<2+>+>+>&>?$FMMM
 "Jd
!!!!Itd{!!!
  GTD["Jt""""&ND4K&&& #Kt"""+/S	D(///  $D+
###$$$$-1td{111*.L$sCx.4'...%6%AK"AAA0S	 0 0 0 X0 
 
 X
   
 JN( ((/7/F(	( ( ( (6 7;C C$]3C	C C C C>@+@?CCy@ @ @ @0CH]4K C C C C>  $
# 
 
 
 

 
 
 
 
 
r%   r   T)omit_defaults
array_like)copyr   typingr   r   r   r]   vllm.configr   r	   vllm.config.poolerr
   vllm.sampling_paramsr   
vllm.tasksr   Structr   r    r%   r#   <module>rm      s          + + + + + + + + + +  1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 " " " " " "V
 V
 V
 V
 V
NV
 V
 V
 V
 V
 V
r%   