
    g
                         d Z ddlmZmZmZmZmZ ddlmZ ddl	m
Z
mZ ddlmZ ddlmZ ddlmZ dd	lmZ d
dlmZ ddlmZ  G d dee      Zy)z4
Handles the chat completion request for Databricks
    )CallableListOptionalUnioncast)Timeout)AsyncHTTPHandlerHTTPHandler)AllMessageValues)CustomStreamingDecoder)ModelResponse   )OpenAILikeChatHandler   )DatabricksBase   )DatabricksConfigc                        e Zd Z fdZdddddddddd	dedededed	ed
edede	e   dede	e   de	e
eef      de	e
eef      de	e   de	e   def fdZ xZS )DatabricksChatCompletionc                 $    t        |   di | y )N )super__init__)selfkwargs	__class__s     Y/var/www/openai/venv/lib/python3.12/site-packages/litellm/llms/databricks/chat/handler.pyr   z!DatabricksChatCompletion.__init__   s    "6"    NF)	acompletionlitellm_params	logger_fnheaderstimeoutclientcustom_endpointstreaming_decoderfake_streammodelmessagesapi_basecustom_llm_providercustom_prompt_dictmodel_responseprint_verboseapi_keyoptional_paramsr"   r#   r$   r%   r&   r'   c                :   t               j                  t        t        t           |      |      }| j                  ||	d||      \  }}|j                  d      du rt               j                  |      }nd}t        | %  |||||||||	|
|||||||d||      S )N)r)   r(   chat_completions)r*   r/   endpoint_typer%   r"   streamTF)r(   r)   r*   r+   r,   r-   r.   encodingr/   logging_objr0   r   r    r!   r"   r#   r$   r%   r&   r'   )
r   _transform_messagesr   r   r   databricks_validate_environmentget_should_fake_streamr   
completion)r   r(   r)   r*   r+   r,   r-   r.   r5   r/   r6   r0   r   r    r!   r"   r#   r$   r%   r&   r'   r   s                        r   r;   z#DatabricksChatCompletion.completion   s    0 $%99$/0(;5 : 
 !@@,+ A 
' x(D0*,@@QKKw! 31)'#+#) /#) " 
 	
r   )__name__
__module____qualname__r   strlistdictr   r   r   r   floatr   r
   r	   boolr   r;   __classcell__)r   s   @r   r   r      s    #" "&37AE*.>B!-=
 =
 	=

 =
 !=
 !=
 &=
  =
 #=
 =
" $#=
$ %w/0%=
& {,<<=>'=
( "$)=
* $$:;+=
, -=
 =
r   r   N)__doc__typingr   r   r   r   r   httpx._configr   &litellm.llms.custom_httpx.http_handlerr	   r
   litellm.types.llms.openair   litellm.types.utilsr   litellm.utilsr   openai_like.chat.handlerr   common_utilsr   transformationr   r   r   r   r   <module>rO      s;    9 8 ! P 6 6 ' = ) ,A
4n A
r   