o
    ưi,                     @   s   d dl Z d dlmZmZmZ d dlZd dlmZ d dlm	Z	m
Z
mZ ddlmZ ddlmZ e Zi ddfd	ed
edee de
dededefddZ	dd	edede	dee dee dedefddZdS )    N)AnyCallableOptional)_get_httpx_client)EmbeddingResponseModelResponseUsage   )OobaboogaError   )OobaboogaConfigmodelmessagesapi_basemodel_responseprint_verboseoptional_paramslitellm_paramsc                 C   s   t j|i | |||	d}d| v r| }n|r|}ntddd| } |d }t j| |||	|d}|j||d|id	 t }|j||t|d
|v rJ|d
 ndd}d
|v r\|d
 du r\|	 S t j
| ||||||||	|d
S )Napi_keyheadersr   r   r   r   https  DAPI Base not set. Set one via completion(..,api_base='your-api-url')status_codemessagez/v1/chat/completions)r   r   r   r   r   complete_input_dictinputr   Zadditional_argsstreamF)r   datar    T)
r   Zraw_responser   logging_objr   Zrequest_datar   r   r   encoding)oobabooga_configvalidate_environmentr
   Ztransform_requestpre_callr   postjsondumps
iter_linesZtransform_response)r   r   r   r   r   r#   r   r"   r   r   Zcustom_prompt_dictZ	logger_fnZdefault_max_tokens_to_sampler   Zcompletion_urlr!   clientresponse r-   \/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/oobabooga/chat/oobabooga.py
completion   sf   	r/   r   r   r"   c                 C   s   d| v r| }n|r| d}nt dddd|i}	|r |	| |r,|j||d|	id tj|i | g |i d	}
tjj||
|	d
}| }d|v rTt |d |	ddd|d d d dddg|_
t|d d d }t|dt||d d|_| |_|S )Nr   z/v1/embeddingsr   r   r   r   r   r   r   )r   r(   errorr   i  )r   r   r!   r   	embedding)r1   indexobjectusage)Zprompt_tokensZtotal_tokenslist)r
   updater&   r$   r%   litellmZmodule_level_clientr'   r(   getr!   lensetattrr   r3   r   )r   r   r   r   r   r"   r   r#   Zembeddings_urlr!   r   r,   Zcompletion_responseZ
num_tokensr-   r-   r.   r1   X   s\   



r1   )N)r(   typingr   r   r   r7   Z&litellm.llms.custom_httpx.http_handlerr   Zlitellm.utilsr   r   r   Zcommon_utilsr
   Ztransformationr   r$   strr5   dictr/   r1   r-   r-   r-   r.   <module>   sT    	

R