§
    æ˜ºhØ  ã                   ó¦   — 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mZ d dlmZ d dlmZ  G d„ d	e¦  «        Z G d
„ de¦  «        ZdS )é    )ÚAnyÚDictÚListÚOptional)ÚCallbackManagerForLLMRun)ÚBaseLLM)Ú
GenerationÚ	LLMResult)ÚFieldÚroot_validator)Ú
BaseOpenAI)Úis_openai_v1c                   ó€  — 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e                  ed<   	 dZeed<   	 dZe	ed<   	 d	Zee	         ed<   	 dZeed<   	 d	Zee         ed<   	  ee¬¦  «        Zeee f         ed<   	 e ed<    e!¦   «         ded efd!„¦   «         Z"e#d eee f         fd"„¦   «         Z$	 	 d(d#ee         deee                  d$ee%         d%e d e&f
d&„Z'e#d efd'„¦   «         Z(d	S ))ÚVLLMz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           	      óº   — 	 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   )Ú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      úe/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/langchain_community/llms/vllm.pyÚvalidate_environmentzVLLM.validate_environmentL   s®   € ð	Ø,Ð,Ð,Ð,Ð,Ð,Ð,øÝð 	ð 	ð 	Ýð=ñô ð ð	øøøð $˜8ð 
Ø˜”/Ø!'Ð(>Ô!?Ø$Ð%8Ô9Ø˜”/Ø Ô/ð
ð 
ð �]Ô#ð
ð 
ˆˆxÑð ˆs   ‚	 ‰#c                 ó˜   — | j         | j        | j        | j        | j        | j        | j        | j        | j        | j	        | j
        | j        dœ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    r2   Ú_default_paramszVLLM._default_paramsc   sT   € ð ”Ø”|ØÔ-Ø”ZØ”ZØÔ+Ø $Ô 5Ø!%Ô!7Ø”IØœ/Ø#Ô3Øœð
ð 
ð 	
ó    ÚpromptsÚrun_managerÚkwargsc                 ó  — ddl m} i | j        ¥|¥d|i¥} |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   )Útext)Úgenerationsr-   )
r.   r>   r8   r(   ÚgenerateÚoutputsr?   Úappendr	   r
   )r7   r:   r   r;   r<   r>   ÚparamsÚsampling_paramsrB   r@   Úoutputr?   s               r2   Ú	_generatezVLLM._generateu   sº   € ð 	(Ð'Ð'Ð'Ð'Ð'ð B�DÔ(ÐA¨FÐA°F¸DÐAÐAˆØ(˜.Ð2Ð2¨6Ð2Ð2ˆà”+×&Ò& w°Ñ@Ô@ˆàˆØð 	8ð 	8ˆFØ”> !Ô$Ô)ˆDØ×Ò¥
°Ð 5Ñ 5Ô 5Ð6Ñ7Ô7Ð7Ð7å [Ð1Ñ1Ô1Ð1r9   c                 ó   — dS )úReturn type of llm.r.   r-   r6   s    r2   Ú	_llm_typezVLLM._llm_type�   s	   € ð ˆvr9   )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   Údictr'   r   r   r   r3   Úpropertyr8   r   r
   rG   rJ   r-   r9   r2   r   r      s«  € € € € € € ØÐà€Eˆ3€O€O�OØ?à*+Ð˜( 3œ-Ð+Ð+Ñ+ØVà(-Ð�x ”~Ð-Ð-Ñ-ðð €A€s€J€J�JØDà!€GˆX�cŒ]Ð!Ð!Ñ!ØHà!Ð�eÐ!Ð!Ñ!ðð  #Ð�uÐ"Ð"Ñ"ðð €K�ÐÐÑØ=à€Eˆ5ÐÐÑØWà€Eˆ3€O€O�OØEà!€O�TÐ!Ð!Ñ!Ø9à $€Dˆ(�4˜”9Ô
Ð$Ð$Ñ$ØKà€J�ÐÐÑð#ð €N�CÐÐÑØCà"€Hˆh�sŒmÐ"Ð"Ñ"ØAà€Eˆ3ÐÐÑØ>à"&€L�(˜3”-Ð&Ð&Ñ&ð!ð #( %¸Ð"=Ñ"=Ô"=€K��c˜3�h”Ð=Ð=Ñ=ØXà€K€K�Kà€^ÑÔð¨$ð °4ð ð ð ñ Ôðð, ð
  c¨3 h¤ð 
ð 
ð 
ñ „Xð
ð( %)Ø:>ð	2ð 2à�c”ð2ð �t˜C”yÔ!ð2ð Ð6Ô7ð	2ð
 ð2ð 
ð2ð 2ð 2ð 2ð0 ð˜3ð ð ð ñ „Xðð ð r9   r   c                   óv   — e Zd ZdZedefd„¦   «         Zedee	e
f         fd„¦   «         Zede	fd„¦   «         ZdS )Ú
VLLMOpenAIz!vLLM OpenAI-compatible API clientr*   c                 ó   — dS )NFr-   )r0   s    r2   Úis_lc_serializablezVLLMOpenAI.is_lc_serializable–   s   € àˆur9   c                 óŽ   — d| j         i| j        ¥ddi¥}t          ¦   «         s"|                     | j        | j        dœ¦  «         |S )z,Get the parameters used to invoke the model.r   Ú
logit_biasN)Úapi_keyÚapi_base)Ú
model_namer8   r   ÚupdateÚopenai_api_keyÚopenai_api_base)r7   rD   s     r2   Ú_invocation_paramszVLLMOpenAI._invocation_paramsš   so   € ð
 �T”_ð"
àÔ"ð"
ð ˜$ð"
ð "
ˆõ
 ‰~Œ~ð 	Ø�MŠMà#Ô2Ø $Ô 4ðð ñô ð ð ˆr9   c                 ó   — dS )rI   zvllm-openair-   r6   s    r2   rJ   zVLLMOpenAI._llm_type­   s	   € ð ˆ}r9   N)rK   rL   rM   rN   ÚclassmethodrR   rY   rU   r   rO   r   rb   rJ   r-   r9   r2   rW   rW   “   s•   € € € € € Ø+Ð+àð 4ð ð ð ñ „[ðð ð D¨¨c¨¤Nð ð ð ñ „Xðð$ ð˜3ð ð ð ñ „Xðð ð r9   rW   N)Útypingr   r   r   r   Úlangchain_core.callbacksr   Ú#langchain_core.language_models.llmsr   Úlangchain_core.outputsr	   r
   Úlangchain_core.pydantic_v1r   r   Úlangchain_community.llms.openair   Ú langchain_community.utils.openair   r   rW   r-   r9   r2   ú<module>rl      s  ðØ ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à =Ð =Ð =Ð =Ð =Ð =Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9ðDð Dð Dð Dð Dˆ7ñ Dô Dð DðNð ð ð ð �ñ ô ð ð ð r9   