
    g1                         d dl Z d dlZd dlZd dlmZmZ d dlZd dlZd dlm	Z	m
Z
mZmZ  G d de      Z G d d      Zd Z	 	 	 dd	ed
ededededefdZd Zy)    N)CallableOptional)ChoicesMessageModelResponseUsagec                        e Zd Z fdZ xZS )AlephAlphaErrorc                     || _         || _        t        j                  dd      | _        t        j
                  || j                        | _        t        | !  | j                         y )NPOSTz$https://api.aleph-alpha.com/complete)methodurl)status_coderequest)	r   messagehttpxRequestr   Responseresponsesuper__init__)selfr   r   	__class__s      b/var/www/openai/venv/lib/python3.12/site-packages/litellm/llms/deprecated_providers/aleph_alpha.pyr   zAlephAlphaError.__init__   sT    &}}E
 ;ULL	
    )__name__
__module____qualname__r   __classcell__)r   s   @r   r
   r
      s    	
 	
r   r
   c            A       $   e Zd ZU dZej
                  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   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   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   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   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   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   e	d <   dZ+ee   e	d!<   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d%dee   dee   dee   dee   dee   dee   d	ee   d
ee   dee   dee   dee   dee   dee   dee   dee   dee   dee   dee   dee   dee   dee   dee"   dee   dee   dee   dee"   dee"   dee   dee   d ee   d!ee   d"df@d#Z,e-d$        Z.y)&AlephAlphaConfiga  
    Reference: https://docs.aleph-alpha.com/api/complete/

    The `AlephAlphaConfig` class represents the configuration for the Aleph Alpha API. Here are the properties:

    - `maximum_tokens` (integer, required): The maximum number of tokens to be generated by the completion. The sum of input tokens and maximum tokens may not exceed 2048.

    - `minimum_tokens` (integer, optional; default value: 0): Generate at least this number of tokens before an end-of-text token is generated.

    - `echo` (boolean, optional; default value: false): Whether to echo the prompt in the completion.

    - `temperature` (number, nullable; default value: 0): Adjusts how creatively the model generates outputs. Use combinations of temperature, top_k, and top_p sensibly.

    - `top_k` (integer, nullable; default value: 0): Introduces randomness into token generation by considering the top k most likely options.

    - `top_p` (number, nullable; default value: 0): Adds randomness by considering the smallest set of tokens whose cumulative probability exceeds top_p.

    - `presence_penalty`, `frequency_penalty`, `sequence_penalty` (number, nullable; default value: 0): Various penalties that can reduce repetition.

    - `sequence_penalty_min_length` (integer; default value: 2): Minimum number of tokens to be considered as a sequence.

    - `repetition_penalties_include_prompt`, `repetition_penalties_include_completion`, `use_multiplicative_presence_penalty`,`use_multiplicative_frequency_penalty`,`use_multiplicative_sequence_penalty` (boolean, nullable; default value: false): Various settings that adjust how the repetition penalties are applied.

    - `penalty_bias` (string, nullable): Text used in addition to the penalized tokens for repetition penalties.

    - `penalty_exceptions` (string[], nullable): Strings that may be generated without penalty.

    - `penalty_exceptions_include_stop_sequences` (boolean, nullable; default value: true): Include all stop_sequences in penalty_exceptions.

    - `best_of` (integer, nullable; default value: 1): The number of completions will be generated on the server side.

    - `n` (integer, nullable; default value: 1): The number of completions to return.

    - `logit_bias` (object, nullable): Adjust the logit scores before sampling.

    - `log_probs` (integer, nullable): Number of top log probabilities for each token generated.

    - `stop_sequences` (string[], nullable): List of strings that will stop generation if they're generated.

    - `tokens` (boolean, nullable; default value: false): Flag indicating whether individual tokens of the completion should be returned or not.

    - `raw_completion` (boolean; default value: false): if True, the raw completion of the model will be returned.

    - `disable_optimizations` (boolean, nullable; default value: false): Disables any applied optimizations to both your prompt and completion.

    - `completion_bias_inclusion`, `completion_bias_exclusion` (string[], default value: []): Set of strings to bias the generation of tokens.

    - `completion_bias_inclusion_first_token_only`, `completion_bias_exclusion_first_token_only` (boolean; default value: false): Consider only the first token for the completion_bias_inclusion/exclusion.

    - `contextual_control_threshold` (number, nullable): Control over how similar tokens are controlled.

    - `control_log_additive` (boolean; default value: true): Method of applying control to attention scores.
    maximum_tokensNminimum_tokensechotemperaturetop_ktop_ppresence_penaltyfrequency_penaltysequence_penaltysequence_penalty_min_length#repetition_penalties_include_prompt'repetition_penalties_include_completion#use_multiplicative_presence_penalty$use_multiplicative_frequency_penalty#use_multiplicative_sequence_penaltypenalty_bias)penalty_exceptions_include_stop_sequencesbest_ofn
logit_bias	log_probsstop_sequencestokensraw_completiondisable_optimizationscompletion_bias_inclusioncompletion_bias_exclusion*completion_bias_inclusion_first_token_only*completion_bias_exclusion_first_token_onlycontextual_control_thresholdcontrol_log_additivereturnc                      t               } | j                         D ]%  \  }!}"|!dk7  s|"t        | j                  |!|"       ' y )Nr   )localsitemssetattrr   )#r   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   locals_keyvalues#                                      r   r   zAlephAlphaConfig.__init__r   s<    D (!--/JCf}!2U3 *r   c                     | j                   j                         D ci c]O  \  }}|j                  d      s9t        |t        j
                  t        j                  t        t        f      s|||Q c}}S c c}}w )N__)	__dict__rD   
