o
    Æ°iÿ  ã                   @   s*   d Z ddlZddlmZ G dd„ dƒZdS )zí
Nvidia NIM embeddings endpoint: https://docs.api.nvidia.com/nim/reference/nvidia-nv-embedqa-e5-v5-infer

This is OpenAI compatible 

This file only contains param mapping logic

API calling is done using the OpenAI SDK with an api_base
é    N)ÚOptionalc                   @   s¼   e Zd ZU dZdZee ed< dZee ed< dZ	ee ed< dZ
ee ed< 				ddee dee dee dee ddf
dd	„Zed
d„ ƒZdd„ Z	ddededee fdd„ZdS )ÚNvidiaNimEmbeddingConfigz\
    Reference: https://docs.api.nvidia.com/nim/reference/nvidia-nv-embedqa-e5-v5-infer
    NÚencoding_formatÚuserÚ
input_typeÚtruncateÚreturnc                 C   s>   t ƒ  ¡ }| ¡ D ]\}}|dkr|d urt| j||ƒ q	d S )NÚself)ÚlocalsÚcopyÚitemsÚsetattrÚ	__class__)r	   r   r   r   r   Zlocals_ÚkeyÚvalue© r   úT/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/nvidia_nim/embed.pyÚ__init__   s   
€þz!NvidiaNimEmbeddingConfig.__init__c                 C   s   dd„ | j  ¡ D ƒS )Nc                 S   s>   i | ]\}}|  d ¡st|tjtjttfƒs|dur||“qS )Ú__N)Ú
startswithÚ
isinstanceÚtypesÚFunctionTypeÚBuiltinFunctionTypeÚclassmethodÚstaticmethod)Ú.0ÚkÚvr   r   r   Ú
<dictcomp>*   s     ýüþüôz7NvidiaNimEmbeddingConfig.get_config.<locals>.<dictcomp>)Ú__dict__r   )Úclsr   r   r   Ú
get_config(   s   þz#NvidiaNimEmbeddingConfig.get_configc                 C   s   g d¢S )N)r   r   Ú
dimensionsr   )r	   r   r   r   Úget_supported_openai_params:   s   z4NvidiaNimEmbeddingConfig.get_supported_openai_paramsÚnon_default_paramsÚoptional_paramsÚkwargsc                 C   s|   d|vri |d< |  ¡ D ]$\}}|dkr|d  d|i¡ q|dkr,|d  d|i¡ q|||< q|d ur<|d  |¡ |S )NZ
extra_bodyr   r   )r   Úupdate)r	   r%   r&   r'   r   r   r   r   r   Úmap_openai_params?   s   
z*NvidiaNimEmbeddingConfig.map_openai_params)NNNN)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   ÚstrÚ__annotations__r   r   r   r   r   r"   r$   Údictr)   r   r   r   r   r      s@   
 ûþýüû
ú
	üþýür   )r-   r   Útypingr   r   r   r   r   r   Ú<module>   s    
