
    ^h                         S SK JrJrJr  S SKrS SKJrJr  S SKJ	r	J
r
  S SKJrJr  SSKJr  SS	KJrJr   " S
 S\5      rg)    )CallableOptionalUnionN)AsyncHTTPHandlerHTTPHandler)WatsonXAIEndpointWatsonXAPIParams)CustomStreamingDecoderModelResponse   )OpenAILikeChatHandler   )WatsonXAIError_get_api_paramsc                     ^  \ rS rSrU 4S jrS\S\S\\   S\4S jr	S\S\S\\   S\
4S jrS	S	S	S	S	S	S	S	S
S.	S\S\S\S\S\
S\S\S\\   S\
S\\
   S\\\\R$                  4      S\\\\4      S\\   S\\   S\4U 4S jjjrSrU =r$ )WatsonXChatHandler   c                 &   > [         TU ]  " S0 UD6  g )N )super__init__)selfkwargs	__class__s     [/home/james-whalen/.local/lib/python3.13/site-packages/litellm/llms/watsonx/chat/handler.pyr   WatsonXChatHandler.__init__   s    "6"    model
api_paramsstreamreturnc                 @   UR                  S5      (       a  UR                  S5      c
  [        SSS9eSR                  UR	                  S5      SS  5      nUSL a  [
        R                  R                  O[
        R                  R                  nUR                  US	9nO9USL a  [
        R                  R                  O[
        R                  R                  n[        R                  " US
   5      nUR                  U5      n[        UR                  SUS   S95      nU$ )Ndeployment/space_idi  zError: space_id is required for models called using the 'deployment/' endpoint. Pass in the space_id as a parameter or set it in the WX_SPACE_ID environment variable.)status_codemessage/   T)deployment_idurlversionapi_version)keyvalue)
startswithgetr   joinsplitr   DEPLOYMENT_CHAT_STREAMr.   DEPLOYMENT_CHATformatCHAT_STREAMCHAThttpxURLstrcopy_add_param)r   r   r   r    r)   endpointbase_urlfull_urls           r   _prepare_urlWatsonXChatHandler._prepare_url   s    M**~~j)1$ # E   HHU[[%5ab%9:M T> "88>>&66<< 
  ]CH T> "--33&++11 
 99Z./==*##	M9R#S
 r   c                 R    0 nUR                  S5      (       a  U$ XS'   US   US'   U$ )Nr#   model_id
project_id)r/   )r   r   r   r    payloads        r   _prepare_payload#WatsonXChatHandler._prepare_payload/   s;     M**N#
 *< 8r   NF)	acompletionlitellm_params	logger_fnheaderstimeoutclientcustom_endpointstreaming_decoderfake_streammessagesapi_basecustom_llm_providercustom_prompt_dictmodel_responseprint_verboseapi_keyoptional_paramsrJ   rK   rL   rM   rN   rO   c                  > [        XS9nUc  0 nUR                  SUS    3SSS.5        UR                  SS5      nU R                  UUUS9nU R	                  UUUS9nUR                  U5        [
        TU ]  UUUUUUUUU	U
UUUUUUUS	US
9$ )N)rU   zBearer tokenzapplication/json)AuthorizationzContent-TypeAcceptr    F)r   r   r    T)r   rP   rQ   rR   rS   rT   rU   encodingrV   logging_objrW   rG   rH   rI   rJ   rK   rL   rM   rN   )r   updater0   r?   rE   r   
completion)r   r   rP   rQ   rR   rS   rT   rU   r\   rV   r]   rW   rG   rH   rI   rJ   rK   rL   rM   rN   rO   r   r    watsonx_auth_payloadr   s                           r   r_   WatsonXChatHandler.completion9   s    0 %_R
?G#*:g+>*?!@ 2,	
 "1!4!4Xu!E $$5ZPV$W#44Jv  5  
 	34w! 31)'#+#) /' " 
 	
r   r   )__name__
__module____qualname____firstlineno__r   r:   r	   r   boolr?   dictrE   listr   r   r   floatr8   Timeoutr   r   r
   r_   __static_attributes____classcell__)r   s   @r   r   r      s]   #&6@H	<&6@H	0 "&9=AE*.>B!-A
 A
 	A

 A
 !A
 !A
 &A
  A
 #A
 A
" $#A
$ %u}} 456%A
& {,<<=>'A
( "$)A
* $$:;+A
, -A
 A
r   r   )typingr   r   r   r8   &litellm.llms.custom_httpx.http_handlerr   r   litellm.types.llms.watsonxr   r	   litellm.types.utilsr
   r   openai_like.chat.handlerr   common_utilsr   r   r   r   r   r   <module>rs      s,    , ,  P J E = :m
. m
r   