
    Mi             S       8   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
Jr  S SKJrJrJr  S SKJr  S SKJr  S SKJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#  S SK$J%r%  \(       a  S SK&J'r'  S SK(r(S SK)r)S SK*r*S SK+r+S S	K,J-r-  S S
K.J/r/  S SK0r0S SK0J1r1J2r2J3r3J4r4J5r5  S SK6J7r7J8r8  S SK9J:r:  S SK;J<r<  S SK=J>r>J?r?  S SK@JArA  S SKBJCrC  S SKDJErEJFrF  S SKGJ1rH  S SKIJJrJJKrK  S SKLJMrM  S SKNJOrOJPrP  S SKQJRrR  S SKSJTrT  S SKUJVrV  S SKWJXrXJYrY  S SKZJ[r[J\r\  S SK]J^r^  S SK_J`r`Jara  S SKbJcrc  S SKdJereJfrf  S S KgJhrhJiriJjrjJkrkJlrlJmrmJnrnJoroJprpJqrqJrrrJsrsJtrtJuruJvrvJwrwJxrxJyryJzrzJ{r{J|r|J}r}J~r~JrJrJrJrJr  S!S"KJr  S!S#KJrJrJr  S!S$KJr  S!S%KJrJr  S!S&KJrJr  S!S'KJrJrJrJrJrJr  S!S(KJr  S!S)KJr  S!S*KJr  S!S+KJrJr  S!S,KJr  S!S-KJr  S!S.KJr  S!S/KJrJr  S!S0KJr  S!S1KJr  S!S2KJr  S!S3KJr  S!S4KJr  S!S5KJr  S!S6KJr  S!S7KJr  S!S8KJrJr  S!S9KJr  S!S:KJrJr  S!S;KJr  S!S<KJr  S!S=KJr  S!S>KJr  S!S?KJr  S!S@KJr  S!SAKJr  S!S5KJr  S!SBKJr  S!SCKJr  S!SDKJr  S!SEKJr  S!SFKJr  S!SGKJr  S!SHKJr  S!SIKJr  S!S5KJr  S!SJKJr  S!S@KJr  S!SKKJr  S!SLKJr  S!SMKJr  S!SNKJr  S!SOKJr  S!SPKJr  S!SQKJr  S!SRKJr  S!SSKJr  S!STKJr  S!SUKGJ Gr   S!SVGKGJGr  S!S5GKJGr  S!SWGKGJGr  S!SXGKGJGr  S!SYGK	GJ
Gr
  S!SZGKGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGr  S!S[GKGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGrGJGr  \+GR<                  " S\5      GrS S]KdGJ Gr   S S^KgGJ!Gr!GJ"Gr"GJ#Gr#GJ$Gr$GJ%Gr%GJ&Gr&GJ'Gr'GJ(Gr(  \" 5       Gr)\" 5       Gr*\" 5       Gr+\" 5       Gr,\" 5       Gr-\" 5       Gr.\" 5       Gr/\" 5       Gr0\" 5       Gr1\" 5       Gr2\" 5       Gr3\" 5       Gr4\" 5       Gr5\" 5       Gr6\" 5       Gr7\" 5       Gr8\" 5       Gr9\" 5       Gr:\" 5       Gr;\" 5       Gr<\" 5       Gr=\" 5       Gr>\" 5       Gr?G\ " 5       Gr@G\" 5       GrA\" 5       GrB\" 5       GrCG\" 5       GrD\" 5       GrE\" 5       GrF\" 5       GrG\" 5       GrH\" 5       GrI\" 5       GrJ\" 5       GrK\" 5       GrL\" 5       GrM\" 5       GrN\" 5       GrO\!G\PG\QG\RG\$G\ 4   GrS " S_ S`5      GrT " Sa Sb5      GrU " Sc Sd5      GrV " Se Sf5      GrW\AGR                  " 5       \2/ SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS4'SgG\PSh\Si\\   Sj\G\P   Sk\\!G\YG\Z4      Sl\G\Y   Sm\G\Y   Sn\G\Z   So\G\[   Sp\G\R   Sq\G\Z   Sr\G\Z   Ss\\G\      St\G\   Su\G\   Sv\G\Y   Sw\G\Y   Sx\G\R   Sy\G\P   Sz\\!G\R\ \-   4      S{\G\Z   S|\\   S}\\!G\PG\R4      S~\G\[   S\G\[   S\G\Z   S\\S      S\\S      S\G\P   S\G\P   S\G\P   S\G\P   S\G\P   S\G\\   S\G\R   S\G\
   S\G\   S\S   S\!G\$\h4   4NS jj5       5       Gr]S Gr^ SS\!G\PG\Q4   SgG\PS\G\P   4S jjGr_S\G\[   Sk\\!G\YG\P\)GR                  4      SgG\P4S jGraS\G\[   Sk\\!G\YG\P\)GR                  4      SgG\P4S jGrbSk\!G\YG\P\)GR                  4   4S jGrcSk\!G\YG\P\)GR                  4   4S jGrd        SSgG\PSh\So\G\[   Sn\G\Z   S\G\S   S\\   S\G\[   Sk\\!G\YG\P\)GR                  4      4S jjGreSgG\PSG\PS\G\RG\P4   4S jGrf\AGR                  " 5       \2/ SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS4'SgG\PSh\Sk\\!G\YG\P\)GR                  4      Sl\G\Y   Sm\G\Y   Sn\G\Z   So\G\[   Sp\G\R   Sr\G\Z   Sq\G\Z   Ss\\G\      St\G\   Su\G\   Sv\G\Y   Sw\G\Y   Sx\G\R   Sy\G\P   S\\S      S\\S      Sz\\!G\R\ \-   4      S{\G\Z   S|\\   S}\\!G\PG\R4      S\G\[   S\G\Z   S~\G\[   S\G\   S\G\R   S\G\P   S\G\P   Si\\   Sj\G\P   S\G\P   S\G\P   S\G\P   S\G\\   S\G\
   S\S   S\!G\$\h4   4NS jj5       5       rS GrgS Grh\2SG\"4S j5       Gri\// SSSSSSSSSSSS4S\G\Z   S\G\P   S\G\P   S\G\P   S\G\P   S\G\P   SG\[Sy\G\P   S\S   S\\\G\"4   4S jj5       Grj\// SSSSSSSSSSSS4SS.S\G\Z   S\G\P   S\G\P   S\G\P   S\G\P   S\G\P   SG\[Sy\G\P   S\S   SG\"4S jjj5       Grj\2/ SSSSSSSSSSSS4S\G\Z   S\G\P   S\G\P   S\G\P   S\G\P   S\G\P   SG\[Sy\G\P   S\!G\"\\\G\"4   4   4S jj5       Grj\2S\!G\&G\'4   4S j5       Grk\2                     SS\!G\P\\!G\P\\!G\P\G\Z   4      4      4   Sg\G\P   S\G\Z   S\G\[   Sw\G\Y   Sx\\G\ZG\Z4      S\G\Z   Sq\G\Z   Sn\G\Z   Sv\G\Y   S\\!G\P\G\P   4      So\G\[   Sp\G\R   S\G\P   Sl\G\Y   Sm\G\Y   Sy\G\P   S\G\P   S\G\P   S\G\P   S\G\\   S\G\P   4,S jj5       GrlSG\PS\\!\-G\4      4S jGrmS\!\G\P\4   \G\n   4   4S jGroSG\PS\\!\-G\4      4S jGrp SSG\PSg\G\P   S\G\P   SG\4S jjGrq\2   SSG\PSg\G\P   S\G\P   S\G\P   SG\4
S jj5       Grr\2SG\(4S j5       Grs\2            SSgG\PSG\S\G\P   S\G\P   Sz\\S      S\\\S         Sl\G\Z   Sy\G\P   S\G\P   S\G\P   S\G\P   S\G\Z   S\!G\(\\\G\(4   4   4S jj5       Grt\2SG\4S j5       Gru\2                SSgG\PSG\PS\\!G\PG\R4      S\G\P   S\G\P   S\G\P   S\G\P   S\G\P   S\G\Z   S\G\R   Sk\\!G\Y\)GR                  4      Sz\G\P   S\G\Z   S\G\P   S\G\R   S\G\P   S\G\[   SG\4$S jj5       Grv   SSG\RS\\S      S\G\P   S\\   4S jjGrwS GrxS Gry SSG\\Sh\\   SG\&4S jjGrz    SSG\\Sh\G\\   S\\1   S\\!G\$G\&4      4S jjGr{g)    N)futures)FIRST_COMPLETEDThreadPoolExecutorwait)deepcopy)partial)TYPE_CHECKINGAnyAsyncIteratorCallable	CoroutineDictListLiteralMappingOptionalTupleTypeUnioncastget_args)uuid)ClientSession)	BaseModel)overload)Loggingclientexception_typeget_litellm_paramsget_optional_params),DEFAULT_MOCK_RESPONSE_COMPLETION_TOKEN_COUNT(DEFAULT_MOCK_RESPONSE_PROMPT_TOKEN_COUNT)LiteLLMUnknownProvider)CustomLogger)calculate_request_durationget_audio_file_for_health_check)tracer)ProviderSpecificHeaderUtils)_create_health_check_response_filter_model_params)r   )mock_embeddingmock_image_generation)get_content_from_model_response)
BaseConfigBaseImageGenerationConfig)#convert_model_response_to_streaming)BedrockModelInfo)CohereModelInfo)AsyncHTTPHandlerHTTPHandler)VertexAIModelRouteget_vertex_ai_model_route)_realtime_health_check)get_secret_boolget_secret_str)GenericLiteLLMParams)RawRequestTypedDictStreamingChoices)CustomStreamWrapperProviderConfigManagerUsage_get_model_info_helperadd_openai_metadata/add_provider_specific_params_to_optional_params#async_mock_completion_streaming_obj convert_to_model_response_objectcreate_pretrained_tokenizercreate_tokenizerget_api_keyget_llm_provider!get_non_default_completion_params$get_non_default_transcription_paramsget_optional_params_embeddingsget_optional_params_image_gen!get_optional_params_transcription
get_secretget_standard_openai_paramsmock_completion_streaming_objpre_process_non_default_paramsread_config_argsshould_run_mock_completionsupports_httpx_timeouttoken_counter validate_and_fix_openai_messagesvalidate_and_fix_openai_tools$validate_chat_completion_tool_choice   )verbose_logger)disable_cacheenable_cacheupdate_cache)safe_deep_copy)async_completion_with_fallbackscompletion_with_fallbacks)get_completion_messages#update_messages_with_model_file_ids)custom_promptfunction_call_promptmap_system_message_pt	ollama_ptprompt_factory stringify_json_tool_call_content)ChunkProcessor)AnthropicChatCompletion)AzureAudioTranscription)AzureChatCompletion_check_dynamic_azure_params)AzureOpenAIO1ChatCompletion)AzureTextCompletion)AzureAIEmbedding)BedrockConverseLLM
BedrockLLM)BedrockEmbedding)BedrockImageGeneration)BytezChatConfig)ClarifaiConfig)CodestralTextCompletion)handler)BaseLLMAIOHTTPHandler)BaseLLMHTTPHandler)	CustomLLMcustom_chat_llm_router)DatabricksEmbeddingHandler)aleph_alphapalm)get_api_key_from_env)GroqChatCompletion)HerokuChatConfig)HuggingFaceEmbedding)LemonadeChatConfig)
completion)OCIChatConfig)	oobabooga)OpenAITextCompletion)OpenAIImageVariationsHandler)OpenAIChatCompletion)OpenAIAudioTranscription)OpenAILikeChatHandler)OpenAILikeEmbeddingHandler)OVHCloudChatConfig)PredibaseChatCompletion)SagemakerChatHandler)SagemakerLLM)vertex_ai_non_gemini)	VertexLLM)GoogleBatchEmbeddings)VertexImageGeneration)VertexMultimodalEmbedding)VertexTextToSpeechAPI)VertexAIPartnerModels)VertexEmbedding)VertexAIGemmaModels)VertexAIModelGardenModels)WatsonXChatHandler)IBMWatsonXMixin)AnthropicThinkingParam)ChatCompletionAssistantMessageChatCompletionAudioParamChatCompletionModality$ChatCompletionPredictionContentParamChatCompletionUserMessageHttpxBinaryResponseContentOpenAIModerationResponseOpenAIWebSearchOptions)	AdapterCompletionStreamWrapperChatCompletionMessageToolCallCompletionTokensDetails	FileTypesHiddenParamsLlmProvidersPromptTokensDetailsProviderSpecificHeaderall_litellm_paramscl100k_base)ModelResponseStream)ChoicesEmbeddingResponseMessageModelResponseTextChoicesTextCompletionResponseTextCompletionStreamWrapperTranscriptionResponsec                       \ rS rSrSSSS\R
                  SS.S\\   S\\   S\\   S\\	   S	\\
\\4      4
S
 jjrSrg)LiteLLMi%  NX  )api_keyorganizationbase_urltimeoutmax_retriesdefault_headersr   r   r   r   r   c                T    [        5       U l        [        U R                  S S9U l        g )N
router_obj)localsparamsChatchat)selfr   r   r   r   r   r   s          f/var/www/eduai.edurigo.com/storigo/production/storigo_env/lib/python3.13/site-packages/litellm/main.py__init__LiteLLM.__init__'  s     h6	    )r   r   )__name__
__module____qualname____firstlineno__litellmnum_retriesr   strfloatintr   r   __static_attributes__ r   r   r   r   %  sv    
 &*"&#&%,%8%87;7 sm	7
 3-7 %7 c]7 "'#s("347 7r   r   c                   (    \ rS rSrS\\   4S jrSrg)r   i5  r   c                     Xl         U R                   R                  SS5      SL a5  U R                   R                  S5        [        U R                   US9U l        g [        U R                   US9U l        g )NacompletionFTr   )r   getpopAsyncCompletionscompletionsCompletionsr   r   r   s      r   r   Chat.__init__6  sZ    ;;??=%0D8KKOOM*EU
FD  +4;;:NDr   )r   r   N)r   r   r   r   r   r
   r   r   r   r   r   r   r   5  s    O8C= Or   r   c                   2    \ rS rSrS\\   4S jrSS jrSrg)r   iA  r   c                     Xl         X l        g Nr   r   r   s      r   r   Completions.__init__B      $r   Nc                 8   UR                  5        H  u  pEXPR                  U'   M     U=(       d    U R                  R                  S5      nU R                  b*  U R                  R                  " SX!S.U R                  D6nU$ [	        SX!S.U R                  D6nU$ Nmodelr   messagesr   )itemsr   r   r   r   r   r   r   kwargskvresponses          r   createCompletions.createF  s    LLNDAKKN #11??&11 26++H
  "PPDKKPHr   r   r   	r   r   r   r   r   r
   r   r   r   r   r   r   r   r   A      %8C= %
r   r   c                   2    \ rS rSrS\\   4S jrSS jrSrg)r   iS  r   c                     Xl         X l        g r   r   r   s      r   r   AsyncCompletions.__init__T  r   r   Nc                 h  #    UR                  5        H  u  pEXPR                  U'   M     U=(       d    U R                  R                  S5      nU R                  b2  U R                  R                  " SX!S.U R                  D6I S h  vN nU$ [	        SX!S.U R                  D6I S h  vN nU$  N' N7fr   )r   r   r   r   r   r   s          r   r   AsyncCompletions.createX  s     LLNDAKKN #11??&!__88 26++ H
  )WuW4;;WWH Xs$   BB2B. B2'B0(B20B2r   r   r   r   r   r   r   r   S  r   r   r   r   r   	functionsfunction_callr   temperaturetop_pnstreamstream_options
max_tokensmax_completion_tokens
modalities
predictionaudiopresence_penaltyfrequency_penalty
logit_biasuserresponse_formatseedtoolstool_choiceparallel_tool_callslogprobstop_logprobsreasoning_effort)noneminimallowmediumhighdefault	verbosity)r  r  r  safety_identifierservice_tierr   api_versionr   
model_listextra_headersthinkingweb_search_optionsshared_sessionr   returnc(                   #    U(R                  SS5      n)U(R                  SS5      n*U*SL a  [        U*X@5      I Sh  vN   [        R                  " 5       n+U(R                  SS5      n,U(R                  SS5      n-[	        U-[
        5      (       a  U-R                  U(R                  SS5      U(US9(       av  U-R                  U UU(U(R                  SS5      U(R                  S	S5      UU(R                  S
S5      U(R                  SS5      S9I Sh  vN u  n nn.Ub  [        U5      S:X  a  SnU'b$  [        R                  " S[        U'5       S35        O[        R                  " S5        0 SU _SU_SU_SU_SU_SU_SU_SU_SU_SU	_SU
_SU_SU_SU_SU_S U_S!U_0 S"U_S#U_S$U_S%U_S&U_S'U_S(U_S)U_S*U_S+U_S,U_S-U _S.U!_S/U"_S0U#_S1U_S2U_EUU$SU%U&U'S3.En/U,c   [        U U,U/R                  S-S5      S49u  n.n,  n.U)=(       d    [        R                  n)U)b+  [        SA0 U/DS5SU)0U(E0D6I Sh  vN n0U0c  [!        S65      eU0$ U(R                  S75      n1U(R                  S85      n2U(R                  S95      n3U(R                  S5      n*U1(       a.  [#        U2U3U*S:9(       a  [        R$                  " U15      I Sh  vN    ['        [(        40 U/DU(D6n4[*        R,                  " 5       n5['        U5R.                  U45      n6U+R1                  SU65      I Sh  vN n7[	        U7[2        5      (       d  [	        U7[4        5      (       a#  [	        U7[2        5      (       a  [5        SA0 U7D6n0U7n0O([        R6                  " U75      (       a  U7I Sh  vN n0OU7n0U,S;:X  d  U,S<:X  aK  [	        U0[8        5      (       a6  [        R:                  " 5       R=                  U0[        R4                  " 5       S=9n0[	        U0[>        5      (       a  U0RA                  U+S>9  U0$  GN GN GN GNX GN N! [          a  n8U,=(       d    S?n,[C        U U,U8U/U(S@9eSn8A8ff = f7f)Ba  
Asynchronously executes a litellm.completion() call for any of litellm supported llms (example gpt-4, gpt-3.5-turbo, claude-2, command-nightly)

Parameters:
    model (str): The name of the language model to use for text completion. see all supported LLMs: https://docs.litellm.ai/docs/providers/
    messages (List): A list of message objects representing the conversation context (default is an empty list).

    OPTIONAL PARAMS
    functions (List, optional): A list of functions to apply to the conversation messages (default is an empty list).
    function_call (str, optional): The name of the function to call within the conversation (default is an empty string).
    temperature (float, optional): The temperature parameter for controlling the randomness of the output (default is 1.0).
    top_p (float, optional): The top-p parameter for nucleus sampling (default is 1.0).
    n (int, optional): The number of completions to generate (default is 1).
    stream (bool, optional): If True, return a streaming response (default is False).
    stream_options (dict, optional): A dictionary containing options for the streaming response. Only use this if stream is True.
    stop(string/list, optional): - Up to 4 sequences where the LLM API will stop generating further tokens.
    max_tokens (integer, optional): The maximum number of tokens in the generated completion (default is infinity).
    max_completion_tokens (integer, optional): An upper bound for the number of tokens that can be generated for a completion, including visible output tokens and reasoning tokens.
    modalities (List[ChatCompletionModality], optional): Output types that you would like the model to generate for this request. You can use `["text", "audio"]`
    prediction (ChatCompletionPredictionContentParam, optional): Configuration for a Predicted Output, which can greatly improve response times when large parts of the model response are known ahead of time. This is most common when you are regenerating a file with only minor changes to most of the content.
    audio (ChatCompletionAudioParam, optional): Parameters for audio output. Required when audio output is requested with modalities: ["audio"]
    presence_penalty (float, optional): It is used to penalize new tokens based on their existence in the text so far.
    frequency_penalty: It is used to penalize new tokens based on their frequency in the text so far.
    logit_bias (dict, optional): Used to modify the probability of specific tokens appearing in the completion.
    user (str, optional):  A unique identifier representing your end-user. This can help the LLM provider to monitor and detect abuse.
    metadata (dict, optional): Pass in additional metadata to tag your completion calls - eg. prompt version, details, etc.
    api_base (str, optional): Base URL for the API (default is None).
    api_version (str, optional): API version (default is None).
    api_key (str, optional): API key (default is None).
    model_list (list, optional): List of api base, version, keys
    timeout (float, optional): The maximum execution time in seconds for the completion request.

    LITELLM Specific Params
    mock_response (str, optional): If provided, return a mock completion response for testing or debugging purposes (default is None).
    custom_llm_provider (str, optional): Used for Non-OpenAI LLMs, Example usage for bedrock, set model="amazon.titan-tg1-large" and custom_llm_provider="bedrock"
Returns:
    ModelResponse: A response object containing the generated completion and associated metadata.

Notes:
    - This function is an asynchronous version of the `completion` function.
    - The `completion` function is called using `run_in_executor` to execute synchronously in the event loop.
    - If `stream` is True, the function returns an async generator that yields completion lines.
	fallbacksNmock_timeoutTcustom_llm_providerlitellm_logging_obj	prompt_id)r+  non_default_paramsr  prompt_variablesprompt_labelprompt_version)r   r   r,  r+  r-  r  r.  r/  r   uA   🔄 SHARED SESSION: acompletion called with shared_session (ID: )uA   🔄 NO SHARED SESSION: acompletion called without shared_sessionr   r   r   r   r   r   r  r  r  r  stopr  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  deployment_idr   r  r   r   r  r  )r  r!  r   r"  r#  r$  r   r)  api_baser   z]No response from fallbacks. Got none. Turn on `litellm.set_verbose=True` to see more details.
mock_delaymock_responsemock_tool_calls)r6  r7  r(  text-completion-openaitext-completion-codestralresponse_objectmodel_response_object)loopopenair   r)  original_exceptioncompletion_kwargsextra_kwargsr   )"r   _handle_mock_timeout_asyncasyncioget_event_loop
isinstanceLiteLLMLoggingObj"should_run_prompt_management_hooks async_get_chat_completion_promptlenrZ   debugidrH   r   model_fallbacksr_   	ExceptionrS   sleepr   r   contextvarscopy_contextrunrun_in_executordictr   iscoroutiner   OpenAITextCompletionConfig%convert_to_chat_model_response_objectr=   set_logging_event_loopr   )9r   r   r   r   r   r   r  r  r  r  r1  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r2  r  r  r  r  r   r  r   r   r!  r"  r#  r$  r   r'  r(  r=  r)  r*  _rA  r   r5  r6  r7  funcctxfunc_with_contextinit_responsees9                                                            r   r   r   e  s    ~ 

;-I::nd3Lt(wFFF!!#D **%:DA
 !**%:DA%'899>>jjd3% 	? 	
 &FF%jjd3#ZZ(:DAND9!::&6= G 	
 	
		
$ UqE !OPRSaPbOccde	
 	O	

))H) 	Y) 		)
 	7) 	{) 	) 	Q) 	&) 	.) 	) 	j) 	 !6) 	j) 	j)  	!)" 	,#)$ 	.%)& 	j')( 	))* 	?+), 	-). 	/)0 	{1)2 	23)4 	H5)6 	7)8 	9): 	H;)< 	{=)> 	7?)@ 	jA)B 	,C)D 	.E)F %&0(Q)T "'7 3&**:t<(
$1 4W44I8 

)4i(J6(J
 
 o   L)JJJ/Mjj!23O::n-L0#'!
 mmJ''')
zA%6A&A &&(#CGGT2"2249JKKmT**j=/
 /
 -..(9=9$H  //**H$H  #;;"&AA#9::99;aa (&-&;&;&= b H h 344++ ,   	G(	
j
( 	( L +"  
1=X 3 /
 	

s   9QPCQP
D!Q/P0BQ8P9Q>AP PA1P PBP Q
QQQP P 
P?"P::P??Qc                  #     [        SU  35        [        R                  " U 5      (       a
  U I S h  vN n U   S h  vN n[        SU 35        U7v   M   N$ N
 g ! [         a  nU=(       d    Sn[	        UUUS9eS nAff = f7f)Nz'received response in _async_streaming: zline in async streaming: r>  )r   r)  r@  )print_verboserD  rU  rN  r   )r   r   r)  argsliner^  s         r   _async_streamingrc  s  s     
?zJKx((%~H" 	$5dV<=J &	(  
1=X 3 
 	

sS   B.A AA AAAA AA B
B'A==BBr6  r)  c                 x   [        U [        5      (       a  [        U [        R                  5      (       a  U e[        R
                  " [        U SS5      [        U S[        U 5      5      [        U SU=(       d    S5      U[        R                  " SSS9S	9e[        U [        5      (       a0  U S
:X  a*  [        R                  " S[        U SU=(       d    S5      US9e[        U [        5      (       a0  U S:X  a*  [        R                  " S[        U SU=(       d    S5      US9e[        U [        5      (       a0  U S:X  a*  [        R                  " S[        U SU=(       d    S5      US9e[        U [        5      (       aB  U R                  S5      (       a+  [        R
                  " SU SU[        R                  " SSS9S	9eg g )Nstatus_code  textllm_providerr>  POSTzhttps://api.openai.com/v1/)methodurl)re  messagerh  r   requestzlitellm.RateLimitErrorzthis is a mock rate limit errorrl  rh  r   z"litellm.ContextWindowExceededErrorz,this is a mock context window exceeded errorzlitellm.InternalServerErrorz$this is a mock internal server errorz Exception: content_filter_policyi  azure)rF  rN  r>  APIErrorr   MockExceptiongetattrr   httpxRequestRateLimitErrorContextWindowExceededErrorInternalServerError
startswithr6  r   r)  s      r   !_handle_mock_potential_exceptionsrz    s   
 -++mV__55##}cBM63}3EF ~/B/Nh MM5QR
 	
 
M3	'	'M=U,U$$5 ~/B/Nh 
 	
 	=#&&AA00B ~/B/Nh 
 	
 	=#&&::)): ~/B/Nh 
 	
 
M3	'	'M,D,D*- - ##! MM5QR
 	
-	'r   r(  c                 X    U SL a%  Ub!  [        U5        [        R                  " SSUS9eg g NTzThis is a mock timeout errorr>  rn  )_sleep_for_timeoutr   Timeoutr(  r   r   s      r   _handle_mock_timeoutr    s;    
 t 37#oo2!
 	
 !4r   c                 t   #    U SL a-  Ub)  [        U5      I S h  vN   [        R                  " SSUS9eg g  N7fr|  )_sleep_for_timeout_asyncr   r~  r  s      r   rC  rC    sG     
 t 3&w///oo2!
 	
 !4/s   868c                 b   [        U [        5      (       a  [        R                  " U 5        g [        U [        5      (       a   [        R                  " [        U 5      5        g [        U [
        R                  5      (       a/  U R                  b!  [        R                  " U R                  5        g g g r   )rF  r   timerO  r   rs  r~  connectr   s    r   r}  r}    sk    '5!!

7	GS	!	!

5>"	GU]]	+	+0K

7??# 1L	+r   c                   #    [        U [        5      (       a  [        R                  " U 5      I S h  vN   g [        U [        5      (       a(  [        R                  " [        U 5      5      I S h  vN   g [        U [
        R                  5      (       a7  U R                  b)  [        R                  " U R                  5      I S h  vN   g g g  N N^ N7fr   )rF  r   rD  rO  r   rs  r~  r  r  s    r   r  r    s     '5!!mmG$$$	GS	!	!mmE'N+++	GU]]	+	+0KmmGOO,,, 1L	+ 	%+,s4   /CC<C.C/ACCCCCFr7  c
           
      <    U
R                  S5      =(       d    SnUc  Sn[        XiU S9  Ub  UR                  USS9  [        U[        5      (       d  [        U[
        5      (       a  [        UU US9  [        [        [        [        [        [        4   U5      n[        U[        5      (       a-  UR                  S	5      (       a  [        R                  " S
SU SS9nU
R                  SS5      nUb  U(       d  [        R                   " U5        [        U[        5      (       a  [        S0 UD6$ [        U[        5      (       a  U(       d  U$ [#        U5      n[        5       nUSL aG  [        5       nU
R                  SS5      SL a  [%        ['        XXS9U SUS9$ [%        [)        XXS9U SUS9$ [        U[        R                  5      (       a  Ue[        [        U5      nUc  XMR*                  S   R,                  l        Oe/ n[1        U5       HN  n[        R2                  R5                  U[        R2                  R7                  USS9S9nUR9                  U5        MP     Xl        [;        [        R                  " 5       5      Ul        Xl        U(       a8  U Vs/ s H  n[A        S0 UD6PM     snUR*                  S   R,                  l!        [E        US[G        [H        [J        [H        [J        -   S95         [        R2                  RM                  U S9u  nn  nXRN                  S'   Ub  URQ                  USSS9  U$ s  snf ! [
         a     N'f = f! [
         a@  n[        U[R        RT                  5      (       a  Ue[        SRW                  U5      5      eSnAff = f) a  
Generate a mock completion response for testing or debugging purposes.

This is a helper function that simulates the response structure of the OpenAI completion API.

Parameters:
    model (str): The name of the language model for which the mock response is generated.
    messages (List): A list of message objects representing the conversation context.
    stream (bool, optional): If True, returns a mock streaming response (default is False).
    mock_response (str, optional): The content of the mock response (default is "This is a mock request").
    mock_timeout (bool, optional): If True, the mock response will be a timeout error (default is False).
    timeout (float, optional): The timeout value to use for the mock response (default is None).
    **kwargs: Additional keyword arguments that can be used but are not required.

Returns:
    litellm.ModelResponse: A ModelResponse simulating a completion response with the specified model, messages, and mock response.

Raises:
    Exception: If an error occurs during the generation of the mock completion response.
Note:
    - This function is intended for testing or debugging purposes to generate mock completion responses.
    - If 'stream' is True, it returns a response that mimics the behavior of a streaming completion.
r   FNThis is a mock requestr  zmock-key)inputr   ry  zException: mock_streaming_errorz&This is a mock error raised mid-stream	anthropici  )rl  rh  r   re  r5  T)r6  r   r  r>  completion_streamr   r)  logging_objr   	assistant)contentrole)indexrl  usageprompt_tokenscompletion_tokenstotal_tokensr   r)  zmy-secret-keyzmy-original-responser  r   original_responsez$Mock completion response failed - {}r   ),r   r  pre_callrF  r   rN  rz  r   r   rT  r   r   rx  r   rq  r  rO  r0   r=   rC   rP   choicesrl  r  rangeutilsr   r   appendr   createdr   r   
tool_callssetattrr?   r"   r!   rH   _hidden_params	post_callr>  rp  format)r   r   r  r  r6  r7  r(  loggingr)  r   r   is_acompletion
time_delaymodel_response_all_choicesi_choice	tool_callrY  r^  s                       r   mock_completionr    s   H{JM2;e 4M,uU "  
 mS))Zy-Q-Q-+$7 #t],??@-
 mS))m.F.F-/
 /
 $11@(	M ZZd3
!.JJz"mT** 1=11m]33$$?NMDQOT>02Nzz-/47*&I&5'  (0 '  '"?"u# $,#  mW%:%:;;S-098E""1%--5L1X!--//#MM11 -K 2  0  ##G,  &2"!$TYY[!1$ "1<!0I .:	:!0<N""1%--8
 	F"NE>?		
	+2==+I+IPU+I+V(A"AqCV))*?@
 '"8  
 ;<&  		  Ja))G>EEaHIIJsi   D+M .M AM M -C+M L<-AM 60M &M <M 
MM MM 
N;NNc                    0 n [        [        [        XS95      nUR                  S5      c.  U R	                  S5      (       a  U R                  SS5      n SnX2S'   X 4$ ! [         a_  n[        R                  " SR                  U5      5        U R	                  S5      (       a  U R                  SS5      n SnX2S'    S nAX 4$ S nAff = f)Nr   r)  modez
responses/ 	responseszError getting model info: {})
r   rT  r@   r   rx  replacerN  rZ   rK  r  )r   r)  
model_infor  r^  s        r   responses_api_bridge_checkr    s     "$J&"

 >>&!)e.>.>|.L.LMM,3ED!%v   &;BB1EF
 
 MM,3ED!%v&s   AA 
C(ACCc(                 w   U c  [        S5      e[        US9n[        US9n[        US9n[	        5       n)U(R                  SS5      n*U(R                  SS5      n+U(R                  SS5      n,[        [        [           U(R                  S	S5      5      n-U(R                  S
S5      n.U(R                  SS5      n/U(R                  SS5      n0U(R                  SS5      n1U(R                  SS5      n2U(R                  SS5      n3U(R                  SS5      n4U(R                  SS5      n5U(R                  SS5      n6U(R                  SS5      n7[        [        [           U(R                  SS5      5      n8U(R                  SS5      =(       d    Un9U(R                  SS5      n:U(R                  SS5      n;U(R                  SS5      n<U9c  0 n9Ub  U9R                  U5        U(R                  SS5      n=U(R                  SS5      n>U(R                  SS5      n?U(R                  SS5      n@U(R                  SS5      nAU(R                  S S5      nBU(R                  S!S5      nCU(R                  S"S5      nDU(R                  S#S5      nEU(R                  S$S5      nFU(R                  S%S5      nGU(R                  S&S5      nHU(R                  S'S5      nIU(R                  S(S5      nJU(R                  S)S5      nKU(R                  S*S5      nLU(R                  S+S5      nMU(R                  S,S5      nNU(R                  S-S5      nOU(R                  S.S5      nPU(R                  S/S5      nQU(R                  S0S5      nRU(R                  S1S5      nSU(R                  S2S5      nTU(R                  S3S5      nU[        [        [           U(R                  S4S5      5      nV[        [        [           U(R                  S5S5      5      nW[        UU:=(       d    SU;U<S69n[        U(S79nX0 nY[        U2[         5      (       aN  U2R#                  WVWXS89(       a9  U2R%                  U UWXWVWWU(R                  S9S5      U(R                  S:S5      S;9u  n nnZ U"b  U"n*U=b  U=n>[        [&        U25      n[U7=(       d    [(        R*                  n7U7b  [-        GS0 U)D6$ U%b9  U% V\s/ s H  n\U\S<   U :X  d  M  W\S=   PM     n]n\[(        R.                  " GSS>U]0U)D6$ [(        R0                  (       a'  U [(        R0                  ;   a  [(        R0                  U    n [3        5       n^[5        U^S?[(        R6                  " 5       5        U(R                  S@S5      SAL a  S@n1Ub  Un S@n1[9        U U1U*U$SB9u  n n1n_n*U8b$  U9R                  [:        R<                  " U8U1SC95        W^b?  [?        W^SD5      (       a.  U1W^R@                  S'   U(R                  SES5      U^R@                  SF'   U=(       d    U(R                  SGS5      =(       d    Sn[        U[B        RD                  5      (       a&  [G        U15      (       d  URH                  =(       d    SnO*[        U[B        RD                  5      (       d  [K        U5      nWCb%  WDb"  [(        RL                  " U1 SHU  3WCWDU1SI.05        O&WEb#  WFnF[(        RL                  " U1 SHU  3WEUFU1SJ.05        0 n`WG(       d  WH(       d  WI(       d  WJ(       d  WK(       aO  U 0 0n`WG(       a  WGW`U    S%'   WH(       a  WHW`U    S&'   WI(       a  WIW`U    S''   WJ(       a  WJW`U    S('   WK(       a  WKW`U    S)'   U(R                  SK5      (       ab  [O        UU(R                  S0 5      R                  SS5      [        [P        [        [P        [        [        4   4   U(R                  SK5      5      SL9nSnaU1bC  U1[R         Vbs/ s H  nbUbRT                  PM     snb;   a  [V        RX                  " U [S        U15      SM9naWab  WaR[                  US9nWNb#  [        WN[        5      (       a  WNSL a	  []        US9nW_b  W_n$0 SNU _SOU!_SPU_SQU_SRU_SSU_STU_SUU_SVU
_SWU	_SXU_SYU_SZU_S[U_S\U_S]U_S^U_0 S_U _SU1_S`U_SaU_SbU_ScU_SU>_SdU_SeU_SfU#_SgU_ShU_SiU_SjU&_SkU_SlU_SmU_ESnU(R                  Sn5      0Enc[_        GS0 UcDWXD6nZ[a        U UcUXU1U(R                  So5      SASAWaSp9nd[(        Rb                  (       a2  WZR                  SqS5      (       a  WZRe                  Sq5      ne[g        UUeSr9n[i        GS0 S1WS_SsU$_S
U._SU/_SU0_SU1_SU*_StU(R                  StS5      _Su[(        R0                  _SvU3_SU4_SU5_SU6_S*WL_SwWU_S#WE_S!WC_S$WF_S"WD_SU?_S/U(R                  S/5      _SxU(R                  Sx5      _SU(R                  S5      _S-WO_SyU(R                  Sy5      _SzU(R                  Sz5      _S+WM_S{W`_S|U(R                  S|5      _S.WP_S}U(R                  S}5      _S4WV_S5WW_S WB_S~U(R                  S~S5      _SU(R                  SS5      _SfU#_SU(R                  S5      _SU(R                  S5      _SU(R                  S5      _SU(R                  S5      _SU(R                  S5      _SU(R                  S5      _SU(R                  S5      _SU>_SU_SU(R                  SS5      _6nY[        [         W[5      Rk                  U UWdUYU1S9  U+(       d  U,(       d  U-(       a6  U(Re                  S	S5        [m        U UUUU+U,W[WSU(R                  SS5      U1U-US9$ [o        U U1S9u  n5n U5R                  S5      S:X  a'  SSK8J9nf  UfRu                  U UU9W^U$U*WSW[WZWYUWTU1[v        US9$ U1S@:X  Ga  SngWTbJ  [        WT[x        Rz                  5      (       d  [        WT[x        R|                  5      (       a  [        SfU#0WTS9ng[        S5      =(       d    S@nhU*=(       d"    [(        R                  =(       d    [        S5      n*U#=(       d9    [(        R                  =(       d"    [        S5      =(       d    [(        R                  n#U$=(       dK    [(        R                  =(       d4    [(        R                  =(       d    [        S5      =(       d    [        S5      n$WZR                  S0 5      Re                  SS5      =(       d    [        S5      niWYR                  SxS5      njU9=(       d    [(        R                  n9Ub  UWZS'   U>b  U>WZS'   [(        R                  " 5       R                  U S9(       an  [(        R                  R                  5       nkUkR                  5        H  u  nlnmUlWZ;  d  M  WmWZWl'   M     [        Ru                  U UU9U$U*U#WgWiW^[        WZWYU/W[WSUWTU1S9nnOn[(        R                  R                  5       nkUkR                  5        H  u  nlnmUlWZ;  d  M  WmWZWl'   M     [        Ru                  U UU9U$U*U#WhWgWiWjW^[        WZWYU/W[WSUWTS9nnWZR                  SSS5      (       a  W[R                  UU$WnU9U#U*S.S9  Wn$ U1S:X  Ga  [        S5      =(       d    S@nhU*=(       d"    [(        R                  =(       d    [        S5      n*U*c  [        S5      eU#=(       d"    [(        R                  =(       d    [        S5      n#U$=(       dK    [(        R                  =(       d4    [(        R                  =(       d    [        S5      =(       d    [        S5      n$WZR                  S0 5      Re                  SS5      =(       d    [        S5      niWYR                  SxS5      njU9=(       d    [(        R                  n9Ub  UWZS'   [(        R                  R                  5       nkUkR                  5        H  u  nlnmUlWZ;  d  M  WmWZWl'   M     [        Ru                  U UU9U$U*[        [        U#5      WhWiWjW^[        WZWYU/W[WSUWTS9nnUZR                  SSS5      (       d  WSSAL a  W[R                  UU$WnU9U#U*S.S9  Wn$ U1S:X  a*   [        Ru                  U UU9W^U$U*WSW[WZWYU'UWTU1[v        UWaS9nnUn$ U1S:X  a  SSKTJUnp  UpR                  U*5      n*UpR                  U$5      n$U9=(       d    [(        R                  n9Ub  UWZS'   SU ;   a	  [        US9n [        Ru                  U UU9W^U$U*WSW[WZWYU'UWTU1[v        US9nnWZR                  SSS5      (       a  W[R                  UU$WnSU90S9  Wn$ U1S:X  d6  SU ;   d0  SU ;   d*  U1[(        R                  ;   GaB  U(R                  S/5      SAL Ga-  S[x        lZ        U*=(       d=    [(        R                  =(       d&    [        S5      =(       d    [        S5      =(       d    Sn*S[x        lB        U$=(       d9    [(        R                  =(       d"    [(        R                  =(       d    [        S5      n$U9=(       d    [(        R                  n9Ub  UWZS'   [(        R                  R                  5       nkUkR                  5        H  u  nlnmUlWZ;  d  M  WmWZWl'   M     [(        R                  (       a  [(        R                  [x        l]        [        U5      S:  a-  SUS   ;   a$  [        US   S   [        5      (       a	  US   S   nqO%SR                  U Vrs/ s H  nrUrS   PM
     snr5      nq[        Ru                  U UW^[        U$U1U*WSWTW[WZWYU/US9nsUZR                  SSS5      SL a-  WSSL a(  WQSL a#  [(        R                  " 5       R                  WsW^S9nsWZR                  SSS5      (       d  WSSAL a  W[R                  UU$WsSU90S9  WsnnUn$ U1S:X  a*   [        Ru                  U UU9W^U$U*WSW[WZWYU'UWTU1[v        UWaS9nnUn$ U1S:X  a*   [        Ru                  U UU9W^U$U*WSW[WZWYU'UWTU1[v        UWaS9nnUn$ U1S:X  a*   [        Ru                  U UU9W^U$U*WSW[WZWYU'UWTU1[v        UWaS9nnUn$ U1S:X  a  U*=(       d+    [(        R                  =(       d    [        S5      =(       d    Sn*U$=(       d9    [(        R                  =(       d"    [(        R                  =(       d    [        S5      n$U9=(       d    [(        R                  n9[(        R                  R                  5       nkUkR                  5        H  u  nlnmUlWZ;  d  M  WmWZWl'   M     [        Ru                  U UUWSU*W^WZWYU'U1UU9[v        U$W[WTS9nnUn$ U1S:X  a  U*=(       d=    [(        R                  =(       d&    [        S5      =(       d    [        S5      =(       d    Sn*U$=(       d9    [(        R                  =(       d"    [(        R                  =(       d    [        S5      n$U9=(       d    [(        R                  n9Ub  UWZS'   [        Ru                  U UU9W^U$U*WSW[WZWYUWTU1[v        US9nnUn$ U1S:X  a  U$=(       d9    [(        R                  =(       d"    [        S5      =(       d    [(        R                  n$U*=(       d+    [(        R                  =(       d    [        S5      =(       d    Sn*[        Ru                  U UU9W^U$U*WSW[WZWYU'UWTU1[v        UWaS9nnU[R                  UU$UnS9  Un$ U [(        R                  ;   do  U1S:X  di  U1S:X  dc  U1S:X  d]  U1S:X  dW  U1S:X  dQ  U1S:X  dK  U1S:X  dE  U1S:X  d?  U1S:X  d9  U1S:X  d3  U1S:X  d-  U1S:X  d'  U1S:X  d!  U1S:X  d  U1[(        R                  ;   d  SU ;   Ga  U*=(       d=    [(        R                  =(       d&    [        S5      =(       d    [        S5      =(       d    Sn*WA=(       d+    [(        R                  =(       d    [        S5      =(       d    SnAUA[x        l]        U$=(       d9    [(        R                  =(       d"    [(        R                  =(       d    [        S5      n$U9=(       d    [(        R                  n9Ub  UWZS'   [(        R                  (       a  [        U45      ntUtb  WtWZS'   [(        R                  R                  5       nkUkR                  5        H  u  nlnmUlWZ;  d  M  WmWZWl'   M     [        S5      nu Uu(       a(  [        Ru                  U UU*U1W^[v        W[WZUWYU'WSUU$U9WTWaS9nnO)[        Ru                  U UU9W^[        U$U*WSW[WZWYU/UW`WTWAU1U'S9nn WZR                  SSS5      (       a  W[R                  UU$WnSU90S9  Wn$ U1S:X  a  U$=(       d"    [(        R                  =(       d    [        S5      n$U*=(       d+    [(        R                  =(       d    [        S5      =(       d    Sn*[        Ru                  U UU*U1W^[v        W[WZUWYU'WSUU$U9WTWaS9nnUn$ SU ;   d  U1S:X  d  U [(        R                  ;   a  U$=(       dK    [(        R                  =(       d4    [(        R                  =(       d    [        S5      =(       d    [        S5      nvU*=(       d+    [(        R                  =(       d    [        S5      =(       d    Sn*W`=(       d    [(        R                  n`[        U UU*W^[        WZWYU/[v        WvW[U`WSU9S9n^UZR                  SSS5      SAL a  W[R                  UWvW^S9  W^nnUn$ SU ;   d  U1S:X  d  U [(        R                  ;   a   Wn$ U1S:X  Ga*  U$=(       dM    [(        R                  =(       d6    [(        R                  =(       d    [        R                  R                  S5      n$W`=(       d    [(        R                  n`U*=(       d=    [(        R                  =(       d&    [        S5      =(       d    [        S5      =(       d    Sn*[        S5      nwU*b#  Ww(       d  U*R                  S5      (       d  U*S-  n*OWw(       a  [        R                  " S5        [        Ru                  U UUWSU*W^WZWYU'SUU9[v        U$W[S9nnUn$ U1S:X  Gam  U$=(       dM    [(        R                  =(       d6    [(        R                  =(       d    [        R                  R                  S5      n$W`=(       d    [(        R                  n`U*=(       d=    [(        R                  =(       d&    [        S5      =(       d    [        S5      =(       d    Sn*[        S5      nwU*b#  Ww(       d  U*R                  S5      (       d  U*S-  n*OWw(       a  [        R                  " S5        [        Ru                  U UU*WS[(        R                  W^[        WZWYU/[v        U$W[U9UWTU1S9nnUZR                  SSS5      (       d  WSSAL a  W[R                  UU$WnS9  WnnnUn$ U1S:X  a  U$=(       d9    [(        R                  =(       d"    [        S5      =(       d    [(        R                  nxU*=(       d+    [(        R                  =(       d    [        S5      =(       d    Sn*[        U UU*W^[        WZWYU/[v        WxW[S9nnSSUZ;   a  WZSS   SAL a  [        WnU SW[S9nnWZR                  SSS5      (       d  WSSAL a  W[R                  UU$WnS9  WnnnUn$ U1S:X  a  U$=(       dK    [(        R                  =(       d4    [        S5      =(       d"    [        S5      =(       d    [(        R                  nyU*=(       d+    [(        R                  =(       d    [        S5      =(       d    Sn*[        Rt                  " U UU*W^[        WZWYU/[v        [(        R                  WyW[S9n^SSUZ;   a  WZSS   SAL a  [        W^U SW[S9nnUn$ W^nnUn$ U1S:X  d  U1S:X  Ga  U$=(       dL    [(        GR                   =(       d4    [        S5      =(       d"    [        S5      =(       d    [(        R                  nzG[        GR                  " U 5      n{[        R                  " SU{ 35        U{S:X  aR  U*=(       d,    [(        R                  =(       d    [        S5      =(       d    GS n*GSU ;   a  U GR                  GSGS5      n O5U*=(       d,    [(        R                  =(       d    [        S5      =(       d    GSn*U9=(       d    [(        R                  =(       d    0 n9U9c  0 n9Ub  U9R                  U5        [        R                  " GSU  GSU* 35        [        R                  " GSWa 35        [        Ru                  U UUWSU*W^WZWYU'SUU9[v        WzUaW[GS9nnUn$ U1GS:X  a  U$=(       d;    [(        GR                  =(       d#    [        GS	5      =(       d    [(        R                  n|U*=(       d-    [(        R                  =(       d    [        GS
5      =(       d    GSn*G[
        Ru                  U UU*W^[        WZWYU/[v        W|W[GSW`GS9n^U^nnUn$ U1GS:X  a  U$=(       dv    [(        GR                  =(       d^    [        R                  R                  GS5      =(       d7    [        R                  R                  GS5      =(       d    [(        R                  n}U9=(       d    [(        R                  n~[        Ru                  U UU~W^W}U*WSW[WZWYUWTU1[v        US9nnUn$ U1GS:X  a'  [        Ru                  U UU9W^U$U*WSW[WZWYUWTU1[v        US9nnUn$ U1GS:X  aa  U$=(       d#    [        GS5      =(       d    [(        R                  n$U*=(       d    GSn*[        Ru                  U UU9W^U$U*WSW[WZWYUWTU1[v        UWaGS9nnUn$ U1GS:X  aL  GSn1G[        Rt                  " U UW^U*[        WZWYSU/[v        W[GS9n^SSUZ;   a  WZSS   SAL a  [        W^U GSW[S9nnUn$ W^nnUn$ U1GS:X  a  U*=(       d/    [(        R                  =(       d    [        GR                  " GS5      n*U$=(       d;    [(        R                  =(       d$    [(        GR                  =(       d    [        GS5      n$U9=(       d    [(        R                  n9 [        Ru                  U UUWSU*W^WZWYGSUU9[v        U$W[WTGS9nnWZR                  SSS5      (       a  W[R                  UU$WnSU90S9  Wn$ U1GS:X  a)  [        Ru                  U UU9W^U$U*WSW[WZWYUWTU1[v        UWaGS9nnUn$ U1GS:X  Ga  U*=(       d-    [(        R                  =(       d    [        GS5      =(       d    GSn*U$=(       dN    [(        R                  =(       d7    [(        GR                  =(       d    [        GS5      =(       d    [        GS 5      n$[        GS!5      =(       d    GS"n[        GS#5      =(       d    GS$nWUGS%.nU9=(       d    [(        R                  nU(       a  WR                  W5        Wn9[(        GR                  R                  5       nkUkR                  5        H<  u  nlnmUlS:X  a#  SWZ;   a  WZWl   R                  Wm5        M(  WmWZWl'   M/  WlWZ;  d  M7  WmWZWl'   M>     XGS&.WZEn[        Ru                  U UUWSU*W^UZWYU'GSUU9[v        U$W[WTS9nnU[R                  U[x        R                  UnS9  Un$ U1GS':X  Ga  U*=(       d-    [(        R                  =(       d    [        GS(5      =(       d    GS)n*U$=(       d#    [(        R                  =(       d    [        GS*5      n$[        GS+5      =(       d    GS"n[        GS,5      =(       d    GS$nWUGS-.nU9=(       d    [(        R                  nU(       a  WR                  W5        Wn9[(        GR                  R                  5       nkUkR                  5        H<  u  nlnmUlS:X  a#  SWZ;   a  WZWl   R                  Wm5        M(  WmWZWl'   M/  WlWZ;  d  M7  WmWZWl'   M>     XGS&.WZEn[        Ru                  U UUWSU*W^UZWYU'GS'UU9[v        U$W[WTS9nnU[R                  U[x        R                  UnS9  Un$ U1S:X  d  GS.U ;   d  U [(        GR                  ;   a    Wn$ U1GS/:X  a  [        GS05      eU1GS1:X  d  U1GS2:X  Ga  WZRe                  GS3S5      =(       d>    WZRe                  GS4S5      =(       d$    [(        GR                  =(       d    [        GS55      nWZRe                  GS6S5      =(       d>    WZRe                  GS7S5      =(       d$    [(        GR                  =(       d    [        GS85      nWZRe                  GS9S5      =(       d&    WZRe                  GS:S5      =(       d    [        GS;5      nU$=(       d5    G[!        5       =(       d#    [        GS<5      =(       d    [(        R                  nU*=(       d#    [(        R                  =(       d    [        GS=5      n*G[#        WZ=(       d    0 5      nG[$        Ru                  U UW^[        UWYU/[v        WWWWW[WSUU1WTU*U9GS>9nnUn$ U1GS?:X  Ga  WZRe                  GS3S5      =(       d>    WZRe                  GS4S5      =(       d$    [(        GR                  =(       d    [        GS55      nWZRe                  GS6S5      =(       d>    WZRe                  GS7S5      =(       d$    [(        GR                  =(       d    [        GS85      nWZRe                  GS9S5      =(       d&    WZRe                  GS:S5      =(       d    [        GS;5      nU*=(       d#    [(        R                  =(       d    [        GS@5      n*G[#        WZ=(       d    0 5      nG['        U WYGSA9nUG[(        GR*                  :X  a0  G[,        Ru                  U UW^[        WWYU/[v        U*WWWW[WSU9W`UWTGSB9n^GOWG[(        GR.                  :X  a0  G[$        Ru                  U UW^[        WWYU/[v        WWWSW[WSUU1WTU*U9GS>9n^OWG[(        GR0                  :X  a/  G[2        Ru                  U UW^[        WWYU/[v        U*WWWW[WSU9W`UWTGSB9n^OWG[(        GR4                  :X  a/  G[6        Ru                  U UW^[        WWYU/[v        U*WWWW[WSU9W`UWTGSB9n^OLG[8        Rt                  " U UW^[        WWYU/[v        WWWW[WSGSC9n^SSWZ;   a  WZSS   SAL a  WSSL a  [        W^U GS?W[S9nnUn$ W^nnUn$ U1GSD:X  GaM  WZRe                  SS5      =(       d>    WZRe                  GSES5      =(       d$    [(        GR:                  =(       d    [        GSF5      nUc  [        GSG5      eU*=(       dV    WZRe                  SS5      =(       d=    WZRe                  GSHS5      =(       d#    [(        R                  =(       d    [        GSI5      n*U$=(       d;    [(        R                  =(       d$    [(        GR<                  =(       d    [        GSJ5      n$G[>        Ru                  U UW^[        WZWYU/[v        W[WSU*W`U$WUGSK9nSSUZ;   a  WZSS   SAL a  WSSL a  W$ WnnUn$ U1GSL:X  a  U*=(       dM    WZRe                  SS5      =(       d4    WZRe                  GSHS5      =(       d    [(        R                  =(       d    GSMn*U$=(       d#    [(        R                  =(       d    [        GSN5      n$[(        GR@                  " UGSO9nG[B        Ru                  U UU[        WZWYU/[v        W[WSU*W`U$UGSP9nSSUZ;   a  WZSS   SAL a  WSSL a  W$ WnnUn$ U1GSQ:X  a+  [        Ru                  U UUWSU*W^WZWYGSQUU9[v        U$W[WTGS9n^U^nnUn$ U1GSR:X  a,  G[D        Ru                  U UW^[        WZWYW`WMU/[v        W[WSGSS9n^U^nnUn$ U1GST:X  Ga  W`=(       d    [(        R                  n`GSUWZ;   a  [        GRF                  " GSV5        WZRe                  GSU5      nUGRI                  5       GRK                  5       nUGRL                  (       a  WGRL                  WZGSW'   WGRN                  (       a  WGRN                  WZGSX'   WGRP                  (       a  WGRP                  WZGSY'   SEWZ;  d  WZSE   c  WGRR                  GRT                  WZSE'   G[V        GRX                  " U 5      nUGSZ:X  a>  U GR                  GS[GS5      n G[Z        Ru                  U UW`W^WZWYU/[v        W[U9UWSWTU*U$GS\9nnUn$ WGS]:X  a>  U GR                  GS^GS5      n [        Ru                  U UUWSU*W^WZWYGSTUU9[v        U$W[WTGS9nnUn$ [        Ru                  U UUWSU*W^WZWYGSTUU9[v        U$W[WTGS9nn Wn$ U1GS_:X  a0  G[\        Ru                  U UU9W^[        U$U*WSW[WZWYU/UW`WT[v        GS_GS`9nnUn$ U1GSa:X  Ga  U$=(       dL    WZRe                  GSbS5      =(       d2    [        GSc5      =(       d    [        GSd5      =(       d    [        GSe5      n$U*=(       d    WZRe                  GSfUZRe                  SUZRe                  GSHS5      5      5      =(       dE    [        GSg5      =(       d2    [        GSh5      =(       d    [        GSi5      =(       d    [        GSj5      n*WZRe                  GSkUZRe                  GSlS5      5      nSnUbZ  WR                  GSfU*5      n*UR                  GSbUR                  SsU$5      5      n$UR                  GSmUR                  GSnS5      5      nWb  WWZGSm'   [        Ru                  U UUWSU*W^WZWYU'GSaUU9[v        U$W[WTS9nnUn$ U1GSo:X  aa  W`=(       d    [(        R                  n`G[^        Rt                  " U UU`W^[        WZWYU/[v        W[GSp9
n^SSUZ;   a  WZSS   SAL a  [        W^U GSoW[S9nnUn$ W^nnUn$ U1GSq:X  a_  [(        R                  =(       d    U*=(       d    [        GSr5      =(       d    GSsn*[        Ru                  U UUWSU*W^WZWYU'GSqUU9[v        U$W[WTS9nnUn$ U1GSt:X  a  [(        R                  =(       d    U*=(       d    [        GSr5      =(       d    GSsn*U$=(       dO    [(        GR`                  =(       d7    [        R                  R                  GSu5      =(       d    [(        R                  n$[        Ru                  U UUWSU*W^WZWYU'GStUU9[v        U$W[WTS9nnUn$ U1GSv:X  a@  [(        R                  =(       d    U*n*[        Ru                  U UUWSU*W^WZWYU'U1UU9[v        U$W[S9nnUn$ U1GSw:X  a  U$=(       d;    [(        GRb                  =(       d#    [(        R                  =(       d    [        GSx5      n$[        GSy5      nU*=(       d2    [(        R                  =(       d    [        GSz5      =(       d    GS{W GS|3n*W`=(       d    [(        R                  n`[        Ru                  U UUWSU*W^WZWYU'GSwUU9[v        U$W[S9nnUn$ U1GS}:X  d  U [(        GRd                  ;   a~  U*=(       d    [(        R                  n*GS}n1WZRe                  SSS5      nG[f        Rt                  " U UU*W^[        UZWYU/[v        W[WTGS~9n^USAL a  W^GS   S   GS   S   n[        UU GS}W[S9nnUn$ W^nnUn$ U1GS:X  d  U [(        GRh                  ;   a;   USL a  G[k        UGS9OSnT[        Ru                  U UU9W^U$U*WSW[WZWYU'UUTU1[v        US9nnUn$ U1GS:X  aA  [(        R                  =(       d    U*n*[        Ru                  U UUWSU*W^WZWYU'GSUU9[v        U$W[S9nnUn$ U1GS:X  as  U$=(       d;    [(        GRl                  =(       d#    [        GS5      =(       d    [(        R                  n$[        Ru                  U UU9W^U$U*WSW[WZWYUWTU1[v        UG[n        GS9nn Un$ U1GS:X  as  U$=(       d;    [(        GRp                  =(       d#    [        GS5      =(       d    [(        R                  n$[        Ru                  U UU9W^U$U*WSW[WZWYUWTU1[v        UG[r        GS9nn Un$ U1GS:X  d  U [(        GRt                  ;   a  U$=(       d;    [(        GRv                  =(       d#    [        GS5      =(       d    [(        R                  n$U*=(       d-    [(        R                  =(       d    [        GS5      =(       d    GSn*[        Ru                  U UU9W^U$U*WSW[WZWYUWTU1[v        UG[x        GS9nn Un$ U1GS:X  Ga"  [(        R                  =(       d    U*=(       d    GSnUb  WGS:X  a  [        GS5      e SR                  U Vrs/ s H  nrUrS   PM
     snr5      nq[(        GRz                  GR}                  WU9U Uq/U
UUU(R                  GS5      GS.GS.U(R                  S0 5      EGS9nUGR                  5       n UGS   S   GS   S   nUW^GR                  S   GR                  l        G[        G[        GR                  " 5       5      U^l        U U^l        U^nnUn$ U1[(        GR                  ;   a  Sn[(        GR                   H  nUGS   U1:X  d  M  WGS   nM     Wc  G[        U U1S9eG[        WSUWGS9nU9=(       d    [(        R                  =(       d    0 n9W" GS0 S_U _ShU_SU9_GSW^_GS[        _SsU$_SU*_S1WS_GSW[_GSWZ_S=WY_SU/_SU_S{W`_S2WT_GS[v        _6nnUSAL a  [        WnU U1W[GS9$  Wn$ G[        U U1S9es  sn\f s  snbf ! [         a$  noW[R                  UU$[        Uo5      SU90S9  UoeSnoAoff = f! [         a$  noW[R                  UU$[        Uo5      SU90S9  UoeSnoAoff = fs  snrf ! [         a$  noW[R                  UU$[        Uo5      SU90S9  UoeSnoAoff = f! [         a$  noW[R                  UU$[        Uo5      SU90S9  UoeSnoAoff = f! [         a$  noW[R                  UU$[        Uo5      SU90S9  UoeSnoAoff = f! [         a$  noW[R                  UU$[        Uo5      SU90S9  UoeSnoAoff = f! [         a$  noW[R                  UU$[        Uo5      SU90S9  UoeSnoAoff = f! [         a$  noW[R                  UU$[        Uo5      SU90S9  UoeSnoAoff = fs  snrf ! [         a  noG[        U U1UoU)U(GS9eSnoAoff = f(  a  
Perform a completion() using any of litellm supported llms (example gpt-4, gpt-3.5-turbo, claude-2, command-nightly)
Parameters:
    model (str): The name of the language model to use for text completion. see all supported LLMs: https://docs.litellm.ai/docs/providers/
    messages (List): A list of message objects representing the conversation context (default is an empty list).

    OPTIONAL PARAMS
    functions (List, optional): A list of functions to apply to the conversation messages (default is an empty list).
    function_call (str, optional): The name of the function to call within the conversation (default is an empty string).
    temperature (float, optional): The temperature parameter for controlling the randomness of the output (default is 1.0).
    top_p (float, optional): The top-p parameter for nucleus sampling (default is 1.0).
    n (int, optional): The number of completions to generate (default is 1).
    stream (bool, optional): If True, return a streaming response (default is False).
    stream_options (dict, optional): A dictionary containing options for the streaming response. Only set this when you set stream: true.
    stop(string/list, optional): - Up to 4 sequences where the LLM API will stop generating further tokens.
    max_tokens (integer, optional): The maximum number of tokens in the generated completion (default is infinity).
    max_completion_tokens (integer, optional): An upper bound for the number of tokens that can be generated for a completion, including visible output tokens and reasoning tokens.
    modalities (List[ChatCompletionModality], optional): Output types that you would like the model to generate for this request.. You can use `["text", "audio"]`
    prediction (ChatCompletionPredictionContentParam, optional): Configuration for a Predicted Output, which can greatly improve response times when large parts of the model response are known ahead of time. This is most common when you are regenerating a file with only minor changes to most of the content.
    audio (ChatCompletionAudioParam, optional): Parameters for audio output. Required when audio output is requested with modalities: ["audio"]
    presence_penalty (float, optional): It is used to penalize new tokens based on their existence in the text so far.
    frequency_penalty: It is used to penalize new tokens based on their frequency in the text so far.
    logit_bias (dict, optional): Used to modify the probability of specific tokens appearing in the completion.
    user (str, optional):  A unique identifier representing your end-user. This can help the LLM provider to monitor and detect abuse.
    logprobs (bool, optional): Whether to return log probabilities of the output tokens or not. If true, returns the log probabilities of each output token returned in the content of message
    top_logprobs (int, optional): An integer between 0 and 5 specifying the number of most likely tokens to return at each token position, each with an associated log probability. logprobs must be set to true if this parameter is used.
    metadata (dict, optional): Pass in additional metadata to tag your completion calls - eg. prompt version, details, etc.
    api_base (str, optional): Base URL for the API (default is None).
    api_version (str, optional): API version (default is None).
    api_key (str, optional): API key (default is None).
    model_list (list, optional): List of api base, version, keys
    extra_headers (dict, optional): Additional headers to include in the request.

    LITELLM Specific Params
    mock_response (str, optional): If provided, return a mock completion response for testing or debugging purposes (default is None).
    custom_llm_provider (str, optional): Used for Non-OpenAI LLMs, Example usage for bedrock, set model="amazon.titan-tg1-large" and custom_llm_provider="bedrock"
    max_retries (int, optional): The number of retries to attempt (default is 0).
Returns:
    ModelResponse: A response object containing the generated completion and associated metadata.

Note:
    - This function is used to perform completions() using the specified language model.
    - It supports various optional parameters for customizing the completion behavior.
    - If 'mock_response' is provided, a mock completion response is returned for testing or debugging.
Nzmodel param not passed in.)r   )r  )r  r4  r6  r7  r(  force_timeoutr   	logger_fnverboseFr)  r*  rL  metadatar  proxy_server_requestr'  provider_specific_headerheadersensure_alternating_rolesuser_continue_messageassistant_continue_messager   r   cooldown_timecontext_window_fallback_dictr   
ssl_verifyinput_cost_per_tokenoutput_cost_per_tokeninput_cost_per_secondoutput_cost_per_secondinitial_prompt_valuerolesfinal_prompt_value	bos_token	eos_tokenpreset_cache_keyhf_model_namesupports_system_message
base_model(disable_add_transform_inline_image_blocktext_completionatext_completionr   r   zno-logr+  r-  )r   r  r  r  r   )r+  r,  r.  r/  )r   r   r,  r+  r-  r.  r/  
model_namelitellm_paramsdeploymentsr  ro  Tr   r)  r4  r   )r  r)  r  aws_region_nameregion_namerequest_timeout/r  r  litellm_providerr  r  r  model_file_id_mapping)r   model_idr  r   providerr   r   r   r  r  r  r  r1  r  r  r  r  r	  r
  r  r  r  r   r  r  r  r  r  r  r  r  r   r  r"  r#  r  r  allowed_openai_paramsadditional_drop_params)r   passed_paramsspecial_paramsr)  r  remove_sensitive_keysadd_provider_specific_paramsprovider_configfunctions_unsupported_model)r   r   r   litellm_call_idmodel_alias_mapcompletion_call_idno_logazure_ad_token_providerlitellm_trace_idlitellm_session_idcustom_prompt_dictlitellm_metadatadrop_params"merge_reasoning_content_in_choicesuse_litellm_proxyazure_ad_token	tenant_id	client_idclient_secretazure_usernameazure_passwordazure_scoper   litellm_request_debugr   r  optional_paramsr  r)  r5  )
r  r  r6  r7  r  r   r5  r)  r(  r   r  r  r  r   )responses_api_bridge)r   r   r  r  r   r4  r   r  r  r  r   r   r)  encodingr  )azure_client_paramsazure_clientAZURE_API_TYPEAZURE_API_BASEAZURE_API_VERSIONAZURE_OPENAI_API_KEYAZURE_API_KEY
extra_bodyAZURE_AD_TOKENr!  r  )r   r   r  r   r4  r  dynamic_paramsr  r  r`  r  r  r  r  r   r   r   r)  )r   r   r  r   r4  r  api_typer  r  r  r  r`  r  r  r  r  r   r   r   )r  r  r4  )r  r   r  additional_args
azure_textz}api_base is required for Azure OpenAI LLM provider. Either set it dynamically or set the AZURE_API_BASE environment variable.)r   r   r  r   r4  r  r  r  r  r  r`  r  r  r  r  r   r   r   deepseek)r   r   r  r  r   r4  r   r  r  r  r$  r   r   r)  r  r  r  azure_ai)AzureFoundryModelInfoz	command-r)r   r   r  r  r   r4  r   r  r  r  r$  r   r   r)  r  r  r8  zft:babbage-002zft:davinci-002r>  OPENAI_BASE_URLOPENAI_API_BASEhttps://api.openai.com/v1OPENAI_API_KEYr   )r   r   r  r`  r   r)  r4  r   r   r  r  r  r  r   r:  fireworks_aiherokuxaigroqGROQ_API_BASEzhttps://api.groq.com/openai/v1GROQ_API_KEY)r   r  r   r   r4  r  r  r  r$  r)  r   r  r  r   r  r   aiohttp_openaicometapiCOMETAPI_KEYCOMETAPI_API_BASEhttps://api.cometapi.com/v1r  custom_openai	deepinfra
perplexity
nvidia_nimcerebrasbaseten	sambanova
volcengineanyscaletogether_ainebiuswandbclarifaizft:gpt-3.5-turboOPENAI_ORGANIZATION)EXPERIMENTAL_OPENAI_BASE_LLM_HTTP_HANDLER)r   r   r4  r)  r  r  r  r  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$  mistralMISTRAL_API_KEYMISTRAL_API_BASEzhttps://api.mistral.ai/v1	replicateREPLICATE_API_KEYREPLICATE_API_TOKENREPLICATE_API_BASEzhttps://api.replicate.com/v1)r   r   r4  r  r`  r  r  r  r  r   r  r  r   r  anthropic_textANTHROPIC_API_KEYANTHROPIC_API_BASEANTHROPIC_BASE_URLz%https://api.anthropic.com/v1/complete$LITELLM_ANTHROPIC_DISABLE_URL_SUFFIXz/v1/completezILITELLM_ANTHROPIC_DISABLE_URL_SUFFIX is set, skipping /v1/complete suffix)r   r  r   r   r4  r  r  r  r$  r)  r   r  r  r   r  r  z%https://api.anthropic.com/v1/messagesz/v1/messageszILITELLM_ANTHROPIC_DISABLE_URL_SUFFIX is set, skipping /v1/messages suffix)r   r   r4  r   r  r  r`  r  r  r  r  r   r  r  r   r   r)  	nlp_cloudNLP_CLOUD_API_KEYNLP_CLOUD_API_BASEzhttps://api.nlpcloud.io/v1/gpu/)r   r   r4  r  r`  r  r  r  r  r   r  )r)  r  r~   ALEPH_ALPHA_API_KEYALEPHALPHA_API_KEYALEPH_ALPHA_API_BASEz$https://api.aleph-alpha.com/complete)r   r   r4  r  r`  r  r  r  r  default_max_tokens_to_sampler   r  cohere_chatcohereCOHERE_API_KEY
CO_API_KEYzCohere route: v2COHERE_API_BASEzhttps://api.cohere.com/v2/chatzv2/r  zhttps://api.cohere.ai/v1/chatzModel: z, API Base: zProvider Config: )r   r  r   r   r4  r  r  r  r$  r)  r   r  r  r   r  r  maritalkMARITALK_API_KEYMARITALK_API_BASEzhttps://chat.maritaca.ai/api)r   r   r4  r  r`  r  r  r  r  r   r  r)  r  huggingfaceHF_TOKENHUGGINGFACE_API_KEYocicompactifaiCOMPACTIFAI_API_KEYzhttps://api.compactif.ai/v1)r   r   r  r  r   r4  r   r  r  r  r   r   r)  r  r  r  r   )r   r   r  r4  r`  r  r  r   r  r  r  
databricksDATABRICKS_API_BASEDATABRICKS_API_KEY)r   r  r   r   r4  r  r  r  r)  r   r  r  r   r  r   	datarobot
openrouterOPENROUTER_API_BASEzhttps://openrouter.ai/api/v1OPENROUTER_API_KEY
OR_API_KEYOR_SITE_URLzhttps://litellm.aiOR_APP_NAMEliteLLM)zHTTP-RefererzX-Titler   vercel_ai_gatewayVERCEL_AI_GATEWAY_API_BASEzhttps://ai-gateway.vercel.sh/v1VERCEL_AI_GATEWAY_API_KEYVERCEL_SITE_URLVERCEL_APP_NAME)zhttp-refererzx-titletogethercomputerr   zPalm was decommisioned on October 2024. Please use the `gemini/` route for Gemini Google AI Studio Models. Announcement: https://ai.google.dev/palm_docs/palm?hl=envertex_ai_betageminivertex_projectvertex_ai_projectVERTEXAI_PROJECTvertex_locationvertex_ai_locationVERTEXAI_LOCATIONvertex_credentialsvertex_ai_credentialsVERTEXAI_CREDENTIALSPALM_API_KEYGEMINI_API_BASE)r   r   r  r`  r  r  r  r  rl  ri  ro  gemini_api_keyr  r   r   r)  r   r4  r!  	vertex_aiVERTEXAI_API_BASE)r   r  )r   r   r  r`  r  r  r  r  r4  rl  ri  ro  r  r   r  r  r   r   )r   r   r  r`  r  r  r  r  rl  ri  ro  r  r   	predibasepredibase_tenant_idPREDIBASE_TENANT_IDzMissing Predibase Tenant ID - Required for making the request. Set dynamically (e.g. `completion(..tenant_id=<MY-ID>)`) or in env - `PREDIBASE_TENANT_ID`.r   PREDIBASE_API_BASEPREDIBASE_API_KEY)r   r   r  r`  r  r  r  r  r  r   r4  r  r   r  r   r9  z/https://codestral.mistral.ai/v1/fim/completionsCODESTRAL_API_KEY)r  )r   r   r  r`  r  r  r  r  r  r   r4  r  r   r   sagemaker_chat	sagemaker)r   r   r  r`  r  r  r  r  r  r  r  r   bedrockaws_bedrock_clientz'aws_bedrock_client' is a deprecated param. Please move to another auth method - https://docs.litellm.ai/docs/providers/bedrock#boto3---authentication.aws_access_key_idaws_secret_access_keyaws_session_tokenconversez	converse/)r   r   r  r  r  r  r  r  r  r!  r   r   r   r4  r   converse_likezconverse_like/watsonx)r   r   r  r  r`  r   r4  r   r  r  r  r  r   r  r   r  r)  watsonx_textapikeyWATSONX_APIKEYWATSONX_API_KEY
WX_API_KEYrk  WATSONX_API_BASEWATSONX_URLWX_URLWML_URLwx_credentialswatsonx_credentialstokenwatsonx_tokenvllm)
r   r   r  r  r`  r  r  r  r  r  ollamaOLLAMA_API_BASEhttp://localhost:11434ollama_chatOLLAMA_API_KEYtriton
cloudflareCLOUDFLARE_API_KEYCLOUDFLARE_ACCOUNT_IDCLOUDFLARE_API_BASEz.https://api.cloudflare.com/client/v4/accounts/z/ai/run/petals)r   r   r4  r  r`  r  r  r  r  r  r   r  rl  	snowflaker  gradient_aibytezBYTEZ_API_KEYlemonadeLEMONADE_API_KEYovhcloudOVHCLOUD_API_KEYOVHCLOUD_API_BASE0https://oai.endpoints.kepler.ai.cloud.ovh.net/v1customzGapi_base not set. Set api_base or litellm.api_base for custom endpointstop_k)promptr  r   r  r  )r   r   )r  jsondataoutputr  custom_handler)async_fnr  
custom_llmr  r`  r  r  r  r  r?  r   )
ValueErrorrV   rW   rX   r   r   r   r   boolr   updater   rT  ra   rI   rF  rG  rH  get_chat_completion_promptr   r   rM  r`   batch_completion_modelsr  r   r  r?   rH   r(   get_provider_specific_headershasattrr  rs  r~  rT   readr   register_modelrb   r   r   valuer>   get_provider_chat_config'translate_developer_role_to_system_rolere   r    rQ   add_function_to_promptr   rd   r   update_environment_variablesr  r  litellm.completion_extrasr  r   r  r>  AzureOpenAIAsyncAzureOpenAIrm   rN   r4  r  r9   AZURE_DEFAULT_API_VERSIONr   	azure_keyr  AzureOpenAIO1Configis_o_series_model
get_configr   azure_o1_chat_completionsr`  AzureOpenAIConfigazure_chat_completionsr  azure_text_completionsbase_llm_http_handlerrN  "litellm.llms.azure_ai.common_utilsr  get_api_baserG   rh   +openai_text_completion_compatible_providersr  
openai_keyrV  r   rJ  listjoinopenai_text_completionsrW  groq_keyGroqChatConfigbase_llm_aiohttp_handlercometapi_keyopen_ai_chat_completion_modelsopenai_compatible_providersenable_preview_featuresrA   OpenAIConfigr8   openai_chat_completionsreplicate_modelsreplicate_keyr  replicate_chat_completionclarifai_modelsanthropic_keyosenvironendswithrZ   rK  anthropic_chat_completionsnlp_cloud_keynlp_cloud_chat_completionr=   aleph_alpha_keyr~   r  
cohere_keyr2   get_cohere_router  maritalk_keyopenai_like_chat_completionhuggingface_keyr   getenvdatabricks_keyopenrouter_keyOpenrouterConfigVercelAIGatewayConfigtogether_ai_modelsri  rl  r   r^   vertex_chat_completionr6   r5   PARTNER_MODELS%vertex_partner_models_chat_completionGEMINIGEMMAvertex_gemma_chat_completionMODEL_GARDEN#vertex_model_garden_chat_completionr   rx  predibase_keypredibase_chat_completionsr   codestral_text_completionssagemaker_llmwarning_get_credentialsget_frozen_credentials
access_key
secret_keyr  metar  r1   get_bedrock_route bedrock_converse_chat_completionwatsonx_chat_completionvllm_handler
ollama_keycloudflare_api_keypetals_modelspetals_handlersnowflake_modelsr4   	bytez_keybytez_transformationlemonade_keylemonade_transformationovhcloud_modelsovhcloud_keyovhcloud_transformationmodule_level_clientpostr  r  rl  r  r   r  r  r   _custom_providerscustom_provider_mapr#   r|   r   )r   r   r   r   r  r  r  r  r1  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r#  r2  r!  r  r  r   r   r   r  r   r   r"  r$  r   ra  r4  r6  r7  r(  r  r  r  r)  r*  rL  r  r  r  r'  r  r  r  r  r  r   r   r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r  r+  r-  r,  r  r  r  mr  r  dynamic_api_keyr  r  r  optional_param_argsprocessed_non_default_paramsr  r  r  r  r  r  configr   r   r   r^  r  r  rl  	_responsemetadata_payloaduse_base_llm_http_handlerr  disable_url_suffixr  r  r  cohere_router  r  
hf_headersopenrouter_site_urlopenrouter_app_nameopenrouter_headers_headersr  vercel_site_urlvercel_app_namevercel_headersrj  rm  ro  rt  
new_paramsmodel_router  _model_responsetext_completion_model_responser  credsbedrock_router  r  
account_idresp_stringrk  respresponse_jsonstring_responser  item
handler_fns                                                                                                                                                                 r   r   r     sWE   F }566/BH)6E6;OK8Dzz*d+H28**_d2SMjj!2D9O

>4(HILJJ4M

;-IjjE*G **%:DA **%:DA	D$	Bzz*d+HL$/J!::&<dC

;-I#'(&**5OQU*V  jjD):]G/5zz"D0 BHB LR::$dL  }%**tK **]D1KJJ5M#)::.Ld#S ::nd3LL$/J!::&<dC"JJ'>E"JJ'>E#ZZ(@$G!::&<dCJJw%E$8$?

;-I

;-Izz"4d;JJ5M$jj)BDIL$/J/5zz2D0, jj!2E:Ozz"4e<**]E2KZZ$'FZZ%(FXc]FJJ{D$ABIHTNFJJ7I4,PQ&!9!BU3#=	H ;&IN %'899>>4F 	? 	
  ::1-ND9!::&6= ; 
		
D)
H"%K)<=8!8!8	 ,4t44!-7-71\?e;S#"#Z   22S{SdSS""u0G0G'G++E '9JJw&$.")$!E")@P 3	A
="OX $/NN+II-E(; %'.BR*S*SCVN))*?@;A::!4<N))-8
 FVZZ(93?F3gu}}--6L7
 7
 ll)cGGU]]33GnG  +0E0Q""*+1UG40D1F,?7 "-%;"""*+1UG41F2H,?7   !"'#DX"5)*@A5:"5)'2!BT"5)*>?9B"5)+69B"5)+6::-..:!L"599$E&*d38n,-vzz:Q/R'H 15*/B+7G
+7xHNN<G
 0
 4LLl3F&GO &&NN! O H
 $/2D99'50,h?H&%G%
%
]%
 ;%
 U	%

 %
 f%
 n%
 D%
 *%
 $%:%
 *%
 *%
 U%
  0%
  !2%
  *!%
" D#%
& U'%
( "#6)%
* +%
, D-%
. U/%
0 ;1%
2 ;3%
4 5%
6 L7%
8 ;9%
: "#6;%
< =%
>  0?%
@ A%
B !"4C%
D  !2E%
F LG%
H $VZZ0G%HI%
L . 
!
%7
 (F-- 3#)::.F#G"&)-+	(
$ ))o.A.A)4/
 /
 +:*=*=-+' ,!-HH
 , 2
#2
2
 (2
  	2

 2
 !42
 2
 #JJ'8$?2
 $332
  "2
 2
 "2
 "62
 .2
 2
  #8!2
" "6#2
$ $:%2
& #8'2
( ()2
* #JJ'89+2
, %+JJ/H$I-2
. #)**-D"E/2
0 "12
2 $ZZ(:;32
4  &zz*>?52
6 (72
8  292
: $ZZ(:;;2
< 6^=2
> 

=1?2
@  A2
B .C2
D "E2
F 06zz4d0G2
L %jj)<eDM2
N $O2
P "::&67Q2
R jj-S2
T jj-U2
V !**_5W2
X "::&67Y2
Z "::&67[2
\ 

=1]2
^ $_2
` a2
b #)**-De"Lc2
f 	(EE8) 3 	F 	
 O|JJ~t,"+ /'!::lD9$7)   7-@

E >>&![0F'22!-!'# /-$7! 3  $ ') #N!66#5#566ff&=&=>>!<)6(D!'"
 ""23>wHS7#3#3SzBR7SH  5&&5!"565 44	   3??3$$3 ""893 "/2  -00rBFF $ 2 01  '5&8&8)4'# 0G(3@0&1<.**,>>U>K 44??A"LLNDAq0-.*	 + 5??%##% +#1#1#1"/$3#1' ' +#!(;% @ , !22==?"LLNDAq0-.*	 + 2<<%##% +%#1#1,C#1"/$3#1' ' +#!' = , ""8U33!!"#&.#*'2$,%	 " 	DE qD !L0%&67B7HW7#3#3W~FV7WH  T 
  7&&7!"56   3??3$$3 ""893 "/2  -00rBFF $ 2 01  '5&8&8)4'# 0G(3@0 ..99;F1_,)*OA&	 ' .88!! k2!-(?-+ /-##'% 9 H* ""8U33{d7J!!"#&.#*'2$,%	 " 	dB QB !J.0;;%##1#% + '$3#1#1#!(;%!$3# < HB OA !J.P,99(CH+77@G0G(3@0 e#;XN0;;%##1#% + '$3#1#1#!(;%!! < 8 ""8U33!!"#&.%.$8	 " n? a?  #;;5(5("BBC

,-5&FO  /##//0/ /0/ /  "&F  0??0%%0 ./	  0G(3@0 77BBDF1_,)*OA&	 '
 ##&-&:&:# H!!,x{95t<< "!Y/X"NX'79#5X"NO 0::!-+$7!'# /-# ; I$  ##He4=5(#u, $>>@ff$-^ g 	 ""8U33{d7J!!"#&/%.$8	 "  !Hn< m< !N20;;%##1#% + '$3#1#1#!(;%!$3# < f< o; !H,0;;%##1#% + '$3#1#1#!(;%!$3# < j; s: !E)0;;%##1#% + '$3#1#1#!(;%!$3# < l: u9 !F* 4##4o.4 4	   .??.##. n-	  0G ++668F1_,)*OA&	 ' -77!'!- /--$7!#! 8 H@9 ]8 !$44  /##//0/ /0/ /   0??0%%0 ./	  0G(3@0/::!-!'# /-$7! ; Hr7 Q7 !J. #''#!.1# ??	   1##1!"561 1	  -77!-!'# /--$7! /# 8 H* 8  F6 5 W;;;"o5"k1"l2"l2"j0"i/"k1"l2"j0"h."m3"h."g-"j0"g&I&II!U*
  /##//0/ /0/ /   ''34 	  #/F  0??0%%0 ./	  0G(3@0..#6x#@ #/2BOJ/ ))446F1_,)*OA&	 ' )8;)%3,4??#!)!),?'5!)$+(7 ''5'5$/% ' '%(7#  @  H(  7AA#!) ''5&3 '!)$/$+(7'5"+ '+=%%1,?'5%  B  H< ""8U33!!"#&.%.$8	 " N2 A2 !I-QQJ?P4QG /##/01/ /	  -77!!$7-!# /--' /# 8 Hn1 G1 5 "k1000  5((5??5 125 34   2##2232 2	  "4!Qw7Q7Q6!!-+ /-#!%##5'N" ""8U3t;!!")&4 "  &Hh/ e/ %"j0///\/ [/ !$44 7((7??7 ::>>"56	  "4!Qw7Q7Q ;##;23; 23; ;  "11W!X$* )).99N*#$$_ -77!'!- /--$4!# 8 H`. - !K/ 7((7??7 ::>>"56	  "4!Qw7Q7Q  ;##;23; 23; ;  "11W!X$* )).99N*#$$_ 2<<!!'#*#=#=-+ /-#!#$7# = H& ""8U33{d7J!!"#&. " 
  HL, K, !K/ #((#12# ??	   5##5235 5	  1!!-+ /-#!%#H ?*x/HD/P.(3 '	 ""8U33{d7J!!"#&. "   Hn* m* !M1 #**#34# 23# ??   :##:45: :	  )33!!-+ /-#!-4-?-?'#N ?*x/HD/P."(5 '	  %H\) [) !M15HH5T #%%#!"23# ",/# ??  +;;EBL  >,!@At# 8''8%&788 8	  E>!MM%4E  7''7%&787 7	  66BG(}-  75'hZ!HI  #4_4E!FG,77!'!- /--$1!" /#! 8 HL( i' !J. #''#01# ??	   2##2122 2	  9CC!!-+ /-#!$#$.#5 D N  &Hj& i& !M1 #**#::>>*-# ::>>"78# ??  !3GOOJ,77!"-'!'# /-$7! 8 HV& u% !E),77!-!'# /-$7! 8 Hr% Q% !M1S>*?@SGOO   @#@H -77!-!'# /-$7! /! 8 H@% ]$ !K/"-&11!-!+ /-#!#N ?*x/HD/P."(3 '	  %Hl# k# !L0 4##49923   4??4))4 23	  0G0;;!% +%#1$3#1(4##%# '! < 6 ""8U33!!"#&.%.$8	 " J" }! !K/,77!-!'# /-$7! /! 8 Hz! W! !L0 2##2!"782 2	   ,??,)), 23, l+  #-]";"S?S",]";"Hy !4."
 1'//H"))(3(G --88:F1$#6'*11!4-.*o-)*OA& ' #LOLD -77!'!- /--$0!#! 8 H& (  V Q !$77 5##5!">?5 5	  U7??Uj9T.U  )):;S?SO():;HyO !0*N
 1'//H%%h/$G 22==?F1$#6'*11!4-.*o-)*OA& ' #LOLD -77!'!- /--$7!#! 8 H& (  X Q  =0"e+333 B A !F* v  !$448Kx8W##$4d; 2"&&':DA2))2 01	   ##$5t< 3"&&';TB3**3 12	   ##$8$? 6"&&'>E645   #')#n-# ??	   T7#3#3TzBS7TH'(=2>J-88!-+ *-#! 20#5-#'$7!%' 9 H@ U !K/##$4d; 2"&&':DA2))2 01	   ##$5t< 3"&&';TB3**3 12	   ##$8$? 6"&&'>E645   V7#3#3VzBU7VH'(=2>J3NK 0???!F!Q!Q%#1"/$.#1'%%$6#4'9 ' +#'9#!% "R "(  2 9 99!7!B!B%#1"/$.#1'%$6#4'9#' ' +#(;!%")' "C "*  2 8 88!=!H!H%#1"/$.#1'%%$6#4'9 ' +#'9#!% "I "(  2 ? ??!D!O!O%#1"/$.#1'%%$6#4'9 ' +#'9#!% "P "* "6!@!@%#1"/$.#1'%$6#4'9 ' +"" /'1T9#u,2&,7$+	 H $O%Hx w !K/##K6 5"&&'<dC5..5 34	     q 
  4"&&z484"&&z484 ##4 23   3??3((3 12	  9CC!-+ /-#!#'!#5# D O& O+#H-55(&&&HN M !$?? E"&&z48E"&&z48E ##E E  SSJ?R4SG-4-K-K.* 9CC!=+ /-#!#'!#5 D O$ O+#H-55(&&&H@  !$442==!'!- /-$4!# > N& &HT S !K/*55!-+ /-#5+#!#' 6 N  &Hn m !I-!3!Qw7Q7Q#6&& n &5%8%89M%N"*;;=TTV###;@;K;KO$78###?D?O?OO$;<;;;;@;;O$78%_<&'89A +//;; $$56 ->>uEM
*k26;FF%'9#1$3#1'% '")# +!%# G r Q /1&6;0;;!% +%#1$3#1(1##%# '! < L i 1;;!% +%#1$3#1(1##%# '! < h G !I-.99!-+!'# /-##5!$-# : HD _ !N2 0"&&x60!"230 ""340 ",/   
-"&&#''"O$7$7
D$I
- ""45
- "-0
- "(+
- "),  -00 ##)4N $(E))--eX>(,,n00GD '**"&&'  +0(,77!'!- /--$2!#! 8 HB _ !F*!3!Qw7Q7Q)44!#5-+ /-#!#N O+0IT0Q /"(. '	   &Hf e !H,   ,,/0, ,	  -77!'!- /--$,!#! 8 HV q !M1   ,,/0, ,	   #%%#::>>"23# ??	  -77!'!- /--$1!#! 8 HR m
 !H,''38H,77!'!- /--$7!# 8 Hh
 G
 !L0 4--4??4 23	  $$;<J Y##Y34Y DJ<xX	  "4!Qw7Q7Q,77!'!- /--$0!# 8 Hf	 C	 !H,9N9N0N37#3#3H"*$((59F+66!!-+ /-#!#N ~,Y7:9EiP.(0 '	  %HJ I !K/5G<T<T3T4:eOK0  1;;%##1#% + '$3#1#1#!(;%!! < ~ G !M1''38H,77!'!- /--$1!# 8 H@ ] !G+ #$$#!/2# ??	  -77!-!'# /-$7! 4! 8 H& f e !J. #''#!"45# ??	  -77!-!'# /-$7! 7! 8 H& n k !J.%7;R;R2R #''#!"45# ??	   F##F!"56F F	  -77!-!'# /-$7! 7! 8 H& f c !H,""4h4"C{cRi ] " XXJgwy1JKF..33"#)(&0'2!&!'G!4
 jjr2
 4 D !IIKM ,F3A6x@CO8GN""1%--5%(%5N"#(N %Hl g  7#<#<< 37N33
#'::%)*:%;N 4 %,5H 
 0$VJ 66BG " !    .	
 ,   " ( $ !0  . $   $6   "!H$ ~*&.(; '	    )1D ]QNG
r  !!"#&)!f%.$8	 "  \  !!"#&)!f%.$8	 "  L #Oz  !!"#&)!f%.$8	 "  <  !!"#&)!f%.$8	 "  >  !!"#&)!f%.$8	 "  `  !!"#&)!f%.$8	 "  D  !!"#&)!f%.$8	 "  J  !!"#&)!f%.$8	 "  f Kt  
 3 "
 	

sw  *ACo ,Co 3Ch3	Ch3Co (KCo Ch8M4Co ACo G9Co A*Co  A Co !E2Co A2Co A
Co A'Ch= A8Co A:ACo C&Ci. C?,Co D,D3Co I#BCo K%CjK4B Co NCo N'Cj$ OCo OCo O'Ck O3Co O5Co O<'Cl P#Co P%CCo S60Co T'CCo W=B5Co Z3GCo bCo b.Cl7 cCo c(Cl7 c.-Co dBCo f*DCo j3"Co kD0Co pE3Co u;C!Co yCCo |<Co } F;Co C<B.Co F+CCo I1-Co JA'Co LACo MCo MBCo O7'Cm( P,Co Q/Co Q;ECo WACo X3D1Co ](ACo _ %Co _&GCo f(J&Co qCo qECo v$Co v(CCo zCo z
1Co z<2Co {/ECo AACo B)Co B=6Co C4FCo JA#Co K3Co K7A%Co MB=Co PACo Q"CCo T5BCo WCo WCo W,8Cn X$Co X&ACo Y.A9Co [(A9Co ]"CCo `'ACo a8Co
bC	Co e3Co fBCo h%Co h(Co h=
Ci+iCi&i&Ci+i+Co i.
Cji8CjjCjjCo j$
Ckj.CkkCkkCo k
ClkCk>k>CllCo l
Cl4lCl/l/Cl4l4Co l7
Cm%mCm m Cm%m%Co m(
Cnm2CnnCnnCo n
Con#CooCooCo o
Co-oCo(o(Co-c                      SSK nUR                  SS5      nSUS'   SUS'   UR                  SS5      nUR                  S	[        5      nUS
:X  a/  UR	                  UR                  SSS9UR                  U5      SS9nOUR	                  UR                  U5      SS9nU" U/U Q70 UD6$ ! [         a  n[        SU 35      eSnAff = f)z0
Executes a litellm.completion() with 3 retries
r   N?tenacity import failed please run `pip install tenacity`. Errorr      r   retry_strategyconstant_retryoriginal_functionexponential_backoff_retryrY   
   
multipliermaxTr   r1  reraiser1  rF  )tenacityrN  r   r   Retryingwait_exponentialstop_after_attemptra  r   rH  r^  r   r=  r?  retryers           r   completion_with_retriesrN    s   
 **]A.KF=F=MSZZ*NN 

#6
C44##**aR*@,,[9 $ 
 ##,,[94 $ 
 $6t6v66/  
MaSQ
 	

s   B* *
C4CCc                    #     SSK nUR                  SS5      nSUS'   SUS'   UR                  SS5      nUR                  S	[        5      nUS
:X  a/  UR	                  UR                  SSS9UR                  U5      SS9nOUR	                  UR                  U5      SS9nU" U/U Q70 UD6I Sh  vN $ ! [         a  n[        SU 35      eSnAff = f N$7f)zo
[DEPRECATED]. Use 'acompletion' or router.acompletion instead!
Executes a litellm.completion() with 3 retries
r   Nr;  r   r<  r   r=  r>  r?  r@  rY   rA  rB  TrE  rG  )rH  rN  r   r   AsyncRetryingrJ  rK  rL  s           r   acompletion_with_retriesrQ    s	    

 **]A.KF=F=ZZ 02BCN

#6
C44((**aR*@,,[9 ) 
 ((,,[94 ) 
 *<T<V<<<)  
MaSQ
 	

( =s4   CB4 B'C/C0C4
C>CCCc            	      .  #    [         R                  " 5       n[        U 5      S:  a  U S   OUS   nSUS'   UR                  SS5      n [	        [
        /U Q70 UD6n[        R                  " 5       n[	        UR                  U5      n[        UUUR                  SS5      S9u  p  nUR                  SU5      I Sh  vN n	Sn
[        U	[        5      (       a  [        S0 U	D6n
O=[        U	[        5      (       a  U	n
O%[         R                  " U	5      (       a
  U	I Sh  vN n
U
b4  [        U
[        5      (       a  [        U
S	5      (       a  XJR                   S'   U
c  [#        S
5      eU
$  N NM! [$         a  nU=(       d    Sn['        UUUU US9eSnAff = f7f)a]  
Asynchronously calls the `embedding` function with the given arguments and keyword arguments.

Parameters:
- `args` (tuple): Positional arguments to be passed to the `embedding` function.
- `kwargs` (dict): Keyword arguments to be passed to the `embedding` function.

Returns:
- `response` (Any): The response returned by the `embedding` function.
r   r   T
aembeddingr)  Nr4  r3  r  zCUnable to get Embedding Response. Please pass a valid llm_provider.r>  r?  r   )rD  rE  rJ  r   r   	embeddingrP  rQ  rR  rH   rS  rF  rT  r   rU  r  r  r  rN  r   ra  r   r=  r   r)  rZ  r[  r\  rY  r]  r   r^  s               r   rS  rS    s     !!#D4y1}DG&/EF< **%:DA,
y24262 &&(#CGGT2'7 3ZZ
D1(
$1 #2249JKK04mT**(9=9H'899$H  //**H 8%677"233=P##$9:U  ) L +  
1=X 3 "
 	

sQ   AF	A2E+ ;E'<AE+ E)A
E+ &F'E+ )E+ +
F5FFFr   
dimensionsencoding_formatr4  r  cachingrS  Tc                    g r   r   r   r  rV  rW  r   r4  r  r   r  rX  r  r)  r  r  rS  r   s                   r   rT  rT  G      , r   )rS  c                    g r   r   rZ  s                   r   rT  rT  a  r[  r   c                 $   UR                  SS5      nUR                  SS5      nUR                  SS5      nUR                  SS5      nUR                  S5      nUR                  SS5      nUR                  SS5      nUR                  S	S5      nUR                  S
S5      nUR                  SS5      nUR                  SS5      nUR                  SS5      nUR                  SS5      nUR                  SS5      n/ SQnS	S
/[        -   nUU-   nUR                  5        V V!s0 s H  u  n n!U U;  d  M  U U!_M     n"n n![	        U UUUS9u  pn#nU#b  U#n[        SU U
UUUS.U"D6n$Ub$  Ub!  [        R                  " U SU  3UUUS.05        Ub,  U=(       d    Sn[        R                  " U SU  3UUUS.05        [        S0 UD6n%Un&U&R                  U U
U$U%US9  Ub
  [        U US9$  Sn'USL d  US:X  Ga  U=(       d"    [        R                  =(       d    [        S5      nU=(       d9    [        R                  =(       d"    [        S5      =(       d    [        R                  nU$R                  SS5      =(       d    [        S5      n(U=(       d9    [        R                  =(       d"    [        R                   =(       d    [        S5      nUc  [#        S5      e[$        R'                  U UUUUU(UU&U[)        5       U$UUUU=(       d    UU%S 9n'GOxU [        R*                  ;   d  US!:X  d  US":X  d  US#:X  d  US$:X  a  U=(       d=    [        R                  =(       d&    [        S%5      =(       d    [        S&5      =(       d    S'n[        R,                  =(       d    [        S(5      =(       d    S[.        l        U=(       d9    [        R                  =(       d"    [        R0                  =(       d    [        S)5      nUb  UU$S
'   Sn[2        R'                  U UUUU&U[)        5       U$UUUUS*9n'GO^US+:X  a  U=(       d"    [        R                  =(       d    [5        S,5      nU=(       d9    [        R                  =(       d"    [        R6                  =(       d    [5        S-5      n[8        R'                  U UUUU&U[)        5       U$UUS.9
n'GOUS/:X  d  US0:X  d  US1:X  d  US2:X  a  U=(       d"    [        R                  =(       d    [        S35      nUcB  U=(       d9    [        R                  =(       d"    [        R:                  =(       d    [        S45      nUb  UU$S
'   [<        R'                  U UUUU&U[)        5       U$UUS.9
n'GOUS5:X  d  US6:X  a  U=(       dK    [        R>                  =(       d4    [        S75      =(       d"    [        S85      =(       d    [        R                  n)Ub  [A        U[B        5      (       a  UnO0 n[D        R'                  U UUUU)U&U[)        5       U$UUU%US99n'GOiUS::X  am  U=(       d9    [        RF                  =(       d"    [5        S;5      =(       d    [        R                  n[H        R'                  U U[J        UUU&[)        5       U$UUU%S<9n'G
OUS=:X  aM  [A        U[L        5      (       a  U/n*OUn*[N        RQ                  U U*[J        U&U$[)        5       UUU0 U[R        UUS>9n'G
OUS?:X  a6  Uc  [#        S@5      e[D        R'                  U UUUUU&U[)        5       U$UU0 SA9n'G
OgUSB:X  a  U=(       d!    [U        5       =(       d    [        R                  n+U=(       d"    [        R                  =(       d    [        SC5      n[V        RY                  U U[J        U&U$[)        5       SSSU[R        SBU+UUSD9n'G	OUSE:X  Ga  U$R                  SFS5      =(       dM    U$R                  SGS5      =(       d4    [        RZ                  =(       d    [        SH5      =(       d    [        SI5      n,U$R                  SJS5      =(       dM    U$R                  SKS5      =(       d4    [        R\                  =(       d    [        SL5      =(       d    [        SM5      n-U$R                  SNS5      =(       d6    U$R                  SOS5      =(       d    [        SP5      =(       d    [        SQ5      n.U=(       d4    [        R                  =(       d    [        SR5      =(       d    [        SS5      nSTU$;   d  SUU$;   d  U [^        R`                  ;   a3  [^        Rc                  U U[J        U&U$U%[)        5       U,U-U.U[R        SEUUSV9n'GO'[d        R'                  U U[J        U&U$[)        5       U,U-U.SEUU[R        UUUSW9n'GOUSX:X  a)  [f        R&                  " U U[J        UU&U$[)        5       USY9n'GOUSZ:X  a  [        R                  =(       d    U=(       d    [        S[5      =(       d    S\n[A        U[L        5      (       a  U/n[i        S] U 5       5      (       d  [        Rj                  " S^U 3U SZS_9eUSL a  [l        Rn                  O[l        Rp                  n/U/" UU U[J        U&U$[)        5       S`9n'GOUSa:X  a+  [r        R'                  U U[J        U&U$[)        5       [R        Sb9n'GOUSc:X  aQ  U=(       d"    [        R                  =(       d    [        Sd5      n[2        R'                  U UUUU&U[)        5       U$UUS.9
n'GO{USe:X  aQ  U=(       d"    [        R                  =(       d    [        Sf5      n[2        R'                  U UUUU&U[)        5       U$UUS.9
n'GO$USg:X  a  U=(       d"    [        R                  =(       d    [        Sh5      nU=(       d+    [        R                  =(       d    [        Si5      =(       d    Sjn[2        R'                  U UUUU&U[)        5       U$UUS.9
n'GOUSk:X  a  U=(       d"    [        R                  =(       d    [        Sl5      nU=(       d+    [        R                  =(       d    [        Sm5      =(       d    Snn[2        R'                  U UUUU&U[)        5       U$UUS.9
n'GOUSo:X  a  U=(       d"    [        R                  =(       d    [        Sp5      nU=(       d+    [        R                  =(       d    [        Sq5      =(       d    Srn[D        R'                  U UUUUU&U[)        5       U$UU0 SA9n'GOUSs:X  a(  [D        R'                  U UUUUU&U[)        5       U$UU0 SA9n'GOSUSt:X  a(  [D        R'                  U UUUUU&U[)        5       U$UU0 SA9n'GO%USu:X  aU  [t        Rv                  " U$XuSv9n0U0Sw   nU0Sx   nSyU0;   a  U0Sy   U$Sy'   [D        R'                  U UUUUU&U[)        5       U$0 UUSz9n'GOUS{:X  a  U=(       d+    [        R                  =(       d    [        S|5      =(       d    S}nU=(       d+    [        R                  =(       d    [        S~5      =(       d    Sn[2        R'                  U UUUU&U[)        5       U$UUS.9
n'GO6US:X  a  U=(       d"    [        R                  =(       d    [        S5      nU=(       d9    [        R                  =(       d"    [        R0                  =(       d    [        S5      n[x        R'                  U UUUU&U[)        5       U$UUS.9
n'GOUS:X  aC  [A        U[L        5      (       a  U/n*OUn*[D        R'                  U U*UUUU&U[)        5       U$0 UUSz9n'GOTUS:X  a  U=(       d4    [        R                  =(       d    [        S5      =(       d    [        S5      n1U1c  [#        S5      eUb  [A        U[B        5      (       a  UnO0 n[D        R'                  U UUUU&UU$0 [)        5       U1UUUS9n'GOUS:X  a  U=(       d"    [        R                  =(       d    [        S5      nU=(       d+    [        R                  =(       d    [        S5      =(       d    Sn[D        R'                  U UUUUU&U[)        5       U$UU0 SA9n'GO0US:X  a  U=(       d9    [        Rz                  =(       d"    [        S5      =(       d    [        R                  nU=(       d+    [        R                  =(       d    [        S5      =(       d    Sn[D        R'                  U UUUUU&U[)        5       U$UU0 SA9n'OU[        R|                  ;   ap  Sn2[        R~                   H  n3U3S   U:X  d  M  U3S   n2M     U2c	  [        XS9eU(       d  U2R&                  OU2R                  n4U4" U UU&UUUU$[)        5       [R        U%S9
n'O	[        XS9eU'b5  [        U'S5      (       a$  [A        U'[(        5      (       a  UU'R                  S'   U'c	  [        XS9eU'$ s  sn!n f ! [         a+  n5UR                  UU[M        U55      S9  [        U U5UUS9eSn5A5ff = f)a#  
Embedding function that calls an API to generate embeddings for the given input.

Parameters:
- model: The embedding model to use.
- input: The input for which embeddings are to be generated.
- encoding_format: Optional[str] The format to return the embeddings in. Can be either `float` or `base64`
- dimensions: The number of dimensions the resulting output embeddings should have. Only supported in text-embedding-3 and later models.
- timeout: The timeout value for the API call, default 10 mins
- litellm_call_id: The call ID for litellm logging.
- litellm_logging_obj: The litellm logging object.
- logger_fn: The logger function.
- api_base: Optional. The base URL for the API.
- api_version: Optional. The version of the API.
- api_key: Optional. The API key to use.
- api_type: Optional. The type of the API.
- caching: A boolean indicating whether to enable caching.
- custom_llm_provider: The custom llm provider.

Returns:
- response: The response received from the API call.

Raises:
- exception_type: If an exception occurs during the API call.
ro  Nr   r$  r   r*  r6  r  rS  r!  r  r  r  r  r  )r  rV  r  r4  r  r   r2  r   r   r   r   r   rW  r  )r   r  rV  rW  r)  r  r  g        r  r  )r   r6  Tr  r	  r  r  r  zPNo API Base provided for Azure OpenAI LLM provider. Set 'AZURE_API_BASE' in .env)r   r  r4  r   r  r  r  r  r   r  r  r   rS  r   r  r  r>  r.  r(  litellm_proxyr  r  r  r2  r  )r   r  r4  r   r  r   r  r  r   rS  r   r$  rV  rW  rX  )
r   r  r4  r   r  r   r  r  r   rS  openai_likehosted_vllm	llamafile	lm_studioOPENAI_LIKE_API_BASEOPENAI_LIKE_API_KEYrH  rG  rI  rJ  )r   r  r)  r4  r   r  r   r  r  r   rS  r  r  rP  rR  )r   r  r  r   r4  r  r  r  r   rS  r  r  )r   r  r  r  r  r  r   r   rS  r  r4  r`  r!  r   r  z7api_base is required for triton. Please pass `api_base`)r   r  r)  r4  r   r  r   r  r  r   rS  r  rh  rs  )r   r  r  r  r  r  ri  rl  ro  rS  r`  r)  r   r4  r   ru  ri  rj  rk  VERTEX_PROJECTrl  rm  rn  VERTEX_LOCATIONro  rp  rq  VERTEX_CREDENTIALSrv  VERTEX_API_BASEimagevideo)r   r  r  r  r  r  r  ri  rl  ro  rS  r`  r)  r   r4  )r   r  r  r  r  r  ri  rl  ro  r)  r   rS  r`  r   r4  r   r   )r   r  r  r4  r  r  r  r   r  r  r  c              3   B   #    U  H  n[        U[        5      v   M     g 7fr   )rF  r   ).0r8  s     r   	<genexpr>embedding.<locals>.<genexpr>s  s     ?z$,,s   z+Invalid input for ollama embeddings. input=rl  r   rh  )r4  r   promptsr  r  r  r  r~  )r   r  r  r  r  r  r`  r4  r5  r  FIREWORKS_AI_API_KEYr/  NEBIUS_API_KEYNEBIUS_API_BASEzapi.studio.nebius.ai/v1r0  WANDB_API_KEYWANDB_API_BASEz!https://api.inference.wandb.ai/v1r+  SAMBANOVA_API_KEYSAMBANOVA_API_BASEzhttps://api.sambanova.ai/v1voyageinfinityr  )r  r   r4  r   r4  r  )r   r  r)  r4  r   r  r   r  r  r  r   rS  
xinferenceXINFERENCE_API_KEYzstub-xinference-keyXINFERENCE_API_BASEzhttp://127.0.0.1:9997/v1r  AZURE_AI_API_BASEAZURE_AI_API_KEYjina_air,  ARK_API_KEYVOLCENGINE_API_KEYzuMissing API key for Volcengine. Set ARK_API_KEY or VOLCENGINE_API_KEY environment variable or pass api_key parameter.)r   r  r   r)  r  r4  r  r  r  r   r   rS  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)  rB  r   )Gr   r   r   r   rH   rK   r   r  r   r  r+   r4  r9   r  r  r   r  r  r  rT  r   open_ai_embedding_modelsr   r>  r  r  rN   r  databricks_embeddingopenai_like_keyopenai_like_embeddingr  rF  rT  r  r  huggingface_embedr  r   bedrock_embedding
embeddingsr`  r   google_batch_embeddingsbatch_embeddingsri  rl  vertex_multimodal_embedding%SUPPORTED_MULTIMODAL_EMBEDDING_MODELSmultimodal_embeddingvertex_embeddingr   allBadRequestErrorr  ollama_aembeddingsollama_embeddingsr   r   get_watsonx_credentialsazure_ai_embeddingr  r  r  r#   rS  r  r  rN  r  r   )6r   r  rV  rW  r   r4  r  r   r  rX  r  r)  r  r  r   ro  r   r$  r   r*  r6  r  rS  r!  r  r  r  r  r  openai_paramsr  default_paramsr   r   r,  r  r  litellm_params_dictr  r   r  r  transformed_inputrt  rj  rm  ro  ollama_embeddings_fncredentialsvolcengine_keyr  r8  r9  r^  s6                                                         r   rT  rT  |  s   Z JJw%EZZ$'FZZ 0$7N**]D1K-3ZZ8M-N+1::ot+LM$jj)BDI!'L$!?JJJ5MjjD)G!::&<dC"JJ'>E"JJ'>E#ZZ(@$GM  	 	N
 #^3N'A1N+B1   =M/	=9E "!4 '/ O ',A,M&'q0,@-B(;3	
 (!7!>3&'q0-B.D(;3	
 -6v6*G(('*/ )   EGGn
  	 D=/7:  W7#3#3W~FV7WH  5&&5!"565 44	  -00 $ 2 01 
  3??3$$3 "/2	   f 
 .77!'-(?#02 /%'0=2! 8 H& W555"h."m3"l2"o5  /##/!"34/ ""34/ /  $$ !"78   4??4%%4 ""23	  (3@0K /88!#02 /%'- 9 H !L0X7#3#3XzBW7XH  4??4))4 23	  ,55!#02 /% 6 H  =0"m3"k1"k1 VG,,V?U0V 
  ==..= &&;<	  (3@0 -66!#02 /% 7 H !H,0C}0T #%%#!"23# ",/# ??  (Zt-L-L',66$7!"#02 /%2 7 H !M1 #**#34# ??	  )22!!#02 /%2 3 H !I-%%%%*G!$)!(33'!# /02%!!++ 4 H  !H, M  -66$7!#02 /%! 7 H !H,$Q(<(>Q'//NX7#3#3X~FW7XH.??!# /02# $#'%+$,&! @ H$ !K/##$4d; 4"&&':DA4))4 ""454 ""23   ##$5t< 5"&&';TB5**5 ""565 ""34   ##$8$? 8"&&'>E8!"898 ""67	   5##5!"565 ""34	  ?*o-.TTU 7KK% '$3#6#4#6#4$6'9)"/(3!% L $ ,55% '$3#4#6#4$6'9(3#)"/#%!! 6 $ !K/ **!!# /02	H !H,   ,,!"34, ,	  %%%????--I%Q!)  % ))-- !
 ,!!# /02H !K/$..!# /02+ / H !I-UUNCT4UG.88!#02 /% 9 H !N2T7??Tn=S.T  /88!#02 /% 9 H !H,TTNCS4TG -##-!"34- -	  /88!#02 /% 9 H !G+SSN?4SG 7##7!"237 7	  /88!#02 /% 9 H !K/WWNCV4WG 1##1!"671 1	  -66$7!#02 /%! 7 H !H,,66$7!#02 /%! 7 H !J.,66$7!#02 /%! 7 H !I-)AA /K "),G":.H+%+6w+?(,66$7!#02 /!% 7 H !L0 )??)!"67) )	   .##.!"78. .	  /88!#02 /% 9 H !J. 7##7!"56   6??6%%6 ""45	  *33!#02 /% 4 H !I-%%%%*G!$)!,66'$7!#02 /!% 7 H !L0 8??8!-08 ""67	  %  L  (Zt-L-L',66$7#! /!02&% 7 H !J.VVNCU4VG F##F!"56F F	  -66$7!#02 /%! 7 H !J. #''#!.1# ??	   1##1!"561 1	  -66$7!#02 /%! 7 H !G$=$==26N33
#'::%)*:%;N 4 %,  " ((#..  "#! /02+2H )   "2338%677=PH##$9:(  wx  
%%!!f 	& 	
   3	
 	

s7   #AG
4AG
(|?AG D+BAG G
AHG&AH H AHc            	        #    [         R                  " 5       n[        U 5      S:  a  U S   OUS   nSUS'   Sn [        [        /U Q70 UD6n[
        R                  " 5       n[        UR                  U5      nUR                  SU5      I Sh  vN n[        U[        5      (       d  [        U[        5      (       a$  [        U[        5      (       a  [        S0 UD6n	O+Un	O([         R                  " U5      (       a  UI Sh  vN n	OUn	UR                  SS5      SL d*  [        U	[        5      (       d  [        U	[        5      (       a%  [        [!        U	UUU S9UUUR                  S	5      S
9$ [        U	[        5      (       a  U	$ [         R                  " U	5      (       a
  U	I Sh  vN n	[        5       n
["        R$                  R&                  R)                  U
U	US9n
U
$  GNP N N>! [*         a  nU=(       d    Sn[-        UUUU US9eSnAff = f7f)zH
Implemented to handle async streaming for the text completion endpoint
r   r   Tr   Nr  F)r   r   r)  ra  r  )r  r   r)  r  )text_completion_responser   r)  r>  r?  r   )rD  rE  rJ  r   r  rP  rQ  rR  rS  rF  rT  r   rU  r   r   r=   rc  r   r  LiteLLMResponseObjectHandlerconvert_chat_to_text_completionrN  r   )ra  r   r=  r   r)  rZ  r[  r\  r]  r   r  r^  s               r   r  r    s     !!#D4y1}DG&/E F=;
888 &&(#CGGT2"2249JKKmT**j1/
 /
 -..1BMB(  //**H$H JJx'4/($?@@($788."2%(;	# $7%zz*:;
 
 ($:;;$$X..!)>'='?$'.}}'Q'Q'q'q)A!$7 (r ($
 ,+U L +2 *  
1=X 3 "
 	

sy   6HAG# GA2G# ?G A*G# *H+G# H G# "G!#8G# HG# G# !G# #
H
-HH

Hr  best_ofechor1  suffixc           
        ^^^^)^*^+ SS K n ST;   a0  TS   nTc  [        U[        5      (       a  UmTR                  S5        [	        5       m*0 m)Ub  UT)S'   Ub  UT)S'   Ub  UT)S'   Ub  UT)S'   Ub  UT)S'   Ub  UT)S'   Ub  UT)S	'   U	b  U	T)S
'   U
b  U
T)S'   Ub  UT)S'   Ub  UT)S'   Ub  UT)S'   Ub  UT)S'   Ub  UT)S'   Ub  UT)S'   Ub  UT)S'   Ub  UT)S'   Ub  UT)S'   Ub  UT)S'   [        TUUS9u  nnnnUS:X  Ga!  USL a  ST;  a  STS'   [        U [        5      (       a  SS Kn[        R                  " S5      m+[        U 5      S:  a  [        U S   [        5      (       a  U  Vs/ s H  nS PM     nnUUUU)U*U+4S jnUR                  R                  5        n [        U 5       V!V"s/ s H  u  n!n"U R                  UU!U"5      PM     n#n!n"[        UR                  R                  U#5      5       H  u  n!n$U$R!                  5       UU!'   M     UT*l        S S S 5        T*$ / n%[        U [        5      (       aG  [        U 5      S:  a8  [        U S   [        5      (       a   U  H  n&SU&S.n'U%R%                  U'5        M     O[        U [        5      (       a  SU S./n%OUS:X  d  US:X  d  US :X  d  US!:X  d  US":X  aW  [        U [        5      (       aB  [        U 5      S:  a3  [        U S   [        5      (       a  [&        R(                  " S#S$9  SU S./n%O[+        S%U  S&35      eTR                  S'S 5        Ub1  US:X  a+  U[,        R.                  ;  a  S(U-   mT)R                  SS 5        Tc  [1        S)5      eSTS*'   [3        TTU%S+.TDT)D6n(TR5                  S,S-5      SL a  U($ USL d*  TR5                  SS-5      SL d  [        U([6        5      (       a  [9        U(TUUS.9n(U($ [        U([8        5      (       a  U($ [        U([        5      (       a  U($ [,        R:                  R<                  R?                  U(T*S/9m*T*$ s  snf s  sn"n!f ! , (       d  f       T*$ = f)0Nr   enginer  r  r  r  r  r  r  r
  r1  r  r  r  r   r  r  r4  r  r   r)  r3  rP  Ttop_n_tokensr<  ztext-davinci-003c                    > T
R                  U5      n0 TETEn[        TTUSS.UD6nUR                  SS 5      T	S'   ST	S'   UR                  SS 5      T	S'   UR                  SS 5      T	S'   US   S	   $ )
Nr<  )r   r  r   rL  r  objectr  r   r  r   )decoder  r   )r  individual_promptdecoded_prompt
all_paramsr   ra  r   r   r  r  	tokenizers        r   process_prompt'text_completion.<locals>.process_prompt  s    %.%5%56G%HN!>F!>o!>J7F  $-$%8
 %8H 6>\\$5M,T29J,X6:B,,yRV:W,Y78@Wd8S,W5#I.q11r   )r  r  r>  ro  r  r9  r8  z\List of lists being passed. If this is for tokens, then it might not work across all models.)msgzVUnmapped prompt format. Your prompt is neither a list of strings nor a string. prompt=z;. File an issue - https://github.com/BerriAI/litellm/issuesr  ztext-completion-openai/z;model is not set. Set either via 'model' or 'engine' param.r  r   r   F)r  r   r  r)  )r   r  ) copyrF  r   r   r   rH   r  concurrent.futurestiktokenencoding_for_modelrJ  r   r   	enumeratesubmitas_completedresultr  r  rZ   r  rN  r   r  r  r   r   r=   r   r  r  r  ),r  r   r  r  r  r  r  r  r  r
  r1  r  r  r  r   r  r  r4  r  r   r   r)  ra  r   r  _engine_modelr  
concurrentxr  r  executorr  r  completed_futuresfuturer   prl  r   r  r  r  s,    `                    ``                 @@@r   r  r  D  s/   j 4 6"=Z55E

857&(O%,	""&$/@+,(2%&.
#(2%} #.>*+"&$*!!,:()$*!)4&#( "&&.
#)4&%,	"&1D-. >N/>:F( m+4<V+)*~& fd##% 334FGI6{Q:fQi#>#>+126aT6	22 2"  ''::< 5>f4E)4E0A0 !;LM4E & ) &/"**778IJ&	6 (.}}	!& 8A,4 = 0/ H&$CK!O
6!9c8R8RA%!4GOOG$  
FC	 	 #78  8+"g-"l2"&AA"&>>vt$$K!Ovay$''n	
 $78dekdl  mh  i
 	
 JJxx'???-6E 5t<}VWW $F 
  	
 H zz-'4/$::h&$.h 344.&) 3	
 	H9	:	: (233 	22RR%= 	S 	
  $#a 3() =< 0/s%   'P1P<) P6	AP<6P<<
Q
adapter_idc                   #     Sn[         R                   H  nUS   U :X  d  M  US   nM     Uc)  [        SR                  U [         R                  5      5      eUR	                  US9n[        S0 UD6I Sh  vN nSn[        U[        5      (       a  UR                  US9n[        U[        5      (       a  UR                  US9nU$  NP! [         a  nUeSnAff = f7f)	z<
Implemented to handle async calls for adapter_completion()
NrL  adapterHNo matching adapter given. Received 'adapter_id'={}, litellm.adapters={}r  r   r  r   )r   adaptersr  r  !translate_completion_input_paramsr   rF  r   "translate_completion_output_paramsr=   ,translate_completion_output_params_streamingrN  )r  r   translation_objr8  
new_kwargsr   translated_responser^  s           r   aadapter_completionr  R  s     26$$DDzZ'"&y/ % "Zaa 0 0  %FFfFU
DOD]R\D]>]  	 h.."1"T"T! #U # h 344LL&. M    #" ?^   sA   CC	 AC	 6C7AC	 CC	 	
CCCCc            	         #    SSK Jn  [        [        [        [        [
        [        [        [        4   [        [           4   4   UR                  " S0 U DSS0D65      nUI S h  vN $  N7f)Nr   )"GenerateContentToCompletionHandler	_is_asyncTr   )%litellm.google_genai.adapters.handlerr  r   r   r
   r   r   r   r   bytesgenerate_content_handler)r   r  coros      r   aadapter_generate_contentr  {  se      Y#sE$sCx.-2F"FGGH*CC 	
	
 $	
D ::s   A#A,%A*&A,c                    S n[         R                   H  nUS   U :X  d  M  US   nM     Uc)  [        SR                  U [         R                  5      5      eUR	                  US9n[        S0 UD6nS n[        U[        5      (       a  UR                  US9nU$ [        U[        5      (       d  [        R                  " U5      (       a  UR                  US9nU$ )NrL  r  r  r  r  r  r   )r   r  r  r  r  r   rF  r   r  r=   inspectisgeneratorr  )r  r   r  r8  r  r   r  s          r   adapter_completionr    s     /3O  :#"9oO ! V]]G,,
 	
 !BB&BQJ:D:Rz:RH  (M**-PP Q 
  
H1	2	2g6I6I(6S6SHH"* I  	 r   r  c                    U=(       d9    [         R                  =(       d"    [         R                  =(       d    [        S5      nUR	                  SS 5      nUR	                  SS 5      nUc,  Ub  [
        R                  " X$S9nO[
        R                  " US9nUb  UR                  R                  XS9nOUR                  R                  U S9nUR                  5       n[         R                  R                  R                  US9$ )	Nr  r4  r   )r   r   )r   r  r   r  r;  )r   r   r  r9   r   r>  OpenAImoderationsr   
model_dumpr  r  convert_to_moderation_response)r  r   r   r   r4  openai_clientr   response_dicts           r   
moderationr    s    
 	 	,??	,	, *+	  zz*d+HJJx.M"MM'MM"MM':M ,,33%3M ,,33%3@"--/M==55TT% U  r   c                   #    SSK Jn  U=(       d9    [        R                  =(       d"    [        R                  =(       d    [        S5      n[        S0 UD6nUR                  SS 5      nS n [        R                  " U=(       d    SUUR                  UR                  S9u  nnn	nUR                  SS 5      n
U
b  [        X5      (       d)  [        R                  SUUR                  =(       d    US	9nOU
nU=(       d$    [        R                  R                  R                   nUb%  UR#                  UUR                  S
S 5      0 0 UEUS9  Ub"  UR$                  R'                  XS9I S h  vN nO!UR$                  R'                  U S9I S h  vN nUR)                  5       n[        R*                  R,                  R/                  US9$ ! [        R                   a     GN9f = f Nx NX7f)Nr   )AsyncOpenAIr  r*  r  r  r   T)is_asyncr   r4  r  r  r  r  r  r   )r>  r  r   r   r  r9   r:   r   rH   r4  r  rF  r  _get_openai_clientr   OPENAIr  r  r  r   r  r  r  r  )r  r   r   r)  r   r  r  r*  _dynamic_api_base_dynamic_api_keyr  _openai_clientr   r  s                 r   amoderationr    s     # 	 	,??	,	, *+	  +4V4O7=zzt8  $$+2 3$--#++	
	
 JJx.MJ}$J$J '>&P&P$--B1B 'Q '
 ' .R1E1E1L1L1R1R&88FD) !4 	9 	
 '33:::TT'33:::GG"--/M==55TT% U  E "" < UGsI   A(G%+9G $CG%(G!)!G%
G#;G%GG%GG%#G%c            	        #    [         R                  " 5       n[        U 5      S:  a  U S   OUS   nSUS'   UR                  SS5      nSn [	        [
        /U Q70 UD6n[        R                  " 5       n[	        UR                  U5      n[        X1R                  SS5      S9u  p  n	UR                  SU5      I Sh  vN n
[        U
[        5      (       a  [        S0 U
D6nOX[        U
[        5      (       a  U
nO@[         R                  " U
5      (       a  U
I Sh  vN nOUR                  SU5      I Sh  vN n[        U[        5      (       d  [        S	[!        U5       35      eUbC  [        U["        5      (       d.  Ub+  [%        US
S5      nUc  ['        U5      nUb  [)        US
U5        U$  N N N|! [*         a  nU=(       d    Sn[-        UUUU US9eSnAff = f7f)U
Calls openai + azure whisper endpoints.

Allows router to load balance between them
r   r   TatranscriptionfileNr4  r   r4  zVInvalid response from transcription provider, expected TranscriptionResponse, but got durationr>  r?  r   )rD  rE  rJ  r   r   transcriptionrP  rQ  rR  rH   rS  rF  rT  r   rU  r  typer   rr  r%   r  rN  r   )ra  r   r=  r   r  r)  rZ  r[  r\  rY  r]  r   existing_durationcalculated_durationr^  s                  r   r  r    s     !!#D4y1}DG&/E#F::fd#D2
}6t6v6 &&(#CGGT2'7**Z">(
$1
 #2249JKKmT**,=}=H'<==$H  //**H "11$8IJJH($9::himnviwhxy   x33  !(*d C (&@&F#&2Hj2EF9 L + K(  
1=X 3 "
 	

sc   AGA0F3 ;F-<AF3 F/F3 4F15A7F3 ,G-F3 /F3 1F3 3
G=GGGr  language)r  rg  srtverbose_jsonvtttimestamp_granularities)wordsegmentr   c                    UR                  SS5      nUR                  SS5      nUR                  SS5      nUR                  SS5      nUR                  SS5      nUR                  S5      nUR                  S	S5      nUR                  S
/ 5        [        U5      nUR                  SS5      nU(       a  [        U5      UR                  S'   Uc  [
        R                  n[        R                  R                  5       n[        U UU
U	S9u  pnn
Ub  Un	[        S"U UUUUUUS.UD6n[        S"0 UD6nUR                  U U0 UUUUS0 S.UEUS9  Sn[        R                  " U [!        U5      S9nUS:X  a  U
=(       d"    [        R"                  =(       d    [%        S5      n
U=(       d"    [        R&                  =(       d    [%        S5      nUR                  SS5      =(       d    [%        S5      nU	=(       d9    [        R(                  =(       d"    [        R*                  =(       d    [%        S5      n	UUS	'   [,        R/                  U UUUUUUUU
U	UUUUS9nGOIUS:X  d  U[        R0                  ;   a  U
=(       d=    [        R"                  =(       d&    [3        S5      =(       d    [3        S5      =(       d    Sn
[        R4                  =(       d    [3        S5      =(       d    S[
        l        U	=(       d9    [        R(                  =(       d"    [        R6                  =(       d    [3        S5      n	[8        R/                  U UUUUUUUUU
U	UUS9nOSUbP  [:        R/                  U UUUUUUb,  [=        U[>        5      (       d  [=        U[@        5      (       a  UOSUUUU
U	U0 US9nUb@  [=        U[B        5      (       d+  [E        US S5      nUc  [G        U5      n U b  [I        US U 5        Uc  [K        S!5      eU$ )#r  r  Nr  r  r  r  Fr*  r!  tagsr   r  )r   r  r  r  r  r   r)  r  r  r  r  r  stream_responser  r  ro  r  r	  r  r  r  )r   
audio_filer  r  r  r   r   r  r4  r   r  r  r   r  r>  r  r  r  r2  r  )r   r  r  r  r  r   r   r  r   r4  r   r  r  )r   r  r  r  r  r  r   r   r   r  r4  r   r)  r  r  r  z8Unmapped provider passed in. Unable to get the response.r   )&r   r   rJ   r   model_call_detailsr>  DEFAULT_MAX_RETRIESr   r  r   rH   rM   r   r  r>   'get_provider_audio_transcription_configr   r4  r9   r  r   r  azure_audio_transcriptionsaudio_transcriptionsr  rN   r   r  openai_audio_transcriptionsr  rF  r4   r3   r   rr  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  r  r  s!                                    r   r  r  ]  sR   6 jj!2D9O!::&<dCL$/Jzz*d+HZZ 0%8N-3ZZ8M-NJJ5M
JJvr=fE 	

8T"  ;>v;..x800]]88:N<L/	=9E "!7 	' 7/	 	O -6v644.$8$  $!
 
 0 5 $ 	  ,SS12O
 g%Sw//S>BR3S U7..U.AT2U 	  $4d; 
~@

  //  / o.	 	 ,9(-BB+))+#)#. C 
  
	(wBBB  +++,+ +,+ + 	    /0 	 bW__b0B0BbjQaFb.CC+))+#+. D 
 
	$(==+.)) %v{33!&*:;;	  #+ 3+/ > 
6 Jx$C$C#Hj$?$"<T"B".*.ABSTTOr   c            	      f  #    [         R                  " 5       n[        U 5      S:  a  U S   OUS   nSUS'   UR                  SS5      n [	        [
        /U Q70 UD6n[        R                  " 5       n[	        UR                  U5      n[        X1R                  SS5      S9u  p  nUR                  SU5      I Sh  vN n	[         R                  " U	5      (       a  U	I Sh  vN n
U
$ UR                  SU5      I Sh  vN n
U
$  NG N$ N
! [         a  nU=(       d    S	n[        UUUU US
9eSnAff = f7f)z
Calls openai tts endpoints.
r   r   Taspeechr)  Nr4  r  r>  r?  )rD  rE  rJ  r   r   speechrP  rQ  rR  rH   rS  rU  rN  r   rU  s               r   r  r  2  s=    
 !!#D4y1}DG&/EF9 **%:DA
v/// &&(#CGGT2'7**Z">(
$1
 #2249JKK}--**H  "11$8IJJH L* K 
1=X 3 "
 	

sm   AD1	A0D 9D:$D DD $D1%D :D;D  D1D D D 
D.D))D..D1voicer   projectr  speedinstructionsr  r  c                    UR                  SS 5      nUR                  SS 5      nUR                  SS 5      nUR                  SS 5      nUR                  SS 5      n[        U UUS9u  n nnnUR                  S/ 5        0 nUb  UUS'   Ub  UUS	'   Ub  UUS
'   U
c  [        R                  n
Uc'  [        R
                  =(       d    [        R                  n[        S;0 UD6n[        R                  " U [        R                  " U5      S9nUb  UR                  U UUSUS9u  nn[        [        UR                  S5      5      nUR                  U UUUUUU	S 0 S.UEUS9  S nUS:X  d  U[        R                   ;   GaW  Ub  [#        U[$        5      (       d  [        R&                  " SU US9eU=(       d=    [        R(                  =(       d&    [+        S5      =(       d    [+        S5      =(       d    SnU=(       d9    [        R,                  =(       d"    [        R.                  =(       d    [+        S5      nU=(       d+    [        R0                  =(       d    [+        S5      =(       d    S nU=(       d+    [        R2                  =(       d    [+        S5      =(       d    S nU=(       d    [        R4                  n[6        R9                  U UUUUUUUUU
UUS9nGO{US:X  Ga  U R;                  S5      (       aY  SSKJn  Uc  [        R&                  " SU US9e[        UU5      nUR@                  " S;U UUUUUU
U[B        U=(       d    SUUS .UD6nGOUb  [#        U[$        5      (       d  [        R&                  " S!U US9eU=(       d"    [        R(                  =(       d    [+        S"5      nU=(       d"    [        RD                  =(       d    [+        S#5      nU=(       dK    [        R,                  =(       d4    [        RF                  =(       d    [+        S$5      =(       d    [+        S%5      nUR                  S&0 5      R                  S'S 5      =(       d    [+        S(5      n UR                  S)S 5      n!U(       a  UUS'   [H        R9                  U UUUUUUU U!UUU
UUUS*9nGOUS+:X  d  US,:X  Ga#  [K        S;0 UD6n"U"R(                  =(       d    S-nU"RL                  =(       d"    [        RL                  =(       d    [O        S.5      n#U"RP                  =(       d"    [        RP                  =(       d    [O        S/5      n$U"RR                  =(       d    [O        S05      n%Ub.  [#        U[T        5      (       d  [        R&                  " S1U 3U US9eS2U ;   a%  S3S4K+J,n&  U&R[                  U UUUUU=(       d    0 UUS59$ [\        R9                  UU%U#U$U
UU UUUUUS69nOUS2:X  a%  S3S4K+J,n&  U&R[                  U UUUUU=(       d    0 UUS59$ US7:X  aW  SS8K/J0n'  Uc  [        R&                  " S9U US9e[        U'U5      n(U(R@                  " S;U UUUUUU
U[B        U=(       d    SUUS .UD6nUc)  [c        S:Re                  U[        Rf                  5      5      eU$ )<Nr  r  r  r!  r  r3  r   r  r  r  r  F)r   r  r  r  r   r*  r  r  r>  z;'voice' is required to be passed as a string for OpenAI TTSro  r  r  r  r  r2  OPENAI_PROJECT)r   r  r  r  r   r4  r   r  r   r   r   r  ro  zspeech/r   )AzureAVATextToSpeechConfigz,Azure Speech Service configuration not found)r   r  r  r  r  r  r   r!  r  r  r4  r   z:'voice' is required to be passed as a string for Azure TTSr  r	  r
  r  r  r  r  r  )r   r  r  r  r   r4  r  r  r  r   r   r   r   r  r  ru  rg  r  rk  rn  rq  zN'voice' is required to be passed as a dict for Vertex AI TTS, passed in voice=rh  rY   )#speech_to_completion_bridge_handler)r   r  r  r  r  r  r  r)  )r  ro  ri  rl  r   r4  r   r  r  r  r   r  runwayml)RunwayMLTextToSpeechConfigz/RunwayML Text-to-Speech configuration not foundz@Unable to map the custom llm provider={} to a known provider={}.r   )4r   rH   r   r   r  r   r>  r  r   r>   "get_provider_text_to_speech_configr   map_openai_paramsr   r   r  r  rF  r   r  r4  rN   r   r  r   r  r  r  audio_speechrx  0litellm.llms.azure.text_to_speech.transformationr  dispatch_text_to_speechr  r  r  r  r:   ri  r9   rl  ro  rT  4endpoints.speech.speech_to_completion_bridge.handlerr  r  vertex_text_to_speech3litellm.llms.runwayml.text_to_speech.transformationr  rN  r  provider_list))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  r  r  text_to_speech_provider_configr  r   r  azure_configr  r  generic_optional_paramsrj  rm  ro  r  r  runwayml_configs)                                            r   r  r  [  sV   , ::fd#D%+ZZ0A4%HO!::&<dCJJ5ML$/J<L)<x=9E JJvrO"-<)*#( *6'))))GV-G-G,6v6 	@@))*=>	
 # &1!?!Q!Q+ "R "
  4I)JKK,,'.$8$  $!
 
 0 -  6:Hx''"E"EE=E3!7!7))U0   +++,+ +,+ + 	  ,,!!, *+	 	  ##/0 	 	  *+ 	 	 ,W__*77+%# 8 
 
	'I&&
 .5--J!4   *,JL $;;  /$7'+&;(5! H" }Zs%;%;--X!4 
  S7#3#3SzBR7SH%_)<)<_
K^@_K  /??/$$/ 45/ o.  -<,?,?b,Q,U,U $- -  
 '-jj1JD&Q#3@0-:: /!'-(?)'2 ; H" 
	+/BFV/V"6"@"@*339r#22 2%%201 	 $33 3&&312 	 $66 645 	
 Zt%<%<))hinhop0 
 u 7== /22'$7 > 	 	 )551,.+# 6 
 
	(	
 399+.Mr# 3 : 	
 		
 

	*	

 *1))I0  &(F
 #:: 
+ 3#'"7$u
 
  NUU#W%:%:
 	

 Or   model_paramsr  )r   r   rT  r  audio_transcriptionimage_generationvideo_generationbatchrerankrealtimer  ocrc                   #    SSK Jn  [        S/ SS[        [        R
                  " 5       5      [        R                  R                  5       [        [        R
                  " 5       5      SS9nXPS'   UR                  U S	9n  U R                  S
S5      nUc  [        S5      eU[        R                  ;   a%  Uc"  [        R                  U   R                  S5      n[        US9u  pg  nU[        R                  ;   a%  Uc"  [        R                  U   R                  S5      nSS0U S'   U=(       d    SnSU;   a  UR                  UUU US9I Sh  vN $ UR                  UUU UUS9n	X;   aB  X   " 5       I Sh  vN n
[!        U
S0 5      R                  S0 5      =(       d    0 n[#        U5      $ [        SU S35      e Nm NF! [         a  n[$        R&                  " 5       n[)        U[        5      (       a  USS nUc  SS[        U5       SU 30s SnA$ [        U5      S-   U-   nUR*                  R                  S5      nUUS.s SnA$ SnAff = f7f) z
Support health checks for different providers. Return remaining rate limit, etc.

Returns:
    {
        "x-ratelimit-remaining-requests": int,
        "x-ratelimit-remaining-tokens": int,
        "x-ms-region": str,
    }
r   )HealthCheckHelpersr  Fr   T)r   r   r  	call_typer  
start_timefunction_idlog_raw_request_responser*  )r$  r   Nzmodel not setr  r  zno-cachecacher   *)r   r)  r$  r*  )r   r)  r$  r  r  r  r  zMode zI not supported. See modes here: https://docs.litellm.ai/docs/proxy/healthi  errorzerror:zz. Missing `mode`. Set the `mode` for the model - https://docs.litellm.ai/docs/proxy/health#embedding-models  
stacktrace: z
stack trace: raw_request_typed_dict)r4  r5  )/litellm.litellm_core_utils.health_check_helpersr-  r   r   r   uuid4datetimenow;_update_model_params_with_health_check_tracking_informationr   rN  r   
model_costrH   ahealth_check_wildcard_modelsget_mode_handlersrr  r)   	traceback
format_excrF  r  )r$  r  r  r  r-  r*  r   r)  rY  mode_handlersr   _response_headersr^  stack_traceerror_to_returnr5  s                   r   ahealth_checkrD    s    > S "DJJL)$$((*

%!%	 +>&'VV% 	W 	
 >
+//>=O,,G&&&4<%%e,008D+;%+H(AqG&&&4<%%e,008D !
W ~v%<+II$7)$7	 J    +<< 3% = 
  +133I 	#3R8<<YKQr  11BCCvfg /  4  
**,k3''%et,K<6#a&  *e  fq  er  s  a&#44{B!4!G!G!K!K$"

 %&<
 	
!
sz   A>ICF? F;F? I$F? 6F=74F? +I,F? =F? ?
I	AI	II0I	II	IIc                      [         R                  " U 5        [        R                  (       a  [	        U 5        g g ! [
         a     g f = fr   )rZ   rK  r   set_verboseprintrN  )print_statements    r   r`  r`  "  s=    _-/"  s   6: 
AAc                      [         R                  b&  [        [         R                  5      n[        S0 U DUD6$ [	        S5      e)Nz`No config path set, please set a config path using `litellm.config_path = 'path/to/config.json'`r   )r   config_pathrR   r   r  )r   config_argss     r   config_completionrL  +  sA    &&w':':;2F2k22n
 	
r   chunksc           
         U S   S   nU S   S   nU S   S   nU S   S   nU S   R                  SS 5      nU S   S   S   S	   nU S   S   S   S
   nUUUUUS SUUS./S S S S.S.n	/ n
U  H_  nUS   nU HQ  nUc  M  [        US5      (       d  M  UR                  S5      c  M/  UR                  S5      nU
R                  U5        MS     Ma     SR                  U
5      nXS   S   S'   [	        U5      S:  a  O  [        XQS9U	S   S'   [        UUSS9U	S   S'   U	S   S   U	S   S   -   U	S   S'   [        S0 U	D6$ ! [         a    [        S5        SU	S   S'    NRf = f)Nr   rL  r  r  r   system_fingerprintr  finish_reasonr  )rg  r  r  rQ  r  )rL  r  r  r   rO  r  r  rg  r  r   r  r  z1token_counter failed, assuming prompt tokens is 0T)r   rg  count_response_tokensr  r  r   )	r   r  r  r  rJ  rU   rN  r`  r   )rM  r   rL  r  r  r   rO  rQ  r  r   content_listchunkr  choicer  combined_contents                   r   $stream_chunk_builder_text_completionrW  6  s    
4BAYx FQi	"G1IgE';TB2Jy)!,_=Mbz)$Q'
3H 0 $!.	
 "!% 
H( L	"F"FF++JJv&2 **V,##G,   ww|, &6Y6"
q /-:.
/* .;".HW)* 	/*Xg->?R-SS Wn% "-H-- 	/ 	IJ-./*	/s   :D< <EEr  c                 t
    U c  [         R                  " SSSSS9eU (       d  g [        X5      nUR                  n [	        U 5      S:X  a  g [        U S   S   S   [         R                  R                  5      (       a	  [        XS9$ U S   S   nUR                  U 5      nU  Vs/ s H;  n[	        US   5      S:  d  M  S	US   S   S
   ;   d  M(  US   S   S
   S	   c  M9  UPM=     n	n[	        U	5      S:  aO  UR                  U	5      n
[        [        UR                  S   5      nS UR                  l        XR                  l        U  Vs/ s H;  n[	        US   5      S:  d  M  SUS   S   S
   ;   d  M(  US   S   S
   S   c  M9  UPM=     nn[	        U5      S:  aN  [        [        UR                  S   5      nS UR                  l        UR#                  U5      UR                  l        U  Vs/ s H;  n[	        US   5      S:  d  M  SUS   S   S
   ;   d  M(  US   S   S
   S   c  M9  UPM=     nn[	        U5      S:  a  UR'                  U5      US   S   S   S'   U  Vs/ s H;  n[	        US   5      S:  d  M  SUS   S   S
   ;   d  M(  US   S   S
   S   c  M9  UPM=     nn[	        U5      S:  a  UR)                  U5      US   S   S   S'   U  Vs/ s H;  n[	        US   5      S:  d  M  SUS   S   S
   ;   d  M(  US   S   S
   S   c  M9  UPM=     nn[	        U5      S:  a  UR+                  U5      US   S   S   S'   U  Vs/ s H;  n[	        US   5      S:  d  M  SUS   S   S
   ;   d  M(  US   S   S
   S   c  M9  UPM=     nn[	        U5      S:  a  US   S   S   S
   S   nUUS   S   S   S'   U  Vs/ s H;  n[	        US   5      S:  d  M  SUS   S   S
   ;   d  M(  US   S   S
   S   c  M9  UPM=     nn[	        U5      S:  a=  [        [        UR                  S   5      nUR-                  U5      UR                  l        [1        U5      nUR3                  U5      nUR5                  U UUUUS9n[7        USU5        [         R8                  (       a  Ub  [7        USUR;                  US95        U$ s  snf s  snf s  snf s  snf s  snf s  snf s  snf ! [<         aJ  n[>        R@                  " SRC                  [E        U5      5      5        [         R                  " SSSSS9eS nAff = f)Nrf  z=Error building chunks for logging/streaming usage calculationr  )re  rl  rh  r   r   r  )rM  r   r   r  deltar   r  rl  thinking_blocksreasoning_contentannotationsr	  )rM  r   completion_outputr   reasoning_tokensr  cost)r  zAlitellm.main.py::stream_chunk_builder() - Exception occurred - {})#r   rp  ri   rM  rJ  rF  r  r   rW  build_base_responseget_combined_tool_contentr   r   r  rl  r  r  "get_combined_function_call_contentr   get_combined_contentget_combined_thinking_contentget_combined_reasoning_contentget_combined_audio_contentr	  r-   count_reasoning_tokenscalculate_usager  include_cost_in_streaming_usage_response_cost_calculatorrN  rZ   	exceptionr  r   )rM  r   r/  end_timer  	processorr   r   rT  tool_call_chunkstool_calls_listr  function_call_chunkscontent_chunksrZ  reasoning_chunksannotation_chunksr\  audio_chunksr]  r^  r  r^  s                          r   stream_chunk_builderru    s   Y
>""W	  "64	!! v;!1Ii #W]]%>%>
 
 8  q	'"008  
5#$q(  i 0 3G <<  i #G,\:	  	 
  1$'AABRSO7H$4$4Q$78G&*GOO#)8OO&   
5#$q(   5#3A#6w#??  i #G,_=	  	  
 #$q(7H$4$4Q$78G&*GOO#<<=QR OO)  
5#$q(  U9-a099  i #G,Y7	  	 
 ~"..~> Y"9-i8  
5#$q(  "U9%5a%8%AA  i #G,->?	  	 
 !#77H Y"9-.?@  
5#$q(  $uY'7':7'CC  i #G,-@A	  	 
  1$889IJ Y"9-.AB  
5#$q(  y!1!!4W!==  i #G,];	  	 
  !A%+A.y9!<WEmTK?JHY"9-m<  
5#$q(  5+A.w77  i #G,W5	  	 
 |q 7H$4$4Q$78G$-$H$H$VGOO!;HE$;;HE))/- * 
 	'5) 22{7Nv{DDHDU a
 





B  
  OVVA	

 S	
 	

s  !S# &S# :S# S# #S =S S S %A$S# 	S#S4SSA#S# .S
S
S
*S
02S# "S<SSS$2S# S0SSS2S# 
S$S5SS4S#  SS+S<SB=S#  #S# #
T7-AT22T7r   )FNr  NFNNN)NNNNNNNNNNNNNNNNNNNNN)NN)NNN)NNNNNNr   NNNNN)NNNNNNNNNNNNNNNN)r   NN)NNNN(|  rD  rP  r8  r  r  r  randomsysr  r>  r  r   r  r   r   r   r  r   	functoolsr   typingr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   litellm._uuidr   aiohttpr   dotenvrs  r>  r  pydanticr   typing_extensionsr   r   r   r   r   r   r    litellm.constantsr!   r"   litellm.exceptionsr#   "litellm.integrations.custom_loggerr$   ,litellm.litellm_core_utils.audio_utils.utilsr%   r&   %litellm.litellm_core_utils.dd_tracingr'   8litellm.litellm_core_utils.get_provider_specific_headersr(   -litellm.litellm_core_utils.health_check_utilsr)   r*   *litellm.litellm_core_utils.litellm_loggingrG  )litellm.litellm_core_utils.mock_functionsr+   r,   8litellm.litellm_core_utils.prompt_templates.common_utilsr-   litellm.llms.base_llmr.   r/   )litellm.llms.base_llm.base_model_iteratorr0   !litellm.llms.bedrock.common_utilsr1    litellm.llms.cohere.common_utilsr2   &litellm.llms.custom_httpx.http_handlerr3   r4   #litellm.llms.vertex_ai.common_utilsr5   r6   litellm.realtime_api.mainr7   litellm.secret_managers.mainr8   r9   litellm.types.routerr:   litellm.types.utilsr;   r<   litellm.utilsr=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   _loggingrZ   caching.cachingr[   r\   r]   litellm_core_utils.core_helpersr^   !litellm_core_utils.fallback_utilsr_   r`   0litellm_core_utils.prompt_templates.common_utilsra   rb   +litellm_core_utils.prompt_templates.factoryrc   rd   re   rf   rg   rh   0litellm_core_utils.streaming_chunk_builder_utilsri   llms.anthropic.chatrj   llms.azure.audio_transcriptionsrk   llms.azure.azurerl   rm    llms.azure.chat.o_series_handlerrn   llms.azure.completion.handlerro   llms.azure_ai.embedrp   llms.bedrock.chatrq   rr   llms.bedrock.embed.embeddingrs    llms.bedrock.image.image_handlerrt   llms.bytez.chat.transformationru   !llms.clarifai.chat.transformationrv   !llms.codestral.completion.handlerrw   llms.cohere.embedrx   cohere_embed!llms.custom_httpx.aiohttp_handlerry   "llms.custom_httpx.llm_http_handlerrz   llms.custom_llmr{   r|   llms.databricks.embed.handlerr}   llms.deprecated_providersr~   r   llms.gemini.common_utilsr   llms.groq.chat.handlerr   llms.heroku.chat.transformationr   "llms.huggingface.embedding.handlerr   !llms.lemonade.chat.transformationr   llms.nlp_cloud.chat.handlerr   r  llms.oci.chat.transformationr   llms.ollama.completionr  llms.oobabooga.chatr   llms.openai.completion.handlerr   $llms.openai.image_variations.handlerr   llms.openai.openair   "llms.openai.transcriptions.handlerr   llms.openai_like.chat.handlerr   "llms.openai_like.embedding.handlerr   !llms.ovhcloud.chat.transformationr   llms.petals.completionr  llms.predibase.chat.handlerr   llms.replicate.chat.handlerr  llms.sagemaker.chat.handlerr   !llms.sagemaker.completion.handlerr   llms.vertex_air   8llms.vertex_ai.gemini.vertex_and_google_ai_studio_geminir   <llms.vertex_ai.gemini_embeddings.batch_embed_content_handlerr   8llms.vertex_ai.image_generation.image_generation_handlerr   6llms.vertex_ai.multimodal_embeddings.embedding_handlerr   4llms.vertex_ai.text_to_speech.text_to_speech_handlerr   ,llms.vertex_ai.vertex_ai_partner_models.mainr   2llms.vertex_ai.vertex_embeddings.embedding_handlerr   'llms.vertex_ai.vertex_gemma_models.mainr   'llms.vertex_ai.vertex_model_garden.mainr   llms.vllm.completionr
  llms.watsonx.chat.handlerr   llms.watsonx.common_utilsr   types.llms.anthropicr   types.llms.openair   r   r   r   r   r   r   r   types.utilsr   r   r   r   r   r   r   r   r   get_encodingr  r   r   r   r   r   r   r   r   r   r  r  r	  openai_image_variationsgroq_chat_completionsr  r  r  r  r  r  r  r  r  r  r  bedrock_image_generationr  r  r  vertex_image_generationr  r  r  r  r  r   r	  r  r  r  r  r  sagemaker_chat_completionr  heroku_transformationoci_transformationr  r  r   rN  rT  MOCK_RESPONSE_TYPEr   r   r   r   wrapr   r   r  r  r   rc  rz  r~  r  rC  r}  r  r  r  rN  rQ  rS  rT  r  r  r  r  r  r  r  r  r  r  r  r  rD  r`  rL  rW  ru  r   r   r   <module>r     s        	  
    H H      $ %      &   6 ; 9 T H ? < P = H 5 E       > % F F ;  M 8 D N I > 1 = : D ; = F 6 D B > E 8 : 6 = D A P 7 5 * @ N 4 H @ J A = @ P = ; 0 O X O O H N N 9 9 9 6 6 8 8	 	 	 	 	
 
 
 
 
 
   / 3	 	 	 	 	 /0 .0 68 68 *, %' 46 ,. 79 ,. 46 (* 46 46 #5#7  $& 13 " "$ 79 /1 /1 (=(? %24 &?&A #-/ ,. 24 35 13 *, 02 02 &( (* "_ ,. ,. 3	4@SST 7 7 	O 	O $ $   $#'+/#'!!%)	 $+/9=AE04(,)-!%>B .2*.#"& 	<@'+"&"!%!!%$(15;?04_I
I
 I
 ~	I

 C=I
 eE3J'(I
 %I
 E?I
 }I
 TNI
 TNI
 I
 $C=I
 456I
  =>!I
" ,-#I
$ uo%I
&  'I
( )I
* 3-+I
. eD$y/$9:;/I
0 3-1I
2 D>3I
4 %T	*+5I
6 "$7I
8 tn9I
: 3-;I
> EF?I
D  789EI
F  }GI
H 3-II
L smMI
N #OI
P c]QI
R SI
T D>UI
X -.YI
Z !!78[I
^ _-_I
b =--.cI
  I
X
( *.8
i(8
8
 "#8
v
4.
eE3567
 

4.
eE3567
 
$eS%--&? @ $-E%emm2K,L - #2J&*#(:>_J_J_J TN_J }	_J
 ./_J d^_J 4._J eE3567_JD 498  :>#'!!%)	+/ $9=AE04(,)-!% 	<@>B .2#"&*.;?$('+"& $#'"!%!!%1504aU,
U,
 U,
 eE3567	U,

 %U,
 E?U,
 }U,
 TNU,
 TNU,
 $C=U,
 U,
 456U,
 =>U,
 ,-U,
  uo!U,
"  #U,
$ %U,
& 3-'U,
* EF+U,
0  7891U,
2 eD$y/$9:;3U,
4 3-5U,
6 D>7U,
8 %T	*+9U,
: tn;U,
< 3-=U,
> "$?U,
@ !!78AU,
D D>EU,
F  }GU,
H 3-IU,
L ~MU,
N C=OU,
R smSU,
T #UU,
V c]WU,
X YU,
\ -.]U,
` _-aU,
d =--.eU,
  U,
pX7@=> <
): <
 <
D 
  $%)"!%!"! 	
 c] sm # c] sm  3-$ %( sC**+) 
2 
  $%)"!%!"!$ "'% 	
 c] sm # c] sm  3-$ %( ) 
4   $%)"!%!"!y
 	y

 c]y
 smy
 #y
 c]y
 smy
 y
 3-y
$ iS2C(CDDE%y
 y
z F

!#>>?F
 F
R 
   	 	 	 	 	 	 	 	 	!%) 	#'! 	"!%!!%)-aG$T%T%T#Y"7889::G$ C=	G$
 G$ G$  G$ S#XG$" #G$( )G$. /G$4 5G$: c49n;G$@ TNAG$B TNCG$D EG$J %KG$L E?MG$N OG$V smWG$X #YG$Z c][G$\ ]G$` "#aG$ G$Z&&eI==>?&R
4S>=//0  eI==>? N GK}6>sm@   !)-	EEC=E c]E "#	E E EV >
-B >
 >
B 
 #  	JN!%!"!%!%%QQ
Q sm	Q
 SMQ <=Q &d73D+E&FGQ #Q 3-Q c]Q smQ  #!Q" ##Q(  )C6K,K"LLM)Q Qh %
&@ %
 %
P  )-!"!%"&!!%#59%)"&")-"%GGG E#t)$%G c]	G
 smG #G 3-G c]G #G tnG eE5==012G c]G C=G 3-G  d^!G" "##G$ d^%G(  )G G|
 	  't
t

	
t
$ SM%t
& D>'t
r
 .2G.G.$TNG.G.X  $%)`
`
tn`

 '"`
 eM#99:;`
r   