o
    ưi	                     @   sz   d dl 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 dd	lmZmZ G d
d dee
ZdS )    )OptionalUnionN)Logging)BaseLLMException)BaseEmbeddingConfig)AllEmbeddingInputValues)EmbeddingResponse   )SnowflakeExceptionSnowflakeBaseConfigc                   @   s   e Zd Z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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 )SnowflakeEmbeddingConfigzf
    source: https://docs.snowflake.com/developer-guide/snowflake-rest-api/reference/cortex-embed
    Napi_baseapi_keymodeloptional_paramslitellm_paramsstreamreturnc                 C   s   |  ||}| dS )Nz/cortex/inference:embed)Z_get_api_base)selfr   r   r   r   r   r    r   f/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/snowflake/embedding/transformation.pyget_complete_url   s   	
z)SnowflakeEmbeddingConfig.get_complete_urlinputheadersc                 C   s   ||d|S )N)textr   r   )r   r   r   r   r   r   r   r   transform_embedding_request    s   z4SnowflakeEmbeddingConfig.transform_embedding_requestraw_responsemodel_responselogging_objrequest_datac	                 C   sZ   |  }	|	d D ]
}
|
d d |
d< qtdi |	}d|jpd |_|d ur+||jd< |S )NdataZ	embeddingr   z
snowflake/ r   r   )jsonr   r   Z_hidden_params)r   r   r   r   r   r   r   r   r   Zresponse_jsonitemZreturned_responser   r   r   transform_embedding_response)   s   
z5SnowflakeEmbeddingConfig.transform_embedding_responseerror_messagestatus_codec                 C   s   t |||dS )N)messager&   r   )r
   )r   r%   r&   r   r   r   r   get_error_class@   s   z(SnowflakeEmbeddingConfig.get_error_class)N)__name__
__module____qualname____doc__r   strdictboolr   r   r   httpxResponser   LiteLLMLoggingObjr$   intr   ZHeadersr   r(   r   r   r   r   r      sr    

		

r   )typingr   r   r0   Z*litellm.litellm_core_utils.litellm_loggingr   r2   Z)litellm.llms.base_llm.chat.transformationr   Z.litellm.llms.base_llm.embedding.transformationr   Zlitellm.types.llms.openair   Zlitellm.types.utilsr   utilsr
   r   r   r   r   r   r   <module>   s    