Skip to content

Commit e5bebe5

Browse files
authored
gguf-py : add --chat-template-file to gguf_new_metadata (#15075)
1 parent ef0144c commit e5bebe5

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

gguf-py/gguf/scripts/gguf_new_metadata.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ def main() -> None:
111111
parser.add_argument("--general-description", type=str, help="The models general.description", metavar='"Description ..."')
112112
parser.add_argument("--chat-template", type=str, help="Chat template string (or JSON string containing templates)", metavar='"{% ... %} ..."')
113113
parser.add_argument("--chat-template-config", type=Path, help="Config file containing chat template(s)", metavar='tokenizer_config.json')
114+
parser.add_argument("--chat-template-file", type=Path, help="Jinja file containing chat template", metavar='chat_template.jinja')
114115
parser.add_argument("--pre-tokenizer", type=str, help="The models tokenizer.ggml.pre", metavar='"pre tokenizer"')
115116
parser.add_argument("--remove-metadata", action="append", type=str, help="Remove metadata (by key name) from output model", metavar='general.url')
116117
parser.add_argument("--special-token", action="append", type=str, help="Special token by value", nargs=2, metavar=(' | '.join(token_names.keys()), '"<token>"'))
@@ -134,12 +135,17 @@ def main() -> None:
134135
new_metadata[gguf.Keys.Tokenizer.CHAT_TEMPLATE] = MetadataDetails(gguf.GGUFValueType.STRING, json.loads(args.chat_template) if args.chat_template.startswith('[') else args.chat_template)
135136

136137
if args.chat_template_config:
137-
with open(args.chat_template_config, 'r') as fp:
138+
with open(args.chat_template_config, 'r', encoding='utf-8') as fp:
138139
config = json.load(fp)
139140
template = config.get('chat_template')
140141
if template:
141142
new_metadata[gguf.Keys.Tokenizer.CHAT_TEMPLATE] = MetadataDetails(gguf.GGUFValueType.STRING, template)
142143

144+
if args.chat_template_file:
145+
with open(args.chat_template_file, 'r', encoding='utf-8') as fp:
146+
template = fp.read()
147+
new_metadata[gguf.Keys.Tokenizer.CHAT_TEMPLATE] = MetadataDetails(gguf.GGUFValueType.STRING, template)
148+
143149
if args.pre_tokenizer:
144150
new_metadata[gguf.Keys.Tokenizer.PRE] = MetadataDetails(gguf.GGUFValueType.STRING, args.pre_tokenizer)
145151

0 commit comments

Comments
 (0)