
    jJ                         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)z4
CometAPI Embedding API support - OpenAI compatible
    )ListOptionalUnionN)Logging)BaseLLMException)BaseEmbeddingConfigget_secret_str)AllEmbeddingInputValuesAllMessageValues)EmbeddingResponseUsage   CometAPIExceptionc                   \   e Zd 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de
e   fdZde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j0                  f   defdZy) CometAPIEmbeddingConfigz
    Configuration class for CometAPI Embedding API.
    
    Since CometAPI is OpenAI-compatible, this class provides OpenAI-standard
    embedding functionality with CometAPI-specific authentication and endpoints.
    returnNc                      y N )selfs    /Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/llms/cometapi/embed/transformation.py__init__z CometAPIEmbeddingConfig.__init__   s        api_baseapi_keymodeloptional_paramslitellm_paramsstreamc                 :    |dn|j                  d      }| d}|S )zK
        Get the complete URL for the CometAPI embedding endpoint.
        zhttps://api.cometapi.com/v1/z/embeddings)rstrip)r   r   r   r   r   r    r!   complete_urls           r   get_complete_urlz(CometAPIEmbeddingConfig.get_complete_url   s2     .6-=)8??SVCW 	 #;/r   headersmessagesc                 R    |t        d      }d| ddd}d|v r|d   |d<   i ||S )zJ
        Validate and set up authentication headers for CometAPI.
        COMETAPI_KEYzBearer zapplication/json)AuthorizationacceptzContent-Typer+   r	   )	r   r'   r   r(   r   r    r   r   default_headerss	            r   validate_environmentz,CometAPIEmbeddingConfig.validate_environment0   sU     ?$^4G  'wi0(.
 g%/6/GOO,-/-W--r   c                 
    g dS )z
        Get the supported OpenAI parameters for embedding requests.
        CometAPI supports standard OpenAI embedding parameters.
        )
dimensionsencoding_formatuserr   )r   r   s     r   get_supported_openai_paramsz3CometAPIEmbeddingConfig.get_supported_openai_paramsK   s    

 	
r   non_default_paramsdrop_paramsc                 l    | j                  |      }|j                         D ]  \  }}||v s|||<    |S )z;
        Map OpenAI parameters to CometAPI format.
        )r3   items)r   r4   r   r   r5   supported_openai_paramsparamvalues           r   map_openai_paramsz)CometAPIEmbeddingConfig.map_openai_paramsV   sG     #'"B"B5"I.446LE5//).& 7 r   inputc                     ||d|S )zG
        Transform the embedding request into CometAPI format.
        )r<   r   r   )r   r   r<   r   r'   s        r   transform_embedding_requestz3CometAPIEmbeddingConfig.transform_embedding_requestf   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)
zU
        Transform CometAPI response into standard EmbeddingResponse format.
        messagestatus_coder'   r   dataobjectusageprompt_tokensr   total_tokens)rJ   rK   )json	Exceptionr   textrF   r'   getr   rG   rH   r   rI   )r   r   r?   r@   rA   r   rB   r   r    raw_response_jsonrI   s              r   transform_embedding_responsez4CometAPIEmbeddingConfig.transform_embedding_responser   s    	 , 1 1 3  144W=/33F; 1 5 5h ?+//<@@RST*..w;??PQR

  %#  	#$))(44$,, 	s   B* *6C error_messagerF   c                     t        |||      S )zJ
        Get the appropriate error class for CometAPI exceptions.
        rD   r   )r   rR   rF   r'   s       r   get_error_classz'CometAPIEmbeddingConfig.get_error_class   s     !!{G
 	
r   )r   Nr   )NN)__name__
__module____qualname____doc__r   r   strdictboolr&   r   r   r.   r3   r;   r   r>   httpxResponser   LiteLLMLoggingObjrQ   intr   Headersr   rT   r   r   r   r   r      s    "&3- # 	
    
2 "&"&.. . '(	.
 . . #. 3-. 
.6	
 	
c 	
   	
  
 
C
C '
C 	
C
 
C 

C!! nn! *	!
 '! #! ! ! ! 
!F
 
/2
=B4CV=W
	
r   r   )rX   typingr   r   r   r\   *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>ri      s9    ) (  S F N 7 O 8 ,J
1 J
r   