o
    ưi                     @   sh   d dl Z d dlmZ d dlZd dlZd dlmZmZmZ d dl	m
Z
 ddlmZmZ G dd deZdS )	    N)Optional)AsyncHTTPHandlerHTTPHandlerget_async_httpx_client)EmbeddingResponse   )OpenAILikeBaseOpenAILikeErrorc                   @   s   e Zd Zdd Z	ddededededed	ed
edefddZ						ddededede
e d	e
e dede
e de
e d
e
e defddZdS )OpenAILikeEmbeddingHandlerc                 K   s   d S N )selfkwargsr   r   a/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/openai_like/embedding/handler.py__init__   s   z#OpenAILikeEmbeddingHandler.__init__Ninputdatamodel_responsetimeoutapi_keyapi_baseheadersreturnc
              
      s<  d }
z|	d u st |	tsttjjd|id}n|	}z|j||t|dI d H }
|
	  |
 }W n@ t
jyR } zt|jj|jrH|jjdt|dd }~w t
jy_   tddd tyr } ztdt|dd }~ww |j||d|i|d	 tdi |W S  ty } z|j||t|d
 |d }~ww )Nr   )Zllm_providerparamsr   r   status_codemessage  Timeout error occurred.  complete_input_dictr   r   additional_argsoriginal_response)r   r   r$   r   )
isinstancer   r   litellmZLlmProvidersZOPENAIpostjsondumpsraise_for_statushttpxHTTPStatusErrorr	   responser   textstrTimeoutException	Exception	post_callr   )r   r   r   r   r   r   r   logging_objr   clientr-   Zasync_clientresponse_jsoner   r   r   
aembedding   sb   z%OpenAILikeEmbeddingHandler.aembeddingmodeloptional_paramscustom_endpointc                 C   s^  | j ||d||d\}}|}dd | D }||d|}|j||||dd |
du r;| j||||||||	|d		S |	d u sDt|	trKt|d
| _n|	| _z| jj||t	
|d}|  |	 }W n7 tjy{ } z
t|jj|jjdd }~w tjy   tddd ty } ztdt|dd }~ww |j||d|i|d tjdi |S )NZ
embeddings)r   r   Zendpoint_typer   r:   c                 S   s   i | ]\}}|d vr||qS ))N r   ).0kvr   r   r   
<dictcomp>l   s    z8OpenAILikeEmbeddingHandler.embedding.<locals>.<dictcomp>)r8   r   )r!   r   )r   r   r#   T)	r   r   r3   r   r   r   r   r4   r   )r   r   r   r   r   r    r!   r"   r   )Z_validate_environmentitemsZpre_callr7   r%   r   r   r4   r'   r(   r)   r*   r+   r,   r	   r-   r   r.   r0   r1   r/   r2   r&   r   )r   r8   r   r   r3   r   r   r9   r   r4   r7   r:   r   Zfiltered_optional_paramsr   r-   r5   r6   r   r   r   	embeddingU   s^   
z$OpenAILikeEmbeddingHandler.embeddingr   )NNNNN)__name__
__module____qualname__r   listdictr   floatr/   r7   r   boolrA   r   r   r   r   r
      s\    	
E	r
   )r(   typingr   r+   r&   Z&litellm.llms.custom_httpx.http_handlerr   r   r   Zlitellm.types.utilsr   Zcommon_utilsr   r	   r
   r   r   r   r   <module>   s   