§
    šŠ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mZ d dlmZmZ d dlmZ  G d„ de	¦  «        Zed	k    r* e¦   «         Z ee                     d
¦  «        ¦  «         dS dS )é    )ÚAnyÚDictÚListÚOptionalÚSequence)ÚCallbackManagerForLLMRun)ÚLLM)Úconvert_to_secret_strÚget_from_dict_or_envÚpre_init)Ú
ConfigDictÚ	SecretStr)Úenforce_stop_tokensc                   ó˜  — e Zd ZU dZ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d<   	 dZee         ed<   	 dZee	         ed<   	 dZee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ef                  ed<   	 dZee         ed<   	 dZee         ed<   	 dZe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'e	                  ed#<   dZ(eed$<   dZ)ee'e	                  ed%<   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d+<   	 dZ/eee	                  ed,<   	 dZ0ee1         ed-<   	 d.Z2e	ed/<   	 dZ3ee	         ed0<   	 d1Z4eed2<   	 d3Z5eed4<   	 dZ6eed5<   	  e7d6¬7¦  «        Z8e9d8ed9efd:„¦   «         Z:e;d9ee	ef         fd;„¦   «         Z<e;d9ee	ef         fd<„¦   «         Z=e;d9e	fd=„¦   «         Z>	 	 dCd>e	d?eee	                  d@ee?         dAed9e	f
dB„Z@dS )DÚ
AlephAlphaam  Aleph Alpha large language models.

    To use, you should have the ``aleph_alpha_client`` python package installed, and the
    environment variable ``ALEPH_ALPHA_API_KEY`` set with your API key, or pass
    it as a named parameter to the constructor.

    Parameters are explained more in depth here:
    https://github.com/Aleph-Alpha/aleph-alpha-client/blob/c14b7dd2b4325c7da0d6a119f6e76385800e097b/aleph_alpha_client/completion.py#L10

    Example:
        .. code-block:: python

            from langchain_community.llms import AlephAlpha
            aleph_alpha = AlephAlpha(aleph_alpha_api_key="my-api-key")
    NÚclientzluminous-baseÚmodelé@   Úmaximum_tokensg        Útemperaturer   Útop_kÚtop_pÚpresence_penaltyÚfrequency_penaltyFÚ#repetition_penalties_include_promptÚ#use_multiplicative_presence_penaltyÚpenalty_biasÚpenalty_exceptionsÚ)penalty_exceptions_include_stop_sequencesÚbest_ofé   ÚnÚ
logit_biasÚ	log_probsÚtokensÚdisable_optimizationsÚminimum_tokensÚechoÚ$use_multiplicative_frequency_penaltyÚsequence_penaltyé   Úsequence_penalty_min_lengthÚ#use_multiplicative_sequence_penaltyÚcompletion_bias_inclusionÚ*completion_bias_inclusion_first_token_onlyÚcompletion_bias_exclusionÚ*completion_bias_exclusion_first_token_onlyÚcontextual_control_thresholdTÚcontrol_log_additiveÚ'repetition_penalties_include_completionÚraw_completionÚstop_sequencesÚaleph_alpha_api_keyzhttps://api.aleph-alpha.comÚhostÚhostingi1  Úrequest_timeout_secondsé   Útotal_retriesÚniceÚforbid)ÚextraÚvaluesÚreturnc           	      ó&  — t          t          |dd¦  «        ¦  «        |d<   	 ddlm}  ||d                              ¦   «         |d         |d         |d         |d         |d	         ¬
¦  «        |d<   n# t
          $ r t          d¦  «        ‚w xY w|S )z?Validate that api key and python package exists in environment.r7   ÚALEPH_ALPHA_API_KEYr   )ÚClientr8   r9   r:   r<   r=   )Útokenr8   r9   r:   r<   r=   r   zlCould not import aleph_alpha_client python package. Please install it with `pip install aleph_alpha_client`.)r
   r   Úaleph_alpha_clientrD   Úget_secret_valueÚImportError)Úclsr@   rD   s      úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/llms/aleph_alpha.pyÚvalidate_environmentzAlephAlpha.validate_environment©   s×   € õ )>Ý  Ð)>Ð@UÑVÔVñ)
