
    -`i                         d dl Z d dlmZ d dlmZmZmZ d dlmZ d dl	m
Z
 d dlmZ ed         Zed         Zeeef         Ze
e G d	 d
                                  ZdS )    N)field)AnyLiteralget_args)	dataclass)config)	safe_hash)kv_producerkv_both)kv_consumerr   c                      e Zd ZU dZdZedz  ed<   	 dZedz  ed<   	 dZeed<   	 dZ	e
ed<   	 dZedz  ed	<   	 dZedz  ed
<   	 dZeed<   	 dZeed<   	 dZeed<   	  ee          Zeeef         ed<   	 dZedz  ed<   	 dZeed<   	 dZed         ed<   	 defdZd dZedefd            Zedefd            Zedefd            Z defdZ!dS )!KVTransferConfigz0Configuration for distributed KV cache transfer.Nkv_connector	engine_idcudakv_buffer_deviceg    eAkv_buffer_sizekv_rolekv_rank   kv_parallel_sizez	127.0.0.1kv_ipi8  kv_port)default_factorykv_connector_extra_configkv_connector_module_pathFenable_permute_local_kv	recompute)r   failkv_load_failure_policyreturnc                     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)selffactorshash_strs      k/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/config/kv_transfer.pycompute_hashzKVTransferConfig.compute_hashH   s>      S\\0022EJJJTTVV    c                 b   | j         %t          t          j                              | _         | j        G| j        t          t                    vr,t          d| j         dt          t                               | j        +| j        &t          dt          t                               d S d S )NzUnsupported kv_role: z. Supported roles are zEPlease specify kv_role when kv_connector is set, supported roles are )	r   r$   uuiduuid4r   r   KVRole
ValueErrorr   r'   s    r*   __post_init__zKVTransferConfig.__post_init__Z   s    >! ..DN<#HV<L<L(L(L: : :'/'7'7: :  
 (T\-AB/7/?/?B B   )(-A-Ar,   c                 J    | j         d uo| j        t          t                    v S N)r   r   r   r0   r2   s    r*   is_kv_transfer_instancez(KVTransferConfig.is_kv_transfer_instancej   s$     ,Q&AQAQ1QQr,   c                 J    | j         d uo| j        t          t                    v S r5   )r   r   r   
KVProducerr2   s    r*   is_kv_producerzKVTransferConfig.is_kv_producern   $     ,U*AUAU1UUr,   c                 J    | j         d uo| j        t          t                    v S r5   )r   r   r   
KVConsumerr2   s    r*   is_kv_consumerzKVTransferConfig.is_kv_consumerr   r:   r,   c                 8    | j                             ||          S r5   )r   get)r'   keydefaults      r*   get_from_extra_configz&KVTransferConfig.get_from_extra_configv   s    -11#w???r,   )r!   N)"__name__
__module____qualname____doc__r   r$   __annotations__r   r   r   floatr   r0   r   intr   r   r   r   dictr   r   r   r   boolr    r   r+   r3   propertyr6   r9   r=   rB    r,   r*   r   r      s>         ;:#L#*### !IsTz   )"c"""  NE2 "GVd]!!!8 GS4Z) c+ E3DGSF05d0K0K0KtCH~KKK7+/cDj/// %*T)))B;FG$78FFFHc    $     R R R R XR V V V V XV V V V V XV@S @ @ @ @ @ @r,   r   )r.   dataclassesr   typingr   r   r   pydantic.dataclassesr   vllm.config.utilsr   vllm.utils.hashingr	   r8   r<   r0   r   rM   r,   r*   <module>rS      s           ) ) ) ) ) ) ) ) ) ) * * * * * * $ $ $ $ $ $ ( ( ( ( ( (-.
-.
	Z'	( 
c@ c@ c@ c@ c@ c@ c@  c@ c@ c@r,   