o
    ưi(                     @   sz   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 deZdS )    )CallableOptionalUnionN)AsyncHTTPHandlerHTTPHandler)CustomStreamingDecoderModelResponse   )OpenAILikeChatHandler   )_get_api_params   )IBMWatsonXChatConfigc                !       s   e Zd Z fd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dZ  ZS )WatsonXChatHandlerc                    s   t  jdi | d S )N )super__init__)selfkwargs	__class__r   X/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/watsonx/chat/handler.pyr      s   zWatsonXChatHandler.__init__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             
      sX  t ||d}tj|pi ||||	|d}tj||d}|| tj||	||||ddd}t jdi d|dpsd	d
|d|d|d|d|d|d|d|	d|
d|d|d|d|d|d|d|ddd|S d
|d|d|d|d|d|d|d|	d|
d|d|d|d|d|d|d|ddd|S )N)paramsr!   )r   r!   r"   r)   r(   r   )r!   
api_paramsstreamF)r#   r(   r!   r)   r   r,   r!   Zmodel_id r"   r#   r$   r%   r&   r'   encodingr(   logging_objr)   r   r   r   r   r   r   r   Tr   r   )	r   watsonx_chat_transformationZvalidate_environmentZ_prepare_payloadupdateZget_complete_urlgetr   
completion)r   r!   r"   r#   r$   r%   r&   r'   r.   r(   r/   r)   r   r   r   r   r   r   r   r   r    r+   Zwatsonx_auth_payloadr   r   r   r3      s   


		
	
zWatsonXChatHandler.completion)__name__
__module____qualname__r   strlistr   dictr   r   r   floathttpxTimeoutr   r   boolr   r3   __classcell__r   r   r   r   r      sX    	r   )typingr   r   r   r;   Z&litellm.llms.custom_httpx.http_handlerr   r   Zlitellm.types.utilsr   r   Zopenai_like.chat.handlerr
   Zcommon_utilsr   Ztransformationr   r0   r   r   r   r   r   <module>   s    