ô )
ˆÐ$Ñ%ð	Ø1Ð1Ð1Ð1Ð1Ð1à%˜vØÐ2Ô3×DÒDÑFÔFØ˜F”^Ø˜yÔ)Ø(.Ð/HÔ(IØ$ _Ô5Ø˜F”^ð ñ  ô  ˆF�8ÑÐøõ ð 	ð 	ð 	ÝðKñô ð ð	øøøð
 ˆs   £AA4 Á4B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        | j        | j        | j        dœ¥S )z;Get the default parameters for calling the Aleph Alpha API.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   r2   r3   r4   r5   )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   r2   r3   r4   r5   ©Úselfs    rJ   Ú_default_paramszAlephAlpha._default_paramsÁ   sd  € ð 
Ø˜dÔ1ð 
à˜4Ô+ð 
ð �T”Zð 
ð �T”Zð	 
ð
  Ô 5ð 
ð   Ô!7ð 
ð �”ð 
ð 2°4Ô3[ð 
ð 2°4Ô3[ð 
ð ˜DÔ-ð 
ð ! $Ô"9ð 
ð 8¸Ô9gð 
ð �t”|ð 
ð ˜$œ/ð 
ð ˜œð 
ð  �d”kð! 
ð" $ TÔ%?ð# 
ð$ #Ô1Ø”IØ48Ô4]Ø $Ô 5Ø+/Ô+KØ37Ô3[Ø)-Ô)GØ:>Ô:iØ)-Ô)GØ:>Ô:iØ,0Ô,MØ$(Ô$=Ø7;Ô7cØ"Ô1ð? 
ð  
ð  
ð  	
ó    c                 ó&   — i d| j         i¥| j        ¥S )zGet the identifying parameters.r   )r   rO   rM   s    rJ   Ú_identifying_paramszAlephAlpha._identifying_paramsæ   s   € ð A�7˜DœJÐ'Ð@¨4Ô+?Ð@Ð@rP   c                 ó   — dS )zReturn type of llm.Úaleph_alpha© rM   s    rJ   Ú	_llm_typezAlephAlpha._llm_typeë   s	   € ð ˆ}rP   ÚpromptÚstopÚrun_managerÚkwargsc                 ól  — ddl m}m} | j        }| j        �|�t          d¦  «        ‚| j        �| j        |d<   n||d<   i |¥|¥} |dd|                     |¦  «        i|¤Ž}| j                             | j	        |¬¦  «        }	|	j
        d         j        }
|€| j        �t          |
|d         ¦  «        }
|
S )	at  Call out to Aleph Alpha's completion endpoint.

        Args:
            prompt: The prompt to pass into the model.
            stop: Optional list of stop words to use when generating.

        Returns:
            The string generated by the model.

        Example:
            .. code-block:: python

                response = aleph_alpha("Tell me a joke.")
        r   )ÚCompletionRequestÚPromptNz:stop sequences found in both the input and default params.r6   rW   )r   ÚrequestrU   )rF   r\   r]   rO   r6   Ú
