
    g                         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Z	 dd	edede	dee   dee   dedefdZy)    N)AnyCallableOptional)_get_httpx_client)EmbeddingResponseModelResponseUsage   )OobaboogaError   )OobaboogaConfigmodelmessagesapi_basemodel_responseprint_verboseoptional_paramslitellm_paramsc                    t         j                  |i | ||      }d| v r| }n|r|}nt        dd      | } |dz   }t         j                  | |||	|      }|j	                  ||d|i	       t               }|j                  ||t        j                  |      d
|v r|d
   nd      }d
|v r|d
   du r|j                         S t         j                  | ||||||||	|
      S )Napi_keyheadersr   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   additional_argsstreamF)r   datar#   T)
r   raw_responser   logging_objr   request_datar   r   r   encoding)oobabooga_configvalidate_environmentr   transform_requestpre_callr   postjsondumps
iter_linestransform_response)r   r   r   r   r   r(   r   r&   r   r   custom_prompt_dict	logger_fndefault_max_tokens_to_sampler   completion_urlr$   clientresponses                     Z/var/www/openai/venv/lib/python3.12/site-packages/litellm/llms/oobabooga/chat/oobabooga.py
completionr9      sF    33' 4 G %	!Z
 	
 E#&<<N--'% . D .5    F{{ZZ,4,Gx(U	  H ?"x'@D'H""$$22!)#+) 3 
 	
    r!   r   r&   c                    d| v r| }n|r| d}nt        dd      d|i}	|r|	j                  |       |r|j                  ||d|	i       t        j	                  |i | g |	      }
t
        j                  j                  ||
|	
      }|j                         }d|v r t        |d   |j                  dd            |d   d   d   dddg|_
        t        |d   d   d         }t        |dt        ||             d|_        | |_        |S )Nr   z/v1/embeddingsr   r   r   r!   r   r    r   )r   r.   errorr   i  )r   r   r$   r   	embedding)r=   indexobjectusage)prompt_tokenstotal_tokenslist)r   updater,   r)   r*   litellmmodule_level_clientr-   r.   getr$   lensetattrr	   r?   r   )r   r!   r   r   r   r&   r   r(   embeddings_urlr$   r   r7   completion_response
num_tokenss                 r8   r=   r=   W   sq    %	$:^4Z
 	
 UDO$ ;PRV:W 	 	

 33' 4 G **//d 0 H #--/ %%'0+//sC
 	
 -V4Q7D!	
N (03K@AJJZ@
 #N Nr:   )N)r.   typingr   r   r   rE   &litellm.llms.custom_httpx.http_handlerr   litellm.utilsr   r   r	   common_utilsr   transformationr   r)   strrC   dictr9   r=    r:   r8   <module>rU      s     * *  D A A ) +"$  !%F
F
F
 smF
 "	F

 F
 F
 F
b GGG &G c]	G
 smG G Gr:   