
    j                         d Z ddlmZmZmZ ddlZddlmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZmZ dd	lmZmZ d
dlmZ  G d de      Zy)z;
This is OpenAI compatible - no transformation is applied

    )ListOptionalUnionN)Logging)BaseLLMException)BaseEmbeddingConfigget_secret_str)AllEmbeddingInputValuesAllMessageValues)EmbeddingResponseUsage   SambaNovaErrorc                   J   e Zd ZddZ	 ddee   dee   dededed	ee   defd
Z	 	 ddedede	e
   dededee   dee   defdZdefdZdedededefdZdededededef
dZ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j.                  f   defdZy)SambaNovaEmbeddingConfigreturnNc                      y N )selfs    /Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/llms/sambanova/embedding/transformation.py__init__z!SambaNovaEmbeddingConfig.__init__   s        api_baseapi_keymodeloptional_paramslitellm_paramsstreamc                 n    |t        d      |j                  d      }|j                  d      s| d}|S )Nz-api_base is required for SambaNova embeddings/z/embeddings)
ValueErrorrstripendswith)r   r   r   r   r   r    r!   s          r   get_complete_urlz)SambaNovaEmbeddingConfig.get_complete_url   sC     LMM??3'  /";/Hr   headersmessagesc                 R    |t        d      }d| ddd}d|v r|d   |d<   i ||S )NSAMBANOVA_API_KEYzBearer zapplication/json)AuthorizationacceptzContent-Typer,   r	   )	r   r(   r   r)   r   r    r   r   default_headerss	            r   validate_environmentz-SambaNovaEmbeddingConfig.validate_environment(   sX     ?$%89G  'wi0(.
 g%/6/GOO, ./-W--r   c                     g S )z
        Non additional params supported, placeholder method for future supported params
        https://docs.sambanova.ai/cloud/api-reference/endpoints/embeddings-api
        r   )r   r   s     r   get_supported_openai_paramsz4SambaNovaEmbeddingConfig.get_supported_openai_paramsB   s	    
 	r   non_default_paramsdrop_paramsc                 l    | j                  |      }|j                         D ]  \  }}||v s|||<    |S )zO
        No transformation is applied - SambaNova is openai compatible
        )r1   items)r   r2   r   r   r3   supported_openai_paramsparamvalues           r   map_openai_paramsz*SambaNovaEmbeddingConfig.map_openai_paramsI   sG     #'"B"B5"I.446LE5//).& 7 r   inputc                     ||d|S )N)r:   r   r   )r   r   r:   r   r(   s        r   transform_embedding_requestz4SambaNovaEmbeddingConfig.transform_embedding_requestY   s     
 
 	
r   raw_responsemodel_responselogging_objrequest_datac	                    	 |j                         }	|	j                  d      |_        |	j                  d      |_        |	j                  d      |_	        t        |	j                  di       j                  dd      |	j                  di       j                  dd      	      }
|
|_        |S # t        $ r- t        |j                  |j                  |j
                        w xY w)
Nmessagestatus_coder(   r   dataobjectusageprompt_tokensr   total_tokens)rH   rI   )json	Exceptionr   textrD   r(   getr   rE   rF   r   rG   )r   r   r=   r>   r?   r   r@   r   r    raw_response_jsonrG   s              r   transform_embedding_responsez5SambaNovaEmbeddingConfig.transform_embedding_responsef   s    	 , 1 1 3  144W=/33F; 1 5 5h ?+//<@@RST*..w;??PQR

  %#  	 $))(44$,, 	s   B* *6C error_messagerD   c                     t        |||      S )NrB   r   )r   rP   rD   r(   s       r   get_error_classz(SambaNovaEmbeddingConfig.get_error_class   s     !{G
 	
r   )r   Nr   )NN)__name__
__module____qualname__r   r   strdictboolr'   r   r   r/   r1   r9   r   r<   httpxResponser   LiteLLMLoggingObjrO   intr   Headersr   rR   r   r   r   r   r      s    "&3- # 	
    
0 "&"&.. . '(	.
 . . #. 3-. 
.4    	
  

 '
 	

 
 

 nn *	
 ' #    
@
 
/2
=B4CV=W
	
r   r   )__doc__typingr   r   r   rY   *litellm.litellm_core_utils.litellm_loggingr   r[   )litellm.llms.base_llm.chat.transformationr   .litellm.llms.base_llm.embedding.transformationr   litellm.secret_managers.mainr
   litellm.types.llms.openair   r   litellm.types.utilsr   r   common_utilsr   r   r   r   r   <module>rg      s9    ) (  S F N 7 O 8 )x
2 x
r   