From 052def37fc4bb808847450f93e5471f0a07af78b Mon Sep 17 00:00:00 2001 From: Jaepil Jeong Date: Fri, 18 Jul 2025 10:49:01 +0900 Subject: [PATCH 1/2] Update llama_chat_format.py --- llama_cpp/llama_chat_format.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/llama_cpp/llama_chat_format.py b/llama_cpp/llama_chat_format.py index 2a7d575ce6..77a2a4b3bd 100644 --- a/llama_cpp/llama_chat_format.py +++ b/llama_cpp/llama_chat_format.py @@ -5,6 +5,7 @@ import json import ctypes import dataclasses +import datetime import random import string @@ -208,11 +209,20 @@ def __init__( set(stop_token_ids) if stop_token_ids is not None else None ) - self._environment = ImmutableSandboxedEnvironment( - loader=jinja2.BaseLoader(), + # self._environment = ImmutableSandboxedEnvironment( + # loader=jinja2.BaseLoader(), + # trim_blocks=True, + # lstrip_blocks=True, + # ).from_string(self.template) + + environment = ImmutableSandboxedEnvironment( trim_blocks=True, lstrip_blocks=True, - ).from_string(self.template) + extensions=[jinja2_ext.loopcontrols], + ) + environment.filters["tojson"] = lambda x, indent=None, separators=None, sort_keys=False: json.dumps(x, indent=indent, separators=separators, sort_keys=sort_keys, ensure_ascii=False) + environment.globals["strftime_now"] = lambda format: datetime.datetime.now().strftime(format) + self._environment = environment.from_string(self.template) def __call__( self, From 858cc3bc455e3f431cb3d7fabdd430a63e117917 Mon Sep 17 00:00:00 2001 From: Jaepil Jeong Date: Fri, 18 Jul 2025 10:51:05 +0900 Subject: [PATCH 2/2] Update llama_chat_format.py --- llama_cpp/llama_chat_format.py | 1 + 1 file changed, 1 insertion(+) diff --git a/llama_cpp/llama_chat_format.py b/llama_cpp/llama_chat_format.py index 77a2a4b3bd..17b5140e2e 100644 --- a/llama_cpp/llama_chat_format.py +++ b/llama_cpp/llama_chat_format.py @@ -24,6 +24,7 @@ ) import jinja2 +import jinja2.ext as jinja2_ext from jinja2.sandbox import ImmutableSandboxedEnvironment import numpy as np