Skip to content

Commit d84b0c2

Browse files
committed
fix(model): handle missing chat templates
- Update LlamaModel.model_chat_template() to return Optional[str] and accept name=None for the default model chat template. - llama_model_chat_template() may return nullptr when no chat template is available. Handle that case explicitly instead of decoding a null pointer, and return None so callers can apply their own fallback logic. Signed-off-by: JamePeng <jame_peng@sina.com>
1 parent 1965d5f commit d84b0c2

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

llama_cpp/_internals.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -152,12 +152,17 @@ def model_size(self) -> int:
152152
"""
153153
return llama_cpp.llama_model_size(self.model)
154154

155-
def model_chat_template(self, name: bytes) -> str:
155+
def model_chat_template(self, name: Optional[bytes] = None) -> Optional[str]:
156156
"""
157-
Get the default chat template. Returns nullptr if not available
158-
If name is NULL, returns the default chat template
157+
Get a chat template from the model.
158+
159+
If name is None, returns the default chat template.
160+
Returns None if no chat template is available.
159161
"""
160-
return llama_cpp.llama_model_chat_template(self.model, name).decode("utf-8")
162+
template = llama_cpp.llama_model_chat_template(self.model, name)
163+
if template is None:
164+
return None
165+
return template.decode("utf-8")
161166

162167
def n_params(self) -> int:
163168
"""

0 commit comments

Comments
 (0)