Skip to content

Commit 0c2345c

Browse files
committed
can set chat_template_kwargs in command line
1 parent 820b353 commit 0c2345c

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
@@ -8,6 +8,7 @@
88
#include <string>
99
#include <string_view>
1010
#include <vector>
11+
#include <map>
1112
#include <sstream>
1213

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

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

tools/server/server.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4341,6 +4341,7 @@ int main(int argc, char ** argv) {
43414341
body,
43424342
params.use_jinja,
43434343
params.reasoning_format,
4344+
params.default_template_kwargs,
43444345
ctx_server.chat_templates.get(),
43454346
ctx_server.mctx,
43464347
files);
@@ -4362,6 +4363,7 @@ int main(int argc, char ** argv) {
43624363
body,
43634364
params.use_jinja,
43644365
params.reasoning_format,
4366+
params.default_template_kwargs,
43654367
ctx_server.chat_templates.get(),
43664368
ctx_server.mctx,
43674369
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)
@@ -728,6 +729,10 @@ static json oaicompat_completion_params_parse(
728729
inputs.add_generation_prompt = json_value(body, "add_generation_prompt", true);
729730

730731
auto chat_template_kwargs_object = json_value(body, "chat_template_kwargs", json::object());
732+
for (const auto & item: default_template_kwargs)
733+
{
734+
inputs.chat_template_kwargs[item.first] = item.second;
735+
}
731736
for (const auto & item : chat_template_kwargs_object.items()) {
732737
inputs.chat_template_kwargs[item.key()] = item.value().dump();
733738
}

0 commit comments

Comments
 (0)