
    dh,                         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Jr  S SKJrJr  S SKJr   " S S\	5      r\S	:X  a  \" 5       r\" \R/                  S
5      5        gg)    )AnyDictListOptionalSequence)CallbackManagerForLLMRun)LLM)convert_to_secret_strget_from_dict_or_envpre_init)
ConfigDict	SecretStr)enforce_stop_tokensc                      \ 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\	\\\4      \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r/\\S,'    Sr0\	\\
      \S-'    Sr1\	\2   \S.'    S/r3\
\S0'    Sr4\	\
   \S1'    S2r5\\S3'    S4r6\\S5'    Sr7\\S6'    \8" S7S89r9\:S9\S:\4S; j5       r;\<S:\\
\4   4S< j5       r=\<S:\\
\4   4S= j5       r>\<S:\
4S> j5       r?  SES?\
S@\	\\
      SA\	\@   SB\S:\
4
SC jjrASDrBg)F
AlephAlpha   aE  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           	          [        [        USS5      5      US'    SSKJn  U" US   R	                  5       US   US   US   US   US	   S
9US'   U$ ! [
         a    [        S5      ef = f)z?Validate that api key and python package exists in environment.r8   ALEPH_ALPHA_API_KEYr   )Clientr9   r:   r;   r=   r>   )tokenr9   r:   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_clientrE   get_secret_valueImportError)clsrA   rE   s      \/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/llms/aleph_alpha.pyvalidate_environmentAlephAlpha.validate_environment   s     )> )>@UV)
$%	1%23DDFF^y)(./H(I$_5F^ F8   	K 	s   4A A'c                    0 SU R                   _SU R                  _SU R                  _SU R                  _SU R                  _SU R
                  _SU R                  _SU R                  _S	U R                  _S
U R                  _SU R                  _SU R                  _SU R                  _SU R                  _SU R                  _SU R                  _SU R                   _U R"                  U R$                  U R&                  U R(                  U R*                  U R,                  U R.                  U R0                  U R2                  U R4                  U R6                  U R8                  U R:                  U R<                  S.E$ )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/   r0   r1   r2   r3   r4   r5   r6   )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   r6   selfs    rK   _default_paramsAlephAlpha._default_params   s    
d11 
4++ 
 TZZ 
 TZZ	 

  5 5 
  !7!7 
  
 243[3[ 
 243[3[ 
 D-- 
 !$"9"9 
 89g9g 
 t|| 
 $// 
  
  dkk! 
" $T%?%?# 
$ #11II484]4] $ 5 5+/+K+K373[3[)-)G)G:>:i:i)-)G)G:>:i:i,0,M,M$($=$=7;7c7c"11? 
  	
    c                 :    0 SU R                   0EU R                  E$ )zGet the identifying parameters.r   )r   rQ   rO   s    rK   _identifying_paramsAlephAlpha._identifying_params   s$     A7DJJ'@4+?+?@@rS   c                     g)zReturn type of llm.aleph_alpha rO   s    rK   	_llm_typeAlephAlpha._llm_type   s     rS   promptstoprun_managerkwargsc                    SSK JnJn  U R                  nU R                  b  Ub  [        S5      eU R                  b  U R                  US'   OX'S'   0 UEUEnU" SSUR                  U5      0UD6nU R                  R                  U R                  US9n	U	R                  S   R                  n
Uc  U R                  b  [        XS   5      n
U
$ )a,  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Promptz:stop sequences found in both the input and default params.r7   r\   )r   requestrY   )rG   ra   rb   rQ   r7   
ValueError	from_textr   completer   completions
completionr   )rP   r\   r]   r^   r_   ra   rb   paramsrc   responsetexts              rK   _callAlephAlpha._call   s    * 	A%%*t/?L    ,'+':':F#$'+#$%F%f%#N6+;+;F+CNvN;;''djj''J##A&11 t22>&t4D-EFDrS   rY   )NN)C__name__
__module____qualname____firstlineno____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   r0   r1   r2   r3   r4   r5   r6   r7   r8   r   r9   r:   r;   r=   r>   r   model_configr   rL   propertyrQ   rU   rZ   r   rl   __static_attributes__rY   rS   rK   r   r      s     FC*E8C=*NC7KQE3N@E5D!e!$"u";:?'$?  ;@'$?6 #'L(3-&*.2c+2, AE-x~DB!GXc]! AsJ;-1Jc5j)*1Q#Ix}#R"FHTN"&,18D>1$%NHSM%2D$,16($6!e!'((05'59=x6=7<.<9=x6=7<.<J48 (5/8
 ,0(4./ 59+T8( !ND ?*.NHT#Y'.  04),3&-D#-9!GXc]!4 $'S&W M3 D$> L $ 4  . "
c3h "
 "
H AT#s(^ A A 3   %):>	(( tCy!( 67	(
 ( 
( (rS   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   rn   aaprintinvokerY   rS   rK   <module>r      sS    6 6 = 3 V V * >M M` z	B	"))N
#$ rS   