
    7|h%                     r    d dl mZmZmZmZ d dlmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZ  G d de      Zy	)
    )AnyDictListOptional)CallbackManagerForLLMRun)BaseLLM)
Generation	LLMResult)pre_init)Fieldc                   `   e Zd ZU dZdZeed<   	 dZee	   ed<   	 dZ
ee   ed<   	 dZe	ed<   	 d	Zee	   ed
<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZe	ed<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZe	ed<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZeed<   	 d	Z ee!e      ed <   	 d	Z"ee!e	      ed!<   	 dZ#eed"<   	 d#Z$e	ed$<   	 d	Z%ee	   ed%<   	 d	Z&ee	   ed&<   	 d	Z'ee!e	      ed'<   	 d(Z(eed)<   	 d(Z)eed*<   	 d	Z*ee+eef      ed+<   	 d,Z,eed-<   	 d	Z-ee   ed.<   	 d	Z.ee   ed/<   	  e/e00      Z1e+ee2f   ed1<   	 d	Z3e2ed2<   e4d3e+d4e+fd5       Z5e6d4e+ee2f   fd6       Z7	 	 d<d7e!e   d ee!e      d8ee8   d9e2d4e9f
d:Z:e6d4efd;       Z;y	)=	AphroditezAphrodite language model. model   tensor_parallel_sizeFtrust_remote_codenNbest_ofg        presence_penaltyfrequency_penaltyg      ?repetition_penaltytemperaturetop_ptop_ktop_amin_ptfs
eta_cutoffepsilon_cutoff	typical_pr   mirostat_modemirostat_tauuse_beam_searchlength_penaltyearly_stoppingstopstop_token_ids
ignore_eosi   
max_tokenslogprobsprompt_logprobscustom_token_bansTskip_special_tokensspaces_between_special_tokens
logit_biasautodtypedownload_dirquantization)default_factoryaphrodite_kwargsclientvaluesreturnc           	          	 ddl m}  |d|d   |d   |d   |d   |d   d	|d
   |d<   |S # t        $ r t        d      w xY w)z3Validate that python package exists in environment.r   )LLMzhCould not import aphrodite-engine python package. Please install it with `pip install aphrodite-engine`.r   r   r   r3   r4   )r   r   r   r3   r4   r7   r8    )	aphroditer<   ImportError)clsr9   AphroditeModels      a/var/www/html/test/engine/venv/lib/python3.12/site-packages/langchain_community/llms/aphrodite.pyvalidate_environmentzAphrodite.validate_environment   s    	7 * 
/!'(>!?$%89//
 '(
x '  	I 	s	   - Ac                    i d| j                   d| j                  d| j                  d| j                  d| j                  d| j
                  d| j                  d| j                  d	| j                  d
| j                  d| j                  d| j                  d| j                  d| j                  d| j                  d| j                  d| j                   | j"                  | j$                  | j&                  | j(                  | j*                  | j,                  | j.                  | j0                  | j2                  | j4                  | j6                  dS )z1Get the default parameters for calling aphrodite.r   r   r+   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   )r&   r'   r%   r(   r*   r,   r-   r.   r/   r0   r1   )r   r   r+   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r&   r'   r%   r(   r*   r,   r-   r.   r/   r0   r1   selfs    rB   _default_paramszAphrodite._default_params   s   

t||
 $//
 TZZ	

 TZZ
 TZZ
 TZZ
 4++
  5 5
  !7!7
 !$"9"9
 488
 $//
 d11
 
  T//!
" D--#
$ #11"11#33II//#33!%!7!7#'#;#;-1-O-O//9
 	
    promptsrun_managerkwargsc                     ddl m} i | j                  |d|i}d|v r|d=  |di |}| j                  j	                  ||      }g }	|D ]7  }
|
j
                  d   j                  }|	j                  t        |      g       9 t        |	      S )z*Run the LLM on the given prompt and input.r   )SamplingParamsr(   r1   )text)generationsr=   )
r>   rM   rG   r8   generateoutputsrN   appendr	   r
   )rF   rI   r(   rJ   rK   rM   paramssampling_paramsrQ   rO   outputrN   s               rB   	_generatezAphrodite._generate   s     	- BD((AFAFDA6!|$(262++&&w@ 	8F>>!$))D
 567	8 [11rH   c                      y)zReturn type of llm.r>   r=   rE   s    rB   	_llm_typezAphrodite._llm_type   s     rH   )NN)<__name__
__module____qualname____doc__r   str__annotations__r   r   intr   boolr   r   r   floatr   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r   r)   r*   r+   r,   r-   r.   r/   r0   r1   r   r3   r4   r5   r   dictr7   r   r8   r   rC   propertyrG   r   r
   rV   rX   r=   rH   rB   r   r   
   sN   #E3O?*+(3-+V(-x~- AsJD!GXc]!G
 "e!F  #u"@ !$#F K; E5= E3O' E5< E57 C J.
  NE" Iu M3  L%M!OT!9NE' !ND < !%D(49
$= +/NHT#Y'. J# JC"Hhsm"A%)OXc])A-1xS	*13 $$I*.!4. .2Jc5j)*1 E3>"&L(3-&! #'L(3-&B',T'Bd38nB FC$ 4  4 
c3h 
 
H %):>	2c2 tCy!2 67	2
 2 
24 3  rH   r   N)typingr   r   r   r   langchain_core.callbacksr   langchain_core.language_modelsr   langchain_core.outputsr	   r
   langchain_core.utilsr   pydanticr   r   r=   rH   rB   <module>rj      s(    , , = 2 8 ) q qrH   