
    jK                         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   OVHCloudExceptionc                   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)OVHCloudEmbeddingConfigreturnNc                      y N )selfs    /Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/llms/ovhcloud/embedding/transformation.py__init__z OVHCloudEmbeddingConfig.__init__   s        api_baseapi_keymodeloptional_paramslitellm_paramsstreamc                 :    |dn|j                  d      }| d}|S )Nz0https://oai.endpoints.kepler.ai.cloud.ovh.net/v1/z/embeddings)rstrip)r   r   r   r   r   r    r!   complete_urls           r   get_complete_urlz(OVHCloudEmbeddingConfig.get_complete_url   s2     JRIYE_g_n_nor_s";/r   headersmessagesc                 R    |t        d      }d| ddd}d|v r|d   |d<   i ||S )NOVHCLOUD_API_KEYzBearer zapplication/json)AuthorizationacceptzContent-Typer+   r	   )	r   r'   r   r(   r   r    r   r   default_headerss	            r   validate_environmentz,OVHCloudEmbeddingConfig.validate_environment$   sV     ?$%78G  'wi0(.
 g%/6/GOO,-/-W--r   c                     g S r   r   )r   r   s     r   get_supported_openai_paramsz3OVHCloudEmbeddingConfig.get_supported_openai_params<   s    	r   non_default_paramsdrop_paramsc                 l    | j                  |      }|j                         D ]  \  }}||v s|||<    |S r   )r0   items)r   r1   r   r   r2   supported_openai_paramsparamvalues           r   map_openai_paramsz)OVHCloudEmbeddingConfig.map_openai_params?   sG     #'"B"B5"I.446LE5//).& 7 r   inputc                     ||d|S )N)r9   r   r   )r   r   r9   r   r'   s        r   transform_embedding_requestz3OVHCloudEmbeddingConfig.transform_embedding_requestL   s     B/BBr   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)rG   rH   )json	Exceptionr   textrC   r'   getr   rD   rE   r   rF   )r   r   r<   r=   r>   r   r?   r   r    raw_response_jsonrF   s              r   transform_embedding_responsez4OVHCloudEmbeddingConfig.transform_embedding_responseU   s    	 , 1 1 3  144W=/33F; 1 5 5h ?+//<@@RST*..w;??PQR

  %#  	#$))(44$,, 	s   B* *6C error_messagerC   c                     t        |||      S )NrA   r   )r   rO   rC   r'   s       r   get_error_classz'OVHCloudEmbeddingConfig.get_error_classu   s     !!{G
 	
r   )r   Nr   )NN)__name__
__module____qualname__r   r   strdictboolr&   r   r   r.   r0   r8   r   r;   httpxResponser   LiteLLMLoggingObjrN   intr   Headersr   rQ   r   r   r   r   r      s    "&3- # 	
    
( "&"&.. . '(	.
 . . #. 3-. 
.0    	
 CC 'C 	C
 C 
C nn *	
 ' #    
@
 
/2
=B4CV=W
	
r   r   )__doc__typingr   r   r   rX   *litellm.litellm_core_utils.litellm_loggingr   rZ   )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   utilsr   r   r   r   r   <module>rf      s9    ) (  S F N 7 O 8 %g
1 g
r   