
    g6                     8    d dl mZmZmZ ddlmZ  G d d      Zy)    )LiteralOptionalTuple   )DatabricksErrorc                       e Zd Zdee   dee   dee   deeef   fdZdee   dee   ded   dee	   dee   deeef   fd	Z
y
)DatabricksBaseapi_keyapi_baseheadersreturnc                     |xs ddi}	 ddl m}  |       }|xs |j                  j                   d}| |j                  j	                         }i ||}||fS # t
        $ r t        dd      w xY w)	NContent-Typeapplication/jsonr   )WorkspaceClientz/serving-endpoints  a  If the Databricks base URL and API key are not set, the databricks-sdk Python library must be installed. Please install the databricks-sdk, set {LLM_PROVIDER}_API_BASE and {LLM_PROVIDER}_API_KEY environment variables, or provide the base URL and API key as arguments.status_codemessage)databricks.sdkr   confighostauthenticateImportErrorr   )selfr
   r   r   r   databricks_clientdatabricks_auth_headerss          Y/var/www/openai/venv/lib/python3.12/site-packages/litellm/llms/databricks/common_utils.py_get_databricks_credentialsz*DatabricksBase._get_databricks_credentials   s     An.@A	6 / 1W&7&>&>&C&C%DDV#WH%,,99; ( A4@@W$$ 		!H 		s   AA A1endpoint_type)chat_completions
embeddingscustom_endpointc                    |(|&|t        dd      | j                  |||      \  }}|&|rt        dd      | j                  |||      \  }}|dj                  |      dd}n$|"|j                  d	dj                  |      i       |d
| |d	<   |dk(  r|durdj                  |      }||fS |dk(  r|durdj                  |      }||fS )Nr   zMissing API Key - A call is being made to LLM Provider but no key is set either in the environment variables ({LLM_PROVIDER}_API_KEY) or via paramsr   )r   r
   r   zMissing API Base - A call is being made to LLM Provider but no api base is set either in the environment variables ({LLM_PROVIDER}_API_KEY) or via paramsz	Bearer {}r   )Authorizationr   r%   zBearer r!   Tz{}/chat/completionsr"   z{}/embeddings)r   r   formatupdate)r   r
   r   r    r#   r   s         r   databricks_validate_environmentz.DatabricksBase.databricks_validate_environment$   sE    ?w*% # r 
 %)$D$D%w %E %!' % # x 
 %)$D$D%w %E %!' ?!,!3!3G!< 2G
 "1C1CG1LMN)0	':GO$..?$3N,33H=H    l*d/J&--h7H      N)__name__
__module____qualname__r   strdictr   r   r   boolr(    r)   r   r	   r	      s    }08HPQU	sDy	:.!#.! 3-.! ?@	.!
 "$.! $.! 
sDy	.!r)   r	   N)typingr   r   r   
exceptionsr   r	   r0   r)   r   <module>r3      s    + + 'L! L!r)   