
    g                     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	m
Z
 d dlmZ d dlmZ ddlmZ  G d	 d
e	      Zy)    )ListOptionalUnionN)AllMessageValuesBaseLLMException)BaseEmbeddingConfigLiteLLMLoggingObj)AllEmbeddingInputValues)EmbeddingResponse   TritonErrorc                   X   e Zd ZdZddZdedefdZdededed	e	def
d
Z
	 	 ddededee   dedee   dee   defdZdededededef
dZdi i i fdedej$                  dededee   dedededefdZdededeeej0                  f   defdZedee   dee   deee      fd       Zy) TritonEmbeddingConfigzR
    Transformations for triton /embeddings endpoint (This is a trtllm model)
    returnNc                      y N )selfs    a/var/www/openai/venv/lib/python3.12/site-packages/litellm/llms/triton/embedding/transformation.py__init__zTritonEmbeddingConfig.__init__   s        modelc                     g S r   r   )r   r   s     r   get_supported_openai_paramsz1TritonEmbeddingConfig.get_supported_openai_params   s    	r   non_default_paramsoptional_paramsdrop_paramsc                     |S )z>
        Map OpenAI params to Triton Embedding params
        r   )r   r   r   r   r   s        r   map_openai_paramsz'TritonEmbeddingConfig.map_openai_params   s
     r   headersmessagesapi_keyapi_basec                     i S r   r   )r   r!   r   r"   r   r#   r$   s          r   validate_environmentz*TritonEmbeddingConfig.validate_environment'   s	     	r   inputc                 *    ddt        |      gd|dgiS )Ninputs
input_textBYTES)nameshapedatatypedata)len)r   r   r'   r   r!   s        r   transform_embedding_requestz1TritonEmbeddingConfig.transform_embedding_request2   s-     (!%j\ '!		
 		
r   raw_responsemodel_responselogging_objrequest_datalitellm_paramsc	                 d   	 |j                         }	g }
|	d   }|D ]F  }|d   }|d   }| j                  ||      }t        |      D ]  \  }}|
j                  d||d        H |	j                  dd      |_	        |
|_
        |S # t        $ r" t        |j                  |j                        w xY w)	N)messagestatus_codeoutputsr-   r/   	embedding)objectindexr;   
model_nameNone)json	Exceptionr   textr9   split_embedding_by_shape	enumerateappendgetr   r/   )r   r   r2   r3   r4   r#   r5   r   r6   raw_response_json_embedding_output_outputsoutput_shape_data_split_output_dataidxr;   s                     r   transform_embedding_responsez2TritonEmbeddingConfig.transform_embedding_responseD   s    	 , 1 1 3 $Y/FG_F6NE!%!>!>uf!M"+,>"?Y!(("-!$%. #@   144\6J/1  	$))|7O7O 	s   B +B/error_messager9   c                     t        |||      S )N)r8   r9   r!   r   )r   rP   r9   r!   s       r   get_error_classz%TritonEmbeddingConfig.get_error_classk   s     !{G
 	
r   r/   r-   c                     t        |      dk7  rt        d      |d   }t        |d         D cg c]  }| ||z  |dz   |z    c}S c c}w )Nr   zShape must be of length 2.   r   )r0   
ValueErrorrange)r/   r-   embedding_sizeis       r   rC   z.TritonEmbeddingConfig.split_embedding_by_shaper   sc     u:?9::qINuUVx
IXAD^#q1u&>?
 	
 
s   A)r   N)NN)__name__
__module____qualname____doc__r   strlistr   dictboolr    r   r   r   r&   r
   r1   httpxResponser   r	   rO   intr   Headersr   rR   staticmethodfloatrC   r   r   r   r   r      s     
 
 
 	

 
 

$ "&"&		 	 '(		
 	 #	 3-	 
	

 '
 	

 
 

0 "& "!%% nn% *	%
 '% #% % % % 
%N
 
/2
=B4CV=W
	
 
5k
"&s)
	d5k	
 
r   r   )typingr   r   r   ra   )litellm.llms.base_llm.chat.transformationr   r   .litellm.llms.base_llm.embedding.transformationr   r	   litellm.types.llms.openair
   litellm.types.utilsr   common_utilsr   r   r   r   r   <module>rm      s0    ( (  X > 1 &k
/ k
r   