
    i&                     @    d Z ddlmZ ddlmZ ddlmZ  G d d      Zy)z
Transformation logic from OpenAI /v1/embeddings format to Bedrock Cohere /invoke format. 

Why separate file? Make it easy to see how transformation works
    )List)CohereEmbeddingConfig)CohereEmbeddingRequestc                   h    e Zd ZddZdee   fdZdededefdZdede	fd	Z
ded
ee   dedefdZy)BedrockCohereEmbeddingConfigreturnNc                      y )N selfs    /Users/manta/Documents/Projects/TheRoad-I1/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/embed/cohere_transformation.py__init__z%BedrockCohereEmbeddingConfig.__init__   s        c                 
    ddgS )Nencoding_format
dimensionsr
   r   s    r   get_supported_openai_paramsz8BedrockCohereEmbeddingConfig.get_supported_openai_params   s    !<00r   non_default_paramsoptional_paramsc                 b    |j                         D ]  \  }}|dk(  r||d<   |dk(  s||d<    |S )Nr   embedding_typesr   output_dimension)items)r   r   r   kvs        r   map_openai_paramsz.BedrockCohereEmbeddingConfig.map_openai_params   sJ     ',,.DAq%%56 12l"67 23	 /
 r   modelc                 
    d|v S )N3r
   )r   r   s     r   _is_v3_modelz)BedrockCohereEmbeddingConfig._is_v3_model   s    e|r   inputinference_paramsc                     t               j                  |||      }t        |d         }t        j                  j	                         D ]  }||v s||   ||<    |S )N
input_type)r$   )r   _transform_requestr   __annotations__keys)r   r   r!   r"   transformed_requestnew_transformed_requestr   s          r   r%   z/BedrockCohereEmbeddingConfig._transform_request!   sq     45HH5*
 #9*<8#
 (77<<>A''-@-C'* ? '&r   )r   N)__name__
__module____qualname__r   r   strr   dictr   boolr    r   r%   r
   r   r   r   r      sp    1T#Y 1"&9=	# $ ''!%c'>B'	'r   r   N)__doc__typingr   (litellm.llms.cohere.embed.transformationr   litellm.types.llms.bedrockr   r   r
   r   r   <module>r4      s     J ="' "'r   