
    ^h                         S SK r S SKJrJrJr  S SKrS SKJrJr  S SK	J
r
JrJr  S SKJrJr  SSKJr      SS\S	\S
\\   S\S\S\S\\\\
4      4S jjrS rg)    N)CallableOptionalUnion)custom_promptprompt_factory)AsyncHTTPHandlerHTTPHandler_get_httpx_client)ModelResponseUsage   )PetalsErrormodelmessagesapi_basemodel_responseprint_verboseoptional_paramsclientc                 j   [         R                  R                  5       nUR                  5        H  u  pX;  d  M  XU'   M     U [         R                  ;   a)  [         R                  U    n[        US   US   US   US9nO	[        XS9nS nU(       a  UR                  USUUS.S9  U US	.UEnUb  [        U[        5      (       d
  [        5       nUR                  UUS
9nUR                  USUR                  SU0S9   UR                  5       S   nO SSKJn  SSKJn  U n UR1                  U SSS9nUR1                  U 5      nUR                  USSU0S9  U" USS9S   nUR2                  " U40 UD6nUR                  USUSU0S9  UR5                  US   5      nUb-  [7        U5      S:  a  UUR8                  S   R:                  l        [7        UR?                  U5      5      n[7        UR?                  US   S   S   RA                  S5      5      5      n[C        [D        RD                  " 5       5      Ul#        Xl$        [K        UUUU-   S9n[M        USU5        U$ ! [         a2  n[!        UR"                  [%        U5      UR&                  S9   S nANS nAff = f! [         a    [        S5      ef = f)Nrolesinitial_prompt_valuefinal_prompt_value)	role_dictr   r   r   )r   r    )complete_input_dictr   )inputapi_keyadditional_args)r   inputs)datar   )r   r   original_responser   outputs)status_codemessageheadersr   )AutoDistributedModelForCausalLM)AutoTokenizerzImporting torch, transformers, petals failed
Try pip installing petals 
pip install git+https://github.com/bigscience-workshop/petalsF)use_fastadd_bos_tokenpt)return_tensors	input_idschoicesr%   content)prompt_tokenscompletion_tokenstotal_tokensusage)'litellmPetalsConfig
get_configitemscustom_prompt_dictr   r   pre_call
isinstancer	   r
   post	post_calltextjson	Exceptionr   r$   strr&   petalsr'   transformersr(   from_pretrainedgeneratedecodelenr.   r%   r/   encodegetinttimecreatedr   r   setattr)r   r   r   r   r   encodinglogging_objr   streamlitellm_params	logger_fnr   configkvmodel_prompt_detailspromptoutput_textr!   responseer'   r(   	tokenizer	model_objr    r#   r0   r1   r3   s                                 `/home/james-whalen/.local/lib/python3.13/site-packages/litellm/llms/petals/completion/handler.py
completionr]      s    !!,,.F$!"A	  ***&99%@*73!56L!M34HI	
  e?!%K'6$ 	 	
 &DOD >FK!@!@&(F;;xd;3 	&mm2OD	 	 	
	"--/)4K	>2 !11E 2 
	 4CCEJ	 	2OD 	 	
 6$7D $$V?? 	%2OD	 	 	
  &&wqz23{#3a#74?q!))1/0My1!4Y?CCINO !-N #+"%66E
 NGU+}  	$00A ((	  	 Z 	s$   >I J 
J'(JJJ2c                      g )N r_       r\   	embeddingra      s    r`   )FNNN)rJ   typingr   r   r   r4   3litellm.litellm_core_utils.prompt_templates.factoryr   r   &litellm.llms.custom_httpx.http_handlerr   r	   r
   litellm.utilsr   r   common_utilsr   r@   listdictr]   ra   r_   r`   r\   <module>ri      s     , ,  
 / & =A}}} sm} "	}
 } } U;(889:}@	r`   