
    ^h                         S SK r S SKJrJrJr  S SKrS SKJr  S SKJ	r	J
r
Jr  SSKJr  SSKJr  \" 5       r0 SS4S	\S
\S\\   S\
S\S\S\4S jjr SS	\S\S\	S\\   S\\   S\S\4S jjrg)    N)AnyCallableOptional)_get_httpx_client)EmbeddingResponseModelResponseUsage   )OobaboogaError   )OobaboogaConfigmodelmessagesapi_basemodel_responseprint_verboseoptional_paramslitellm_paramsc                    [         R                  U0 U UUS9nSU ;   a  U nOU(       a  UnO
[        SSS9eU n US-   n[         R                  U UUU	US9nUR	                  UUSU0S	9  [        5       nUR                  UU[        R                  " U5      S
U;   a  US
   OSS9nS
U;   a  US
   SL a  UR                  5       $ [         R                  U UUUUUUUU	US9
$ )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                     _/home/james-whalen/.local/lib/python3.13/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           	         SU ;   a  U nOU(       a  U S3nO
[        SSS9eSU0n	U(       a  U	R                  U5        U(       a  UR                  XSU	0S9  [        R	                  U0 U / US	9n
[
        R                  R                  XU	S
9nUR                  5       nSU;   a  [        US   UR                  SS5      S9eUS   S   S   SSS./Ul
        [        US   S   S   5      n[        US[        XS95        SUl        Xl        U$ )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   si    %	$:^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J@
 #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:   