
    h                         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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     ]/var/www/Befach/backend/env/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                d   t        |      }t        j                  |xs i ||||	|      }t        j                  ||      }|j	                  |       t        j                  ||	||||j                  dd            }t        | !  |j                  dd       ||||||||	|
|||||||d|	      S )
N)params)r   r$   r%   r,   r+   r   )r$   
api_paramsstreamF)r&   r+   r$   r,   r   r0   model_idT)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*   r2   r+   r3   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!&**:t< 31)'#+#) /' " 
 	
r   )__name__
__module____qualname__r   strlistdictr	   r   r   r   floathttpxTimeoutr   r   boolr   r:   __classcell__)r   s   @r   r   r      s   #" !"&9=AE*.>B!-I
 I
 	I

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