o
    ưiK                     @   s   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 deZdS )z;
This is OpenAI compatible - no transformation is applied

    )ListOptionalUnionN)Logging)BaseLLMException)BaseEmbeddingConfigget_secret_str)AllEmbeddingInputValuesAllMessageValues)EmbeddingResponseUsage   OVHCloudExceptionc                   @   s&  e Zd Zd$ddZ	d%dee dee deded	ed
ee defddZ		d&dedede	e
 ded	edee dee defddZdefddZdedededefddZdededededef
ddZdedejdededee deded	edefddZd ed!edeeejf defd"d#ZdS )'OVHCloudEmbeddingConfigreturnNc                 C   s   d S N )selfr   r   e/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/ovhcloud/embedding/transformation.py__init__      z OVHCloudEmbeddingConfig.__init__api_baseapi_keymodeloptional_paramslitellm_paramsstreamc                 C   s$   |d u rdn| d}| d}|S )Nz0https://oai.endpoints.kepler.ai.cloud.ovh.net/v1/z/embeddings)rstrip)r   r   r   r   r   r   r   Zcomplete_urlr   r   r   get_complete_url   s   	
z(OVHCloudEmbeddingConfig.get_complete_urlheadersmessagesc           	      C   sB   |d u rt d}d| ddd}d|v r|d |d< i ||S )NZOVHCLOUD_API_KEYzBearer zapplication/json)AuthorizationacceptzContent-Typer$   r   )	r   r"   r   r#   r   r   r   r   default_headersr   r   r   validate_environment$   s   
z,OVHCloudEmbeddingConfig.validate_environmentc                 C   s   g S r   r   )r   r   r   r   r   get_supported_openai_params<   r   z3OVHCloudEmbeddingConfig.get_supported_openai_paramsnon_default_paramsdrop_paramsc                 C   s0   |  |}| D ]\}}||v r|||< q	|S r   )r(   items)r   r)   r   r   r*   Zsupported_openai_paramsparamvaluer   r   r   map_openai_params?   s   
z)OVHCloudEmbeddingConfig.map_openai_paramsinputc                 C   s   ||d|S )N)r/   r   r   )r   r   r/   r   r"   r   r   r   transform_embedding_requestL   s   z3OVHCloudEmbeddingConfig.transform_embedding_requestraw_responsemodel_responselogging_objrequest_datac	                 C   s   z|  }	W n ty   t|j|j|jdw |	d|_|	d|_|	d|_	t
|	di dd|	di ddd	}
|
|_|S )
Nmessagestatus_coder"   r   dataobjectusageprompt_tokensr   total_tokens)r;   r<   )json	Exceptionr   textr7   r"   getr   r8   r9   r   r:   )r   r   r1   r2   r3   r   r4   r   r   Zraw_response_jsonr:   r   r   r   transform_embedding_responseU   s$   z4OVHCloudEmbeddingConfig.transform_embedding_responseerror_messager7   c                 C   s   t |||dS )Nr5   r   )r   rB   r7   r"   r   r   r   get_error_classu   s   z'OVHCloudEmbeddingConfig.get_error_class)r   Nr   )NN)__name__
__module____qualname__r   r   strdictboolr!   r   r   r'   r(   r.   r
   r0   httpxResponser   LiteLLMLoggingObjrA   intr   ZHeadersr   rC   r   r   r   r   r      s    


	


		

 r   )__doc__typingr   r   r   rJ   Z*litellm.litellm_core_utils.litellm_loggingr   rL   Z)litellm.llms.base_llm.chat.transformationr   Z.litellm.llms.base_llm.embedding.transformationr   Zlitellm.secret_managers.mainr	   Zlitellm.types.llms.openair
   r   Zlitellm.types.utilsr   r   utilsr   r   r   r   r   r   <module>   s    