ValueErrorÚ	from_textr   Úcompleter   ÚcompletionsÚ
completionr   )rN   rW   rX   rY   rZ   r\   r]   Úparamsr^   ÚresponseÚtexts              rJ   Ú_callzAlephAlpha._callð   sý   € ð* 	AÐ@Ð@Ð@Ð@Ð@Ð@Ð@àÔ%ˆØÔÐ*¨tÐ/?ÝØLñô ð ð Ô Ð,Ø'+Ô':ˆFÐ#Ñ$Ð$à'+ˆFÐ#Ñ$Ø%�FÐ%˜fÐ%ˆØ#Ð#ÐNÐN¨6×+;Ò+;¸FÑ+CÔ+CÐNÀvÐNÐNˆØ”;×'Ò'¨d¬jÀ'Ð'ÑJÔJˆØÔ# AÔ&Ô1ˆð Ð˜tÔ2Ð>Ý& t¨VÐ4DÔ-EÑFÔFˆDØˆrP   )NN)AÚ__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__annotations__r   r   Ústrr   Úintr   Úfloatr   r   r   r   r   Úboolr   r   r   r   r   r    r"   r#   r   r$   r%   r&   r'   r(   r)   r*   r,   r-   r.   r   r/   r0   r1   r2   r3   r4   r5   r6   r7   r   r8   r9   r:   r<   r=   r   Úmodel_configr   rK   ÚpropertyrO   rR   rV   r   rg   rU   rP   rJ   r   r      sÞ  € € € € € € ðð ð  €FˆCÐÐÑØ*€Eˆ8�CŒ=Ð*Ð*Ñ*Øà€N�CÐÐÑØ7à€K�ÐÐÑØQà€Eˆ3€N€N�NØ@à€Eˆ5ÐÐÑØDà!Ð�eÐ!Ð!Ñ!Ø$à"Ð�uÐ"Ð"Ñ"Ø;à:?Ð'¨°$¬Ð?Ð?Ñ?ð ð ;@Ð'¨°$¬Ð?Ð?Ñ?ð6ð #'€L�(˜3”-Ð&Ð&Ñ&Ø*à.2Ð˜  c¤Ô+Ð2Ð2Ñ2ð,ð AEÐ-¨x¸¬~ÐDÐDÑDØBà!€GˆX�cŒ]Ð!Ð!Ñ!ðð €A€s€J€J�JØ;à-1€J�˜˜c 5˜jÔ)Ô*Ð1Ð1Ñ1ØQà#€Iˆx˜Œ}Ð#Ð#Ñ#ØRà"€FˆH�TŒNÐ"Ð"Ñ"Ø&à,1Ð˜8 Dœ>Ð1Ð1Ñ1à$%€N�H˜S”MÐ%Ð%Ñ%Ø2à€Dˆ$ÐÐÑØ,à16Ð(¨$Ð6Ð6Ñ6à!Ð�eÐ!Ð!Ñ!à'(Ð Ð(Ð(Ñ(à05Ð'¨Ð5Ð5Ñ5à9=Ð˜x¨°¬Ô6Ð=Ð=Ñ=à7<Ð.°Ð<Ð<Ñ<à9=Ð˜x¨°¬Ô6Ð=Ð=Ñ=à7<Ð.°Ð<Ð<Ñ<ØJà48Ð  (¨5¤/Ð8Ð8Ñ8ðð
 ,0Ð˜( 4œ.Ð/Ð/Ñ/ðð 59Ð+¨TÐ8Ð8Ñ8ð(ð !€N�DÐ Ð Ñ Ø?à*.€N�H˜T #œYÔ'Ð.Ð.Ñ.Ø ð 04Ð˜ )Ô,Ð3Ð3Ñ3Ø&Ø-€Dˆ#Ð-Ð-Ñ-ð9à!€GˆX�cŒ]Ð!Ð!Ñ!ð4ð $'Ð˜SÐ&Ð&Ñ&ðWð €M�3ÐÐÑðð €Dˆ$ÐÐÑð>ð �:Øðñ ô €Lð ð¨$ð °4ð ð ð ñ „Xðð. ð"
  c¨3 h¤ð "
ð "
ð "
ñ „Xð"
ðH ðA T¨#¨s¨(¤^ð Að Að Añ „XðAð ð˜3ð ð ð ñ „Xðð %)Ø:>ð	(ð (àð(ð �t˜C”yÔ!ð(ð Ð6Ô7ð	(ð
 ð(ð 
ð(ð (ð (ð (ð (ð (rP   r   Ú__main__zHow are you?N)Útypingr   r   r   r   r   Úlangchain_core.callbacksr   Ú#langchain_core.language_models.llmsr	   Úlangchain_core.utilsr
   r   r   Úpydanticr   r   Úlangchain_community.llms.utilsr   r   rh   ÚaaÚprintÚinvokerU   rP   rJ   ú<module>r}      s  ðØ 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6à =Ð =Ð =Ð =Ð =Ð =Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VØ *Ð *Ð *Ð *Ð *Ð *Ð *Ð *à >Ð >Ð >Ð >Ð >Ð >ðMð Mð Mð Mð M�ñ Mô Mð Mð` ˆzÒÐØ	ˆ‰Œ€Bà	€Eˆ"�)Š)�NÑ
#Ô
#Ñ$Ô$Ð$Ð$Ð$ð ÐrP   