
    gS                     n    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e      Zy)	    N)Optional)AsyncHTTPHandlerHTTPHandlerget_async_httpx_client)EmbeddingResponse   )OpenAILikeBaseOpenAILikeErrorc                       e Zd Zd Z	 ddedededededed	ed
ef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Zy)OpenAILikeEmbeddingHandlerc                      y N )selfkwargss     _/var/www/openai/venv/lib/python3.12/site-packages/litellm/llms/openai_like/embedding/handler.py__init__z#OpenAILikeEmbeddingHandler.__init__   s        Ninputdatamodel_responsetimeoutapi_keyapi_baseheadersreturnc
                 R  K   d }
	 |	t        |	t              r-t        t        j                  j
                  d|i      | _        n|	| _        	 | j                  j                  ||t        j                  |             d {   }
|
j                          |
j                         }|j)                  ||d|i|	       t+        di |S 7 F# t        j                  $ rV}t        |j                  j                  |j                  r|j                  j                         t#        |            d }~wt        j$                  $ r t        dd      t&        $ r}t        dt#        |            d }~ww xY w# t&        $ r$}|j)                  ||t#        |      
       |d }~ww xY ww)Nr   )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   litellmLlmProvidersOPENAIasync_clientpostjsondumpsraise_for_statushttpxHTTPStatusErrorr
   responser"   textstrTimeoutException	Exception	post_callr   )r   r   r   r   r   r   r   logging_objr   clientr6   response_jsones                r   
aembeddingz%OpenAILikeEmbeddingHandler.aembedding   s     .	~F4D!E$:!(!5!5!<!<%w/%!
 %+!G!%!2!2!7!7#D) "8 "  ))+ ( !!!6 ="/	 "  %5}559 (( % !

 6 6/0zzAJJOO ?B1v  )) % #-F   G%#s1vFFG  	!!"%a& " 
 G	sl   F'AE7 4C
 C$C
 &!E7 F'C
 
E4AD..+E4E//E44E7 7	F$ FF$$F'modeloptional_paramscustom_endpointc                 $   | j                  ||d||      \  }}|}||d|}|j                  ||||d       |
du r| j                  ||||||||	|	      S |	t        |	t              rt        |      | _        n|	| _        	 | j                  j                  ||t        j                  |      	      }|j                          |j                         }|j)                  ||d|i|       t+        j,                  di |S # t        j                  $ r:}t        |j                  j                  |j                  j                   
      d }~wt        j"                  $ r t        dd
      t$        $ r}t        dt'        |      
      d }~ww xY w)N
embeddings)r   r   endpoint_typer   rC   )rA   r   )r'   r   )r   r   r)   T)	r   r   r<   r   r   r   r   r=   r   )r   r    r!   r$   r%   r&   r'   r(   r   )_validate_environmentpre_callr@   r+   r   r   r=   r0   r1   r2   r3   r4   r5   r
   r6   r"   r7   r9   r:   r8   r;   r,   r   )r   rA   r   r   r<   r   r   rB   r   r=   r@   rC   r   r   r6   r>   r?   s                    r   	embeddingz$OpenAILikeEmbeddingHandler.embeddingV   s    !66&+ 7 
' B/B 	48hO 	 	
 ??E{cq  }E  OV  `g  pv  @G?  H  H>Z0@A%g6DK DK	C{{''ZZ% ( H %%'$MMOM 	2D9+	 	 	
 ((9=99% $$ 	!JJ22

  %% 	V!c;TUU 	C!c3q6BB	Cs%   AD F5E		+F4F

Fr   )NNNNN)__name__
__module____qualname__r   listdictr   floatr8   r@   r   boolrI   r   r   r   r   r      s     ;; ; *	;
 ; ; ; ; 
;L 7;*."&D:D: D: 	D: #D: 3-D: D: !!23D: "$D: $D: 
D:r   r   )r1   typingr   r4   r,   &litellm.llms.custom_httpx.http_handlerr   r   r   litellm.types.utilsr   common_utilsr	   r
   r   r   r   r   <module>rU      s3   
     
 2 :E: E:r   