Skip to content

Commit 4b6157b

Browse files
committed
can set chat_template_kwargs in command line
1 parent 3a519a1 commit 4b6157b

File tree

4 files changed

+19
-0
lines changed

4 files changed

+19
-0
lines changed

common/arg.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2775,6 +2775,16 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
27752775
params.ssl_file_cert = value;
27762776
}
27772777
).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("LLAMA_ARG_SSL_CERT_FILE"));
2778+
add_opt(common_arg(
2779+
{"--chat-template-kwargs"}, "STRING",
2780+
string_format("sets additional params for the json template parser"),
2781+
[](common_params & params, const std::string & value) {
2782+
auto parsed = json::parse(value);
2783+
for (const auto & item : parsed.items()) {
2784+
params.default_template_kwargs[item.key()] = item.value().dump();
2785+
}
2786+
}
2787+
).set_examples({LLAMA_EXAMPLE_SERVER}).set_env("CHAT_TEMPLATE_KWARGS"));
27782788
add_opt(common_arg(
27792789
{"-to", "--timeout"}, "N",
27802790
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
@@ -8,6 +8,7 @@
88
#include <string>
99
#include <string_view>
1010
#include <vector>
11+
#include <map>
1112
#include <sstream>
1213

1314
#ifdef _WIN32
@@ -375,6 +376,8 @@ struct common_params {
375376
std::string ssl_file_key = ""; // NOLINT
376377
std::string ssl_file_cert = ""; // NOLINT
377378

379+
std::map<std::string,std::string> default_template_kwargs;
380+
378381
// "advanced" endpoints are disabled by default for better security
379382
bool webui = true;
380383
bool endpoint_slots = false;

tools/server/server.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2092,6 +2092,7 @@ struct server_context {
20922092
/* use_jinja */ params_base.use_jinja,
20932093
/* prefill_assistant */ params_base.prefill_assistant,
20942094
/* reasoning_format */ params_base.reasoning_format,
2095+
/* chat_template_kwargs */ params_base.default_template_kwargs,
20952096
/* common_chat_templates */ chat_templates.get(),
20962097
/* allow_image */ mctx ? mtmd_support_vision(mctx) : false,
20972098
/* allow_audio */ mctx ? mtmd_support_audio (mctx) : false,

tools/server/utils.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -585,6 +585,7 @@ struct oaicompat_parser_options {
585585
bool use_jinja;
586586
bool prefill_assistant;
587587
common_reasoning_format reasoning_format;
588+
const std::map<std::string,std::string> chat_template_kwargs;
588589
common_chat_templates * tmpls;
589590
bool allow_image;
590591
bool allow_audio;
@@ -759,6 +760,10 @@ static json oaicompat_chat_params_parse(
759760
inputs.add_generation_prompt = json_value(body, "add_generation_prompt", true);
760761

761762
auto chat_template_kwargs_object = json_value(body, "chat_template_kwargs", json::object());
763+
for (const auto & item: default_template_kwargs)
764+
{
765+
inputs.chat_template_kwargs[item.first] = item.second;
766+
}
762767
for (const auto & item : chat_template_kwargs_object.items()) {
763768
inputs.chat_template_kwargs[item.key()] = item.value().dump();
764769
}

0 commit comments

Comments
 (0)