
    dhf                         S SK JrJrJrJr  S SKJr  S SKJr  S SK	J
r
Jr  S SKJr  S SKJr  S SKJr  S SKJr   " S	 S
\5      r " S S\5      rg)    )AnyDictListOptional)CallbackManagerForLLMRun)BaseLLM)
Generation	LLMResult)pre_init)Field)
BaseOpenAI)is_openai_v1c                      \ rS rSr% SrSr\\S'    Sr\	\
   \S'    Sr\	\   \S'    Sr\
\S	'    S
r\	\
   \S'    Sr\\S'    Sr\\S'    Sr\\S'    Sr\\S'    Sr\
\S'    Sr\\S'    S
r\	\\      \S'    Sr\\S'    Sr\
\S'    S
r\	\
   \S'    Sr\\S'    S
r\	\   \S'    \" \S9r\ \\!4   \S'    S
r"\!\S'   \#S \ S!\ 4S" j5       r$\%S!\ \\!4   4S# j5       r&  S*S$\\   S\	\\      S%\	\'   S&\!S!\(4
S' jjr)\%S!\4S( j5       r*S)r+g
)+VLLM   zVLLM language model. model   tensor_parallel_sizeFtrust_remote_codenNbest_ofg        presence_penaltyfrequency_penaltyg      ?temperaturetop_ptop_kuse_beam_searchstop
ignore_eosi   max_new_tokenslogprobsautodtypedownload_dir)default_factoryvllm_kwargsclientvaluesreturnc           	           SSK Jn  U" SUS   US   US   US   US   S	.US
   D6US'   U$ ! [         a    [        S5      ef = f)z3Validate that python package exists in environment.r   )LLMzPCould not import vllm python package. Please install it with `pip install vllm`.r   r   r   r%   r&   )r   r   r   r%   r&   r(   r)    )vllmr-   ImportError)clsr*   VLLModels      U/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/llms/vllm.pyvalidate_environmentVLLM.validate_environmentM   s    	, $ 
/!'(>!?$%89//
 ]#
x   	= 	s	   - Ac                    U R                   U R                  U R                  U R                  U R                  U R
                  U R                  U R                  U R                  U R                  U R                  U R                  S.$ )z,Get the default parameters for calling vllm.)r   r   
max_tokensr   r   r   r   r   r    r!   r   r#   )r   r   r"   r   r   r   r   r   r    r!   r   r#   selfs    r3   _default_paramsVLLM._default_paramsd   sl     ||--ZZZZ++ $ 5 5!%!7!7II//#33
 	
    promptsrun_managerkwargsc           
         SSK Jn  UR                  SS5      n0 U R                  EUESU0EnUR                  R                  5       nU" S	0 UR                  5        V	V
s0 sH  u  pX;   d  M  X_M     sn
n	D6nU(       a  U R                  R                  XUS9nOU R                  R                  X5      n/ nU H5  nUR                  S   R                  nUR                  [        US9/5        M7     [        US9$ s  sn
n	f )
z*Run the LLM on the given prompt and input.r   )SamplingParamslora_requestNr    )rB   )text)generationsr.   )r/   rA   popr:   __annotations__keysitemsr)   generateoutputsrC   appendr	   r
   )r9   r=   r    r>   r?   rA   rB   params
known_keyskvsample_paramsrJ   rD   outputrC   s                   r3   	_generateVLLM._generatev   s    	(zz.$7 BD((AFAFDA $3388:
& 
 &B!/tqtB

 kk**\ + G kk**7BGF>>!$))D
 567  [11! Cs   
C;,C;c                     g)Return type of llm.r/   r.   r8   s    r3   	_llm_typeVLLM._llm_type   s     r<   r.   )NN),__name__
__module____qualname____firstlineno____doc__r   strrF   r   r   intr   boolr   r   r   floatr   r   r   r   r   r    r   r!   r"   r#   r%   r&   r   dictr(   r   r   r)   r   r4   propertyr:   r   r
   rR   rV   __static_attributes__r.   r<   r3   r   r      s   E3O?*+(3-+V(-x~- AsJD!GXc]!H!e!  #u" K=E5WE3OE!OT!9 $D(49
$KJ# NCC"Hhsm"AE3>"&L(3-&! #("=Kc3h=XFC$ 4  , 
c3h 
 
( %):>	"2c"2 tCy!"2 67	"2
 "2 
"2H 3  r<   r   c                   j    \ rS rSrSr\S\4S j5       r\S\	\
\4   4S j5       r\S\
4S j5       rSrg)	
VLLMOpenAI   z!vLLM OpenAI-compatible API clientr+   c                     g)NFr.   )r1   s    r3   is_lc_serializableVLLMOpenAI.is_lc_serializable   s    r<   c                     SU R                   0U R                  ESS0En[        5       (       d(  UR                  U R                  U R
                  S.5        U$ )z,Get the parameters used to invoke the model.r   
logit_biasN)api_keyapi_base)
model_namer:   r   updateopenai_api_keyopenai_api_base)r9   rL   s     r3   _invocation_paramsVLLMOpenAI._invocation_params   sa    
 T__"
"""
 $"

 ~~MM#22 $ 4 4 r<   c                     g)rU   zvllm-openair.   r8   s    r3   rV   VLLMOpenAI._llm_type   s     r<   r.   N)rX   rY   rZ   r[   r\   classmethodr_   rh   rb   r   r]   r   rr   rV   rc   r.   r<   r3   re   re      s\    +4   DcN  $ 3  r<   re   N)typingr   r   r   r   langchain_core.callbacksr   #langchain_core.language_models.llmsr   langchain_core.outputsr	   r
   langchain_core.utilsr   pydanticr   langchain_community.llms.openair    langchain_community.utils.openair   r   re   r.   r<   r3   <module>r      s;    , , = 7 8 )  6 9P7 Pf r<   