
    dh5                     v    S SK Jr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\	5      rg	)
    )AnyDictListOptionalUnion)CallbackManagerForLLMRun)BaseLLM)
Generation	LLMResult)pre_init)Fieldc                      \ rS rSr% SrSr\\S'    Sr\\S'    Sr	\\S'    Sr
\\\\   4   \S	'    S
r\\\\\4   4   \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\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)#CTranslate2
   zCTranslate2 language model. 
model_pathtokenizer_namecpudevicer   device_indexdefaultcompute_typei   
max_length   sampling_topksampling_toppsampling_temperatureNclient	tokenizer)default_factoryctranslate2_kwargsvaluesreturnc                     SSK n SSKnUR                  " SUS   US   US   US   S	.US
   D6US'   UR                  R                  US   5      US'   U$ ! [         a    [        S5      ef = f! [         a    [        S5      ef = f)z3Validate that python package exists in environment.r   Nz^Could not import ctranslate2 python package. Please install it with `pip install ctranslate2`.z`Could not import transformers python package. Please install it with `pip install transformers`.r   r   r   r   )r   r   r   r   r!   r   r   r    )ctranslate2ImportErrortransformers	GeneratorAutoTokenizerfrom_pretrained)clsr"   r&   r(   s       \/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/llms/ctranslate2.pyvalidate_environment CTranslate2.validate_environment6   s    		 '00 
l+(#//	

 )*
x +88HH#$
{ 5  	D 	  	E 	s   A A0 A-0Bc                 `    U R                   U R                  U R                  U R                  S.$ )zGet the default parameters.r   r   r   r   r1   selfs    r-   _default_paramsCTranslate2._default_paramsX   s0     //!//!//$($=$=	
 	
    promptsstoprun_managerkwargsc                    0 U R                   EUEnU R                  U5      S   nU Vs/ sH  nU R                  R                  U5      PM      nnU R                  R                  " U40 UD6n	U	 V
s/ sH  oR
                  S   PM     nn
U Vs/ sH  oR                  R                  U5      PM     nn/ nU H  nUR                  [        US9/5        M     [        US9$ s  snf s  sn
f s  snf )N	input_idsr   )text)generations)
r4   r   convert_ids_to_tokensr   generate_batchsequences_idsdecodeappendr
   r   )r3   r7   r8   r9   r:   paramsencoded_promptsencoded_prompttokenized_promptsresultsresult	sequencesseqdecoded_sequencesr>   r=   s                   r-   	_generateCTranslate2._generateb   s     4D((3F3 ..1+> #2
"1 NN00@"1 	 

 ++,,->I&I;BC7))!,7	CCLM9C^^22379M%D
 567 & [11
 DMs   $C0C$#C)c                     g)zReturn type of llm.r&   r%   r2   s    r-   	_llm_typeCTranslate2._llm_type~   s     r6   r%   )NN)%__name__
__module____qualname____firstlineno____doc__r   str__annotations__r   r   r   r   intr   r   r   r   r   r   floatr   r   r   r   r   dictr!   r   r.   propertyr4   r   r   r   rM   rP   __static_attributes__r%   r6   r-   r   r   
   s   %J2NCVFC?*+L%T#Y'+6/8L%T#s(^+,8 J$M3@M5X"#%#?FCIs).t)DS#XD
 $ 4  B 
c3h 
 
 %):>	2c2 tCy!2 67	2
 2 
28 3  r6   r   N)typingr   r   r   r   r   langchain_core.callbacksr   #langchain_core.language_models.llmsr	   langchain_core.outputsr
   r   langchain_core.utilsr   pydanticr   r   r%   r6   r-   <module>rd      s(    3 3 = 7 8 ) w' wr6   