
    Ng%                     z    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d	S )
    )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;d	S )=	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} n# t          $ r t          d          w xY w |d|d         |d         |d         |d         |d         d	|d
         |d<   |S )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      ^/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/llms/aphrodite.pyvalidate_environmentzAphrodite.validate_environment   s    	7777777 	 	 	I  	 *> 
/!'(>!?$%89//
 
 '(
 
x s   	 #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        | j        | j        | j        | j        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   sL   

t|
 $/
 TZ	

 TZ
 TZ
 TZ
 4+
  5
  !7
 !$"9
 48
 $/
 d1
 
  T/!
" D-#
$ #1"1#3I/#3!%!7#'#;-1-O/9
 
 
 	
    promptsrun_managerkwargsc                    ddl m} i | j        |d|i}d|v r|d=  |di |}| j                            ||          }g }	|D ]8}
|
j        d         j        }|	                    t          |          g           9t          |	          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A6!!|$(.22622+&&w@@ 	8 	8F>!$)D
 5 5 567777[1111rH   c                     dS )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   
   s}        ##E3OOO?*+(3-+++V(-x~--- AsJJJD!GXc]!!!G
 "e!!!F  #u"""@ !$###F K; E5= E3OOO' 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113 $$$$I*.!4... .2Jc5j)*111 E3>"&L(3-&&&! #'L(3-&&&B',uT'B'B'Bd38nBBB FC$ 4    X4 
c3h 
 
 
 X
H %):>	2 2c2 tCy!2 67	2
 2 
2 2 2 24 3    X  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 2 2 2 2 2 8 8 8 8 8 8 8 8 ) ) ) ) ) )      q q q q q q q q q qrH   