§
    šŠtj  ã                   ó~   — d dl mZ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ÚUnion)ÚCallbackManagerForLLMRun)ÚBaseLLM)Ú
GenerationÚ	LLMResult)Úpre_init)ÚFieldc                   óê  — e Zd ZU dZdZ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eeef         f         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<    ee¬¦  «        Zeeef         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 )!ÚCTranslate2z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                 ó>  — 	 ddl }n# t          $ r t          d¦  «        ‚w xY w	 ddl}n# t          $ r t          d¦  «        ‚w xY w |j        d|d         |d         |d         |d         d	œ|d
         ¤Ž|d<   |j                             |d         ¦  «        |d<   |S )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       úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/llms/ctranslate2.pyÚvalidate_environmentz CTranslate2.validate_environment6   s  € ð	ØÐÐÐÐøÝð 	ð 	ð 	ÝðDñô ð ð	øøøð	ØÐÐÐÐøÝð 	ð 	ð 	ÝðEñô ð ð	øøøð 1˜;Ô0ð 
Ø˜lÔ+Ø˜(Ô#Ø Ô/Ø Ô/ð	
ð 
ð
 Ð)Ô*ð
ð 
ˆˆxÑð +Ô8×HÒHØÐ#Ô$ñ
ô 
ˆˆ{Ñð ˆs   ‚ ‡!¥* ªAc                 ó8   — | j         | j        | j        | j        dœS )zGet the default parameters.©r   r   r   r   r/   ©Úselfs    r,   Ú_default_paramszCTranslate2._default_paramsX   s*   € ð œ/Ø!Ô/Ø!Ô/Ø$(Ô$=ð	
ð 
ð 	
ó    ÚpromptsÚstopÚrun_managerÚkwargsc                 ó<  ‡ — i ‰ j         ¥|¥}‰                      |¦  «        d         }ˆ fd„|D ¦   «         } ‰ j        j        |fi |¤Ž}d„ |D ¦   «         }	ˆ fd„|	D ¦   «         }
g }|
D ]&}|                     t          |¬¦  «        g¦  «         Œ't          |¬¦  «        S )NÚ	input_idsc                 óD   •— g | ]}‰j                              |¦  «        ‘ŒS r$   )r   Úconvert_ids_to_tokens)Ú.0Úencoded_promptr1   s     €r,   ú
<listcomp>z)CTranslate2._generate.<locals>.<listcomp>n   s9   ø€ ð 
ð 
ð 
àð ŒN×0Ò0°Ñ@Ô@ð
ð 
ð 
r3   c                 ó(   — g | ]}|j         d          ‘ŒS )r   )Úsequences_ids)r<   Úresults     r,   r>   z)CTranslate2._generate.<locals>.<listcomp>u   s    € ÐCÐCÐC°�VÔ)¨!Ô,ÐCÐCÐCr3   c                 óD   •— g | ]}‰j                              |¦  «        ‘ŒS r$   )r   Údecode)r<   Úseqr1   s     €r,   r>   z)CTranslate2._generate.<locals>.<listcomp>v   s)   ø€ ÐMÐMÐM¸C˜Tœ^×2Ò2°3Ñ7Ô7ÐMÐMÐMr3   )Útext)Úgenerations)r2   r   r   Úgenerate_batchÚappendr
   r   )r1   r4   r5   r6   r7   ÚparamsÚencoded_promptsÚtokenized_promptsÚresultsÚ	sequencesÚdecoded_sequencesrF   rE   s   `            r,   Ú	_generatezCTranslate2._generateb   sî   ø€ ð 4�DÔ(Ð3¨FÐ3ˆð Ÿ.š.¨Ñ1Ô1°+Ô>ˆð
ð 
ð 
ð 
à"1ð
ñ 
ô 
Ðð
 -�$”+Ô,Ð->ÐIÐIÀ&ÐIÐIˆàCÐC¸7ÐCÑCÔCˆ	ØMÐMÐMÐMÀ9ÐMÑMÔMÐàˆØ%ð 	8ð 	8ˆDØ×Ò¥
°Ð 5Ñ 5Ô 5Ð6Ñ7Ô7Ð7Ð7å [Ð1Ñ1Ô1Ð1r3   c                 ó   — dS )zReturn type of llm.r%   r$   r0   s    r,   Ú	_llm_typezCTranslate2._llm_type~   s	   € ð ˆ}r3   )NN)#Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚstrÚ__annotations__r   r   r   r   Úintr   r   r   r   r   r   Úfloatr   r   r   r   r   Údictr    r   r-   Úpropertyr2   r   r   r   rO   rQ   r$   r3   r,   r   r   
   s  € € € € € € Ø%Ð%à€J�ÐÐÑØ2à€N�CÐÐÑØVà€FˆCÐÐÑØ?à*+€L�%˜˜T #œY˜Ô'Ð+Ð+Ñ+Ø6à/8€L�%˜˜T # s (œ^Ð+Ô,Ð8Ð8Ñ8ðð €J�ÐÐÑØ$à€M�3ÐÐÑØ@à€M�5ÐÐÑØXà"#Ð˜%Ð#Ð#Ñ#Ø?à€FˆCÐÐÑà€IˆsÐÐÑà).¨¸tÐ)DÑ)DÔ)DÐ˜˜S #˜XœÐDÐDÑDðð
 ð¨$ð °4ð ð ð ñ „XððB ð
  c¨3 h¤ð 
ð 
ð 
ñ „Xð
ð %)Ø:>ð	2ð 2à�c”ð2ð �t˜C”yÔ!ð2ð Ð6Ô7ð	2ð
 ð2ð 
ð2ð 2ð 2ð 2ð8 ð˜3ð ð ð ñ „Xðð ð r3   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$   r3   r,   ú<module>rb      sÍ   ðØ 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3à =Ð =Ð =Ð =Ð =Ð =Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð ðwð wð wð wð w�'ñ wô wð wð wð wr3   