
    j                         d dl mZmZmZ d dlZd dlmZmZ d dlm	Z	m
Z
 ddlmZ ddlmZ d	d
lmZ  e       Z G d de      Zy)    )CallableOptionalUnionN)AsyncHTTPHandlerHTTPHandler)CustomStreamingDecoderModelResponse   )OpenAILikeChatHandler   )_get_api_params   )IBMWatsonXChatConfigc            !            e Zd Z fdZdi dddddddd	dededee   ded	ed
ede	dee   dededee   dee
eej                  f      dee
eef      dee   dee   def  fdZ xZS )WatsonXChatHandlerc                 $    t        |   di | y )N )super__init__)selfkwargs	__class__s     z/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/litellm/llms/watsonx/chat/handler.pyr   zWatsonXChatHandler.__init__   s    "6"    NF)	acompletionlitellm_paramsheaders	logger_fn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"   r#   c                j   t        |      }t        j                  |xs i ||||	|      }t        j                  ||      }|j	                  |       t        j                  ||	||||j                  dd            }t        | !  |j                  d      xs d||||||||	|
|||||||d	|
      S )N)params)r   r$   r%   r,   r+   r   )r$   
api_paramsstreamF)r&   r+   r$   r,   r   r0   model_id T)r$   r%   r&   r'   r(   r)   r*   encodingr+   logging_objr,   r   r   r   r   r   r    r!   r"   )	r   watsonx_chat_transformationvalidate_environment_prepare_payloadupdateget_complete_urlgetr   
completion)r   r$   r%   r&   r'   r(   r)   r*   r3   r+   r4   r,   r   r   r   r   r   r    r!   r"   r#   r/   watsonx_auth_payloadr   s                          r   r;   zWatsonXChatHandler.completion   s   0 %O<
 .BBMr+) C 
  ;KK!  L  
 	34 /??+)"&&x7 @ 
 w!&**:6<" 31)'#+#) /' " 
 	
r   )__name__
__module____qualname__r   strlistr   dictr	   r   r   floathttpxTimeoutr   r   boolr   r;   __classcell__)r   s   @r   r   r      s   #" !"&9=AE*.>B!-I
 I
 	I

 3-I
 !I
 !I
 &I
  I
 #I
 I
 I
  $!I
$ %u}} 456%I
& {,<<=>'I
( "$)I
* $$:;+I
, -I
 I
r   r   )typingr   r   r   rD   &litellm.llms.custom_httpx.http_handlerr   r   litellm.types.utilsr   r	   openai_like.chat.handlerr   common_utilsr   transformationr   r5   r   r   r   r   <module>rN      s5    , ,  P E = * 024 M
. M
r   