
    h                     &   d dl mZmZmZmZ d dl d dlmZmZ d dl	m
Z
  edg      Zej                  d ee      g      ej                  d	 ee      g       ee      fd
edededefd              Z G d d      Zej                  d ee      g      ej                  d ee      g       ee      fd
edededefd              Zej                  d ee      g      ej                  d ee      g      d
edefd              Zy)    )	APIRouterDependsRequestResponse)*)UserAPIKeyAuthuser_api_key_auth)ProxyBaseLLMRequestProcessingzgoogle genai endpoints)tagsz+/v1beta/models/{model_name}:generateContent)dependenciesz$/models/{model_name}:generateContentrequest
model_namefastapi_responseuser_api_key_dictc                 H  K   ddl m}m}m}m}m}m}	m}
m}m	}m
}m}m}  ||        d{   }d|vr||d<   t        |      }	 |j                  | ||d|||||	d|||||
|       d{   S 7 C7 # t        $ r#}|j!                  ||||	       d{  7  d}~ww xY ww)
z_
    Not Implemented, this is a placeholder for the google genai generateContent endpoint.
    r   )_read_request_bodygeneral_settings
llm_routerproxy_configproxy_logging_objselect_data_generatoruser_api_baseuser_max_tokens
user_modeluser_request_timeoutuser_temperatureversionr   Nmodeldataagenerate_content)r   r   r   
route_typer   r   r   r   r   r   r   r   r   r   r   r   er   r   r   )litellm.proxy.proxy_serverr   r   r   r   r   r   r   r   r   r   r   r   r
   base_process_llm_request	Exception_handle_llm_api_exception)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   	processorr%   s                      d/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/proxy/google_endpoints/endpoints.pygoogle_generate_contentr,      s         $G44Dd"W-48I
77-/*/!-%"7!-!5+'! 8 
 
 	
 5

$  
77//	 8 
 
 
 	

sQ   )B"A/B"$A3 *A1+A3 .B"1A3 3	B<BBBBB"c                        e Zd ZdZed        Zy)GoogleAIStudioDataGeneratorz
    Ensures SSE data generator is used for Google AI Studio streaming responses

    Thin wrapper around ProxyBaseLLMRequestProcessing.async_sse_data_generator
    c                 @    ddl m} t        j                  | |||      S )Nr   )r   responser   request_datar   )r&   r   r
   async_sse_data_generatorr0   s       r+   _select_data_generatorz2GoogleAIStudioDataGenerator._select_data_generatorL   s$    @,EE/%/	
 	
    N)__name__
__module____qualname____doc__staticmethodr4    r5   r+   r.   r.   F   s    
 
 
r5   r.   z1/v1beta/models/{model_name}:streamGenerateContentz*/models/{model_name}:streamGenerateContentc                 b  K   ddl m}m}m}m}m}m}	m}
m}m	}m
}m}  ||        d{   }d|vr||d<   t        |      }	 |j                  | ||d||||t        j                  d||||
|	|d	       d{   S 7 R7 # t         $ r#}|j#                  ||||
       d{  7  d}~ww xY ww)ze
    Not Implemented, this is a placeholder for the google genai streamGenerateContent endpoint.
    r   )r   r   r   r   r   r   r   r   r   r   r   r   Nr   r    agenerate_content_streamT)r   r   r   r#   r   r   r   r   r   r   r   r   r   r   r   r   is_streaming_requestr$   )r&   r   r   r   r   r   r   r   r   r   r   r   r
   r'   r.   r4   r(   r)   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r*   r%   s                     r+   google_stream_generate_contentr?   V   s         $G44Dd"W .48I
77-/1/!-%"="T"T!-!5+'!%# 8 
 
 	
 5
&  
77//	 8 
 
 
 	

sQ   'B/A<B/3B  7A>8B  ;B/>B   	B,	B'!B$"B''B,,B/z'/v1beta/models/{model_name}:countTokensz /models/{model_name}:countTokensc                    K   i S w)z[
    Not Implemented, this is a placeholder for the google genai countTokens endpoint.
    r;   )r   r   s     r+   google_count_tokensrA      s      Is   N)fastapir   r   r   r   litellm.proxy._types$litellm.proxy.auth.user_api_key_authr   r	   'litellm.proxy.common_request_processingr
   routerpoststrr,   r.   r?   rA   r;   r5   r+   <module>rI      s   9 9 " R Q	
"	#

 :'RcJdIef37K\C]B^_
 )00A(B	5
5
5
 5
 &	5
 ` g5
p
 
  @PWXiPjOkl9QbIcHde
 )00A(B	7
7
7
 7
 &	7
 f m7
x 6gN_F`Eab/wGX?Y>Z[w C  \ cr5   