
    *i4                    p    S SK Jr  S SKrS SKJrJrJrJr  S SKrS SK	J
r
  S SKJr  S SKJr   " S S5      rg)    )annotationsN)DictOptionalUnionList)ModelSettingsc                  `    \ rS rSrSS jrSSS jjrSS jrSS jrS rS r	\
SS	 j5       rS
rg)
LlamaProxy   c                   [        U5      S:  d   S5       e0 U l        U H=  nUR                  (       d  UR                  Ul        X R                  UR                  '   M?     S U l        S U l        US   U l        U R                  R                  U l        U R                  U R                  5      U l        U R                  U l        g )Nr   zNo models provided!)	len_model_settings_dictmodel_aliasmodel_current_model_current_model_alias_default_model_settings_default_model_aliasload_llama_from_model_settings)selfmodelsr   s      T/var/www/html/ai-backend/venv/lib/python3.13/site-packages/llama_cpp/server/model.py__init__LlamaProxy.__init__   s    6{Q5 55>@!E$$$)KK!;@%%e&7&78 
 :>37!6<Qi$)-)E)E)Q)Q! #AA((
 %)$=$=!    Nc                x   Uc  U R                   nXR                  ;  a  U R                   nXR                  :X  a  U R                  b  U R                  $ U R                  (       a  U R                  R	                  5         S U l        U R                  U   nU R                  U5      U l        Xl        U R                  $ N)r   r   r   r   closer   r   r   settingss      r   __call__LlamaProxy.__call__$   s    =--E111--E---"".***%%'",,U3"AA(K$)!"""r   c                <    U R                   U   R                  5       $ r   )r   
