Skip to content

Commit baa2418

Browse files
matteoservamatteo
authored andcommitted
can set chat_template_kwargs in command line
1 parent 5bc94b9 commit baa2418

File tree

4 files changed

+20
-0
lines changed

4 files changed

+20
-0
lines changed

common/arg.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2774,6 +2774,16 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
27742774
params.ssl_file_cert = value;
27752775
}
27762776
).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_SSL_CERT_FILE"));
2777+
add_opt(common_arg(
2778+
{"--chat-template-kwargs"}, "STRING",
2779+
string_format("sets additional params for the json template parser"),
2780+
[](common_params & params, const std::string & value) {
2781+
auto parsed = json::parse(value);
2782+
for (const auto & item : parsed.items()) {
2783+
params.default_template_kwargs[item.key()] = item.value().dump();
2784+
}
2785+
}
2786+
).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("CHAT_TEMPLATE_KWARGS"));
27772787
add_opt(common_arg(
27782788
{"-to", "--timeout"}, "N",
27792789
string_format("server read/write timeout in seconds (default: %d)", params.timeout_read),

common/common.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <set>
88
#include <string>
99
#include <vector>
10+
#include <map>
1011
#include <sstream>
1112

1213
#ifdef _WIN32
@@ -373,6 +374,8 @@ struct common_params {
373374
std::string ssl_file_key = ""; // NOLINT
374375
std::string ssl_file_cert = ""; // NOLINT
375376

377+
std::map<std::string,std::string> default_template_kwargs;
378+
376379
// "advanced" endpoints are disabled by default for better security
377380
bool webui = true;
378381
bool endpoint_slots = false;

tools/server/server.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4336,6 +4336,7 @@ int main(int argc, char ** argv) {
43364336
body,
43374337
params.use_jinja,
43384338
params.reasoning_format,
4339+
params.default_template_kwargs,
43394340
ctx_server.chat_templates.get(),
43404341
ctx_server.mctx,
43414342
files);
@@ -4357,6 +4358,7 @@ int main(int argc, char ** argv) {
43574358
body,
43584359
params.use_jinja,
43594360
params.reasoning_format,
4361+
params.default_template_kwargs,
43604362
ctx_server.chat_templates.get(),
43614363
ctx_server.mctx,
43624364
files);

tools/server/utils.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -584,6 +584,7 @@ static json oaicompat_completion_params_parse(
584584
const json & body, /* openai api json semantics */
585585
bool use_jinja,
586586
common_reasoning_format reasoning_format,
587+
const std::map<std::string,std::string> default_template_kwargs,
587588
const struct common_chat_templates * tmpls,
588589
bool allow_non_text,
589590
std::vector<raw_buffer> & out_files)
@@ -716,6 +717,10 @@ static json oaicompat_completion_params_parse(
716717
inputs.add_generation_prompt = json_value(body, "add_generation_prompt", true);
717718

718719
auto chat_template_kwargs_object = json_value(body, "chat_template_kwargs", json::object());
720+
for (const auto & item: default_template_kwargs)
721+
{
722+
inputs.chat_template_kwargs[item.first] = item.second;
723+
}
719724
for (const auto & item : chat_template_kwargs_object.items()) {
720725
inputs.chat_template_kwargs[item.key()] = item.value().dump();
721726
}

0 commit comments

Comments
 (0)