
    h                     z    d dl mZmZmZmZmZ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  e       Z G d d      Zy)	    )AnyAsyncIterator	CoroutineDictListOptionalUnioncastN)GenericLiteLLMParams)ModelResponse   )GoogleGenAIAdapterc                      e Zd ZdZe	 	 	 	 ddedeeeee	f      eee	f   f   de
eee	f      dede
e   de
eee	f      d	eee	f   fd
       Ze	 	 ddedeeeee	f      eee	f   f   dede
eee	f      ded	eeee	f   ee   f   fd       Ze	 	 	 ddedeeeee	f      eee	f   f   dede
eee	f      deded	eeee	f   ee   ee	e	eeee	f   ee   f   f   f   fd       Zy)"GenerateContentToCompletionHandlerzaHandler for transforming generate_content calls to completion format when provider config is NoneNmodelcontentsconfigstreamlitellm_paramsextra_kwargsreturnc                 f    t        j                  d| |||d|xs i }t        |      }|r||d<   |S )z1Prepare kwargs for litellm.completion/acompletion)r   r   r   r   r    )GOOGLE_GENAI_ADAPTER(translate_generate_content_to_completiondict)r   r   r   r   r   r   completion_requestcompletion_kwargss           a/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/google_genai/adapters/handler.py_prepare_completion_kwargsz=GenerateContentToCompletionHandler._prepare_completion_kwargs   sY     !II !-	
  %2 	 -11C,D*0h'      c                 f  K   t         j                  | |||||      }	 t        j                  di | d{   }|r$t        j                  |      }||S t        d      t        j                  t        t        |            }	|	S 7 O# t        $ r}
t        dt        |
             d}
~
ww xY ww)zDHandle generate_content call asynchronously using completion adapterr   r   r   r   r   r   N&Failed to transform streaming responsez8Error calling litellm.acompletion for generate_content: r   )r   r    litellmacompletionr   ,translate_completion_output_params_streaming
ValueError(translate_completion_to_generate_contentr
   r   	Exceptionstr)r   r   r   r   r   kwargsr   completion_responsetransformed_streamgenerate_content_responsees              r   async_generate_content_handlerzAGenerateContentToCompletionHandler.async_generate_content_handler-   s      /II!-# J  		(/(;(;(P>O(P"P )UU+ #
 &1-- !IJJ )QQ],?@ *
 10' #Q*  	J3q6(S 	sD   B1B	 BB	 B1/B	 B1B	 		B.B))B..B1	_is_asyncc           	         |rt        j                  d| ||||d|S t         j                  | |||||      }	 t        j                  di |}|r$t
        j                  |      }	|	|	S t        d      t
        j                  t        t        |            }
|
S # t        $ r}t        dt        |             d}~ww xY w)z5Handle generate_content call using completion adapter)r   r   r   r   r   r#   Nr$   z7Error calling litellm.completion for generate_content: r   )r   r1   r    r%   
completionr   r'   r(   r)   r
   r   r*   r+   )r   r   r   r   r   r2   r,   r   r-   r.   r/   r0   s               r   generate_content_handlerz;GenerateContentToCompletionHandler.generate_content_handler^   s     5TT !-   /II!-# J  		")"4"4"I7H"I )UU+ #
 &1-- !IJJ )QQ],?@ *
 10 	I#a&R 	s   /B */B 	B?#B::B?)NFNN)NF)NFF)__name__
__module____qualname____doc__staticmethodr+   r	   r   r   r   r   boolr   r    r   bytesr1   r   r5   r   r!   r   r   r      s   k ,09=15!!T#s(^,d38n<=! c3h(! 	!
 !!56! tCH~.! 
c3h! !8 
 ,0..T#s(^,d38n<=. -. c3h(	.
 . 
tCH~}U33	4. .` 
 ,0==T#s(^,d38n<== -= c3h(	=
 = = 
S#Xe#sE$sCx.-2F"FGGH	J
= =r!   r   )typingr   r   r   r   r   r   r	   r
   r%   litellm.types.routerr   litellm.types.utilsr   transformationr   r   r   r   r!   r   <module>rA      s1    S S S  5 - . *+ O Or!   