@@ -43,12 +43,13 @@ def __init__(
4343 self ._exit_stack = ExitStack ()
4444
4545 model = None
46+ vocab = None
4647
4748 if not os .path .exists (path_model ):
4849 raise ValueError (f"Model path does not exist: { path_model } " )
4950
5051 with suppress_stdout_stderr (disable = verbose ):
51- model = llama_cpp .llama_load_model_from_file (
52+ model = llama_cpp .llama_model_load_from_file (
5253 self .path_model .encode ("utf-8" ), self .params
5354 )
5455
@@ -57,12 +58,24 @@ def __init__(
5758
5859 self .model = model
5960
61+ vocab = llama_cpp .llama_model_get_vocab (self .model )
62+
63+ if vocab is None :
64+ raise ValueError (f"Failed to load vocab from file: { path_model } " )
65+
66+ self .vocab = vocab
67+
6068 def free_model ():
6169 if self .model is None :
6270 return
63- llama_cpp .llama_free_model (self .model )
71+ llama_cpp .llama_model_free (self .model )
6472 self .model = None
6573
74+ if self .vocab is None :
75+ return
76+ llama_cpp .llama_model_free (self .vocab )
77+ self .vocab = None
78+
6679 self ._exit_stack .callback (free_model )
6780
6881 def close (self ):
@@ -72,19 +85,19 @@ def __del__(self):
7285 self .close ()
7386
7487 def vocab_type (self ) -> int :
75- return llama_cpp .llama_vocab_type (self .model )
88+ return llama_cpp .llama_vocab_type (self .vocab )
7689
7790 def n_vocab (self ) -> int :
78- return llama_cpp .llama_n_vocab (self .model )
91+ return llama_cpp .llama_vocab_n_tokens (self .vocab )
7992
8093 def n_ctx_train (self ) -> int :
81- return llama_cpp .llama_n_ctx_train (self .model )
94+ return llama_cpp .llama_model_n_ctx_train (self .model )
8295
8396 def n_embd (self ) -> int :
84- return llama_cpp .llama_n_embd (self .model )
97+ return llama_cpp .llama_model_n_embd (self .model )
8598
8699 def rope_freq_scale_train (self ) -> float :
87- return llama_cpp .llama_rope_freq_scale_train (self .model )
100+ return llama_cpp .llama_model_rope_freq_scale_train (self .model )
88101
89102 def desc (self ) -> str :
90103 buf = ctypes .create_string_buffer (1024 )
@@ -114,37 +127,40 @@ def token_get_attr(self, token: int) -> int:
114127 # Special tokens
115128
116129 def token_bos (self ) -> int :
117- return llama_cpp .llama_token_bos (self .model )
130+ return llama_cpp .llama_vocab_bos (self .vocab )
118131
119132 def token_eos (self ) -> int :
120- return llama_cpp .llama_token_eos (self .model )
133+ return llama_cpp .llama_vocab_eos (self .vocab )
134+
135+ def token_eot (self ) -> int :
136+ return llama_cpp .llama_vocab_eot (self .vocab )
121137
122138 def token_cls (self ) -> int :
123- return llama_cpp .llama_token_cls (self .model )
139+ return llama_cpp .llama_vocab_cls (self .vocab )
124140
125141 def token_sep (self ) -> int :
126- return llama_cpp .llama_token_sep (self .model )
142+ return llama_cpp .llama_vocab_sep (self .vocab )
127143
128144 def token_nl (self ) -> int :
129- return llama_cpp .llama_token_nl (self .model )
145+ return llama_cpp .llama_vocab_nl (self .vocab )
146+
147+ def token_pad (self ) -> int :
148+ return llama_cpp .llama_vocab_pad (self .vocab )
130149
131150 def token_prefix (self ) -> int :
132- return llama_cpp .llama_token_prefix (self .model )
151+ return llama_cpp .llama_vocab_fim_pre (self .vocab )
133152
134153 def token_middle (self ) -> int :
135- return llama_cpp .llama_token_middle (self .model )
154+ return llama_cpp .llama_vocab_fim_mid (self .vocab )
136155
137156 def token_suffix (self ) -> int :
138- return llama_cpp .llama_token_suffix (self .model )
139-
140- def token_eot (self ) -> int :
141- return llama_cpp .llama_token_eot (self .model )
157+ return llama_cpp .llama_vocab_fim_suf (self .vocab )
142158
143159 def add_bos_token (self ) -> bool :
144- return llama_cpp .llama_add_bos_token (self .model )
160+ return llama_cpp .llama_vocab_get_add_bos (self .vocab )
145161
146162 def add_eos_token (self ) -> bool :
147- return llama_cpp .llama_add_eos_token (self .model )
163+ return llama_cpp .llama_vocab_get_add_eos (self .vocab )
148164
149165 # Tokenization
150166
0 commit comments