model_dumpr   r   s     r   __getitem__LlamaProxy.__getitem__8   s    ((/::<<r   c                    [        U[        [        45      (       a  [        R                  " U5      nX R
                  U'   g r   )
isinstancebytesstrr   model_validate_jsonr   r   s      r   __setitem__LlamaProxy.__setitem__;   s1    h--$88BH+3!!%(r   c              #  :   #    U R                    H  nUv   M	     g 7fr   )r   r%   s     r   __iter__LlamaProxy.__iter__@   s     ..EK /s   c                `    U R                   (       a  U R                   R                  5         U ? g g r   )r   r   )r   s    r   freeLlamaProxy.freeD   s(    %%'# r   c                   S nU R                   S:X  a  U R                  c   S5       eU R                  bI  [        R                  R
                  R                  U R                  U R                  U R                  S9nGO[        R                  R                  U R                  U R                  S9nGOxU R                   S:X  a  U R                  c   S5       eU R                  bI  [        R                  R                  R                  U R                  U R                  U R                  S9nGO[        R                  R                  U R                  U R                  S9nGOU R                   S:X  a  U R                  c   S5       eU R                  bI  [        R                  R                  R                  U R                  U R                  U R                  S9nGOP[        R                  R                  U R                  U R                  S9nGOU R                   S:X  a  U R                  c   S5       eU R                  bI  [        R                  R                  R                  U R                  U R                  U R                  S9nGO[        R                  R                  U R                  U R                  S9nGOnU R                   S:X  a  U R                  c   S5       eU R                  bI  [        R                  R                  R                  U R                  U R                  U R                  S9nGO[        R                  R                  U R                  U R                  S9nGOU R                   S	:X  a  U R                  c   S5       eU R                  bI  [        R                  R                  R                  U R                  U R                  U R                  S9nGOF[        R                  R                  U R                  U R                  S9nGOU R                   S
:X  a  U R                  c   S5       eU R                  bI  [        R                  R                  R                  U R                  U R                  U R                  S9nGO[        R                  R                  U R                  U R                  S9nGOdU R                   S:X  a  U R                  c   S5       eU R                  bH  [        R                  R                  R                  U R                  U R                  U R                  S9nO[        R                  R                  U R                  U R                  S9nOU R                   S:X  a>  U R                  c   S5       e[        R                  R!                  U R                  5      nOjU R                   S:X  aZ  U R"                  c   S5       e[        R                  R%                  [&        R(                  " [+        U R"                  5      5      5      nS nU R                  b)  [,        R.                  R                  U R                  5      nS nU R0                  b  [2        R4                  " U R6                  S9nS nU R8                  b  [;        U R8                  [<        5      (       d   e0 nU R8                   H  nUR?                  S5      u  pgSU;   d  M  UR?                  S5      u  pUS:X  a  URA                  5       S;   XF'   MN  US:X  a  [C        U5      XF'   Mc  US:X  a  [E        U5      XF'   Mx  US:X  a  XtU'   M  [G        SU 35      e   SS K$n	0 n
U R                  b>  U	RK                  [        RL                  R                  U R                  U RN                  S9nO[        RL                  nU RN                  U
S'   U" SG0 U
D0 SU RP                  _SU RR                  _SU RT                  _SU RV                  _S U RX                  _S!U RZ                  _S"U R\                  _S#U_S$U R^                  _S%U R`                  _S&U Rb                  _S'U Rd                  _S(U Rf                  _S)U Rh                  _S*U Rj                  _S+U Rl                  _S,U Rn                  _S-U Rp                  _S.U Rr                  _S/U Rt                  _S0U Rv                  _S1U Rx                  _S2U Rz                  _S3U R|                  _S4U R~                  _S5U R                  _S6U R                  _S7U R                  _S8U R                  _S9U R                  _S:U R                  _S;U R                  _S<U R                   _S=U_S>U_S?U R                  _S@U R                  _SAU_SBU R                  _D6nU R                  (       a  U R                  SC:X  aH  U R                  (       a  [        SDU R                   35        [        R                  " U R                  SE9nOGU R                  (       a  [        SFU R                   35        [        R                  " U R                  SE9nUR                  U5        U$ )HNz	llava-1-5zclip model not found)repo_idfilenameverbose)clip_model_pathr8   obsidianz	llava-1-6	moondream	nanollavazllama-3-vision-alphazminicpm-v-2.6z
qwen2.5-vlzhf-autotokenizerzAhf_pretrained_model_name_or_path must be set for hf-autotokenizerzhf-tokenizer-configz<hf_tokenizer_config_path must be set for hf-tokenizer-config)num_pred_tokens=:bool)true1intfloatr+   zUnknown value type r   )r6   r7   
model_pathn_gpu_layers
split_modemain_gputensor_split
vocab_onlyuse_mmap	use_mlockkv_overridesrpc_serversseedn_ctxn_batchn_ubatch	n_threadsn_threads_batchrope_scaling_typerope_freq_baserope_freq_scaleyarn_ext_factoryarn_attn_factoryarn_beta_fastyarn_beta_slowyarn_orig_ctx	mul_mat_q
logits_all	embeddingoffload_kqv
flash_attnlast_n_tokens_size	lora_base	lora_pathnumachat_formatchat_handlerdraft_modeltype_ktype_v	tokenizerr8   diskzUsing disk cache with size )capacity_byteszUsing ram cache with size  )Prf   r9   hf_model_repo_id	llama_cppllama_chat_formatLlava15ChatHandlerfrom_pretrainedr8   ObsidianChatHandlerLlava16ChatHandlerMoondreamChatHandlerNanoLlavaChatHandlerLlama3VisionAlphaMiniCPMv26ChatHandlerQwen25VLChatHandler hf_pretrained_model_name_or_path+hf_autotokenizer_to_chat_completion_handlerhf_tokenizer_config_path.hf_tokenizer_config_to_chat_completion_handlerjsonloadopenllama_tokenizerLlamaHFTokenizerrh   llama_speculativeLlamaPromptLookupDecodingdraft_model_num_pred_tokensrM   r)   listsplitlowerrC   rD   
ValueError	functoolspartialLlamar   rF   rG   rH   rI   rJ   rK   rL   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   ri   rj   cache
cache_typeprint
cache_sizeLlamaDiskCacheLlamaRAMCache	set_cache)r    rg   rk   rh   rM   kvkeyvalue
value_typer   kwargs	create_fn_modelr   s                 r   r   )LlamaProxy.load_llama_from_model_settingsI   sj
   ;.++7O9OO7((4//BBRR ( 9 9!)!9!9 ( 0 0 S    )::MM$,$<$<hFVFV  N   !!Z/++7O9OO7((4//CCSS ( 9 9!)!9!9 ( 0 0 T    )::NN$,$<$<hFVFV  O   !![0++7O9OO7((4//BBRR ( 9 9!)!9!9 ( 0 0 S    )::MM$,$<$<hFVFV  N   !![0++7O9OO7((4//DDTT ( 9 9!)!9!9 ( 0 0 U    )::OO$,$<$<hFVFV  P   !![0++7O9OO7((4//DDTT ( 9 9!)!9!9 ( 0 0 U    )::OO$,$<$<hFVFV  P   !!%;;++7O9OO7((4//AAQQ ( 9 9!)!9!9 ( 0 0 R    )::LL$,$<$<hFVFV  M   !!_4++7O9OO7((4//EEUU ( 9 9!)!9!9 ( 0 0 V    )::PP$,$<$<hFVFV  Q   !!\1++7O9OO7((4//CCSS ( 9 9!)!9!9 ( 0 0 T    )::NN$,$<$<hFVFV  O   !!%7799ESRSE ++WW== 
 !!%::11=NMN=$66ee		$x@@ABL =A	44@'88HH99I ++EE ( D DK KO  ,h33T::::L++XXc]
%<(-C(8%J!V+,1KKM],J)#u,,/J)#w.,1%L)#u,,1S)(+>zl)KLL , 	$$0!))// 11! * I "I#+>>F<  3
3
 "..3
  **	3

 &&3
 "..3
  **3
 &&3
 ((3
 &3
 !,,3
 3
 ..3
 $$3
  &&!3
" ((#3
$ %44%3
& '88'3
( $22)3
* %44+3
, %44-3
. &66/3
0 $2213
2 $2233
4 #0053
6 ((73
8  **93
: ((;3
< !,,=3
>  **?3
B  (::C3
F ((G3
H ((I3
L M3
P !,,Q3
R &S3
V $W3
Z ??[3
\ ??]3
`  a3
d $$e3
h >>""f,##78K8K7LMN!00@S@ST##6x7J7J6KLM!//x?R?RSU#r   )r   r   r   r   r   )r   zList[ModelSettings]returnNoner   )r   zOptional[str]r   llama_cpp.Llama)r   r+   )r   r+   r    z Union[ModelSettings, str, bytes])r    r   r   r   )__name__
__module____qualname____firstlineno__r   r!   r&   r-   r0   r3   staticmethodr   __static_attributes__rn   r   r   r
   r
      s6    >*#(=4
$
 n nr   r
   )
__future__r   r   typingr   r   r   r   rp   llama_cpp.llama_speculativer   llama_cpp.llama_tokenizerr   llama_cpp.server.settingsr   r
   rn   r   r   <module>r      s)    "  . .  7 3 3j jr   