
    ^hN                     N    S SK r S SKJr  S SKrS SKJr  S SKJr   " S S\5      rg)    N)Optional)OpenAITextCompletionConfig)GenericStreamingChunkc                   `  ^  \ 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S\\   S\\
   S
\\   S\\
   S\\
   S\\   S	\\
   S\\   SS4S jjr\U 4S j5       rS\4S jrS\S\S\S\S\4
S jrS\S\4S jrSrU =r$ )CodestralTextCompletionConfig   zG
Reference: https://docs.mistral.ai/api/#operation/createFIMCompletion
Nsuffixtemperature
max_tokens
min_tokensstreamrandom_seedtop_pstopreturnc	                     [        5       R                  5       n	U	R                  5        H(  u  pU
S:w  d  M  Uc  M  [        U R                  X5        M*     g )Nself)localscopyitemssetattr	__class__)r   r	   r
   r   r   r   r   r   r   locals_keyvalues               j/home/james-whalen/.local/lib/python3.13/site-packages/litellm/llms/codestral/completion/transformation.py__init__&CodestralTextCompletionConfig.__init__   s=     (--/!--/JCf}!23 *    c                     > [         TU ]  5       $ )N)super
get_config)clsr   s    r   r"   (CodestralTextCompletionConfig.get_config$   s    w!##r   modelc                 
    / SQ$ )N)r	   r
   r   r   max_completion_tokensr   seedr    )r   r%   s     r   get_supported_openai_params9CodestralTextCompletionConfig.get_supported_openai_params(   s    	
 		
r   non_default_paramsoptional_paramsdrop_paramsc                     UR                  5        Hb  u  pVUS:X  a  XbS'   US:X  a  XbS'   US:X  a  XbS'   US:X  d  US:X  a  XbS'   US:X  a	  USL a  XbS'   US:X  a  XbS'   US	:X  a  XbS
'   US:X  d  M^  XbS'   Md     U$ )Nr	   r
   r   r   r'   r   Tr   r(   r   r   )r   )r   r,   r-   r%   r.   paramr   s          r   map_openai_params/CodestralTextCompletionConfig.map_openai_params4   s     /446LE ,1)%16.+0($1H(H05- Ud],1)*/'16.$05-! 7$ r   
chunk_datac                    SnSnS nS nUR                  SS5      nUR                  5       n[        U5      S:X  d  US:X  a  SUUS.$ [        R                  " U5      n[
        R                  " S0 UDSS0D6nUR                  S	/ 5      =(       d    / nUS   n	U	R                  S
0 5      R                  SS5      nU	R                  S5      b$  SnU	R                  S5      nU	R                  S5      n[        UUUUUS9$ )N Fzdata:r   z[DONE])textis_finishedfinish_reasonr   Tchoicesdeltacontentr8   logprobs)r6   original_chunkr7   r8   r<   r)   )	replacestriplenjsonloadslitellmModelResponsegetr   )
r   r3   r6   r7   r8   r<   chunk_data_dictr=   _choices_choices
             r   _chunk_parser+CodestralTextCompletionConfig._chunk_parserO   s   ''4
%%'
z?a:#9*!. 
 **Z0 ..NNN"&&y"5;1+{{7B'++Ir:;;'3K#KK8M{{:.H$)#'
 	
r   r)   )NNNNNNNN)__name__
__module____qualname____firstlineno____doc__r	   r   str__annotations__r
   intr   r   r   boolr   floatr   classmethodr"   r*   dictr1   r   rI   __static_attributes____classcell__)r   s   @r   r   r      sc    !FHSM !%K#% $J$ $J$!FHTN!!%K#% !%%)!%$($(!%%)"44 c]4 	4
 SM4 SM4 4 c]4 sm4 
4  $ $

 

   	
  
6
 
0E 
 
r   r   )	rA   typingr   rC   -litellm.llms.openai.completion.transformationr   litellm.types.llms.databricksr   r   r)   r   r   <module>r\      s#       T ?f
$> f
r   