startswith
isinstancetypesFunctionTypeBuiltinFunctionTypeclassmethodstaticmethod)clskvs      r   
get_configzAlephAlphaConfig.get_config   sy     **,
,1<<%&&-- 	  qD,
 	
 
s   AA6)NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)/r   r   r   __doc__litellm
max_tokensr"   r   int__annotations__r#   r$   boolr%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   strr2   r3   r4   r5   dictr6   r7   listr8   r9   r:   r;   r<   r=   r>   r?   r@   r   rQ   rV    r   r   r!   r!      s   4n 	 HSM  %)NHSM(D(4.!%K#%E8C=E8C=&*hsm*'+x}+&*hsm*15#5:>'$>>B+Xd^B:>'$>;?((4.?:>'$>"&L(3-&@D-x~D!GXc]!Ax}!%J%#Ix}#%)NHTN)!FHTN!%)NHTN),08D>004x~404x~4AE.EAE.E26 (3-6+/(4./ )-(,#%)##*.+/*.59>BBF>B?C>B&*DH!%%)#')-!%)-044848EIEI6:/3A%4 %4 !%4 tn	%4
 c]%4 }%4 }%4 #3-%4 $C=%4 #3-%4 &.c]%4 .6d^%4 2:$%4 .6d^%4 /7tn%4  .6d^!%4" sm#%4$ 4<D>%%4& #'%4( C=)%4* TN+%4, C=-%4. !/%40 1%42 !3%44  (~5%46 $,D>7%48 $,D>9%4: 5=TN;%4< 5=TN=%4> '/sm?%4@ 'tnA%4B 
C%4N 
 
r   r!   c                 $    ddd}| rd|  |d<   |S )Nzapplication/json)acceptzcontent-typezBearer Authorizationr`   )api_keyheaderss     r   validate_environmentrf      s*    $*G %,WI#6 Nr   modelmessagesapi_basemodel_responseprint_verboseoptional_paramsc                    t        |      }t        j                  j                         }|j	                         D ]  \  }}||vs|||<    |}| } d}d| v rft        |      D ]W  \  }}d|v rE|dk(  r|d|d    z  }|d   dk(  r|d|d    z  }/|d   dk(  r|d	|d    z  }C|d
|d    z  }O||d    z  }Y ndj                  d |D              }| |d|}|j                  ||d|i       t        j                  j                  ||t        j                  |      d|v r|d   nd      }d|v r|d   du r|j                         S |j                  |||j                  d|i        |d|j                          |j                         }d|v rt        |d   |j                         	 g }t        |d         D ]W  \  }}t#        |d         dkD  rt%        |d         }nt%        d       }t'        |d   |dz   |      }|j)                  |       Y ||_        t#        |j/                  |            }t#        |j/                  |d   d   d   d   d !            }t1        t3        j2                               |_        | |_        t9        ||||z   "      }t;        |d#|       |S # t,        $ r+ t        t        j                  |      |j                         w xY w)$N controlroler   z###Instruction: contentsystemuserz
###Input: z###Response:  c              3   &   K   | ]	  }|d      yw)rq   Nr`   ).0r   s     r   	<genexpr>zcompletion.<locals>.<genexpr>   s     EH'),Hs   )rg   promptcomplete_input_dict)inputrd   additional_argsstreamF)re   datar|   T)rz   rd   original_responser{   zraw model_response: error)r   r   completions
completion)rq   finish_reason   )r   indexr   choicesr   r`   )disallowed_special)prompt_tokenscompletion_tokenstotal_tokensusage)rf   rX   r!   rV   rD   	enumeratejoinpre_callmodule_level_clientpostjsondumps
iter_lines	post_calltextr
   r   lenr   r   appendr   	ExceptionencoderZ   timecreatedrg   r   rE   )rg   rh   ri   rj   rk   encodingrd   logging_objrl   litellm_params	logger_fndefault_max_tokens_to_samplere   configrT   rU   completion_urlrx   idxr   r}   r   completion_responsechoices_listitemmessage_obj
choice_objr   r   r   s                                 r   r   r      s    #7+G %%002F1_$!"OA	  NEFE%h/LC 1H 01C0DEEFv(2$4WY5G4H"II F2Jwy/A.B"CCM')2D1E"FFWY/01 0  EHEE D .5   **//ZZ,4,Gx(U	 0 H ?"x'@D'H""$$ 	&mm2D9	 	 	
 	,X]]O<=&mmo))!+G4$00 
!!*+>}+M!NIC4-.2&-d<6H&I&-d&;!(&*?&;!Ag +"J
 !''
3 "O *6& HOOF34OOy)!,Y7	B#%  
 "%TYY[!1$'/&)::

 	//  % JJ':; ( 4 4 s   0A1J, ,4K c                       y )Nr`   r`   r   r   	embeddingr   1  s    r   )NNN)r   r   rN   typingr   r   r   rX   litellm.utilsr   r   r   r   r   r
   r!   rf   r]   r_   r^   r   r   r`   r   r   <module>r      s       %   @ @

i 

P
 P
f( !%xxx x "	x
 x xv	r   