Skip to content

Commit 3d4c0b8

Browse files
committed
Server:ChatON: Add cmdline arguments, load metajson, setup
1 parent 5ede63e commit 3d4c0b8

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

examples/server/server.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2378,6 +2378,10 @@ static void server_print_usage(const char * argv0, const gpt_params & params, co
23782378
printf(" set custom jinja chat template (default: template taken from model's metadata)\n");
23792379
printf(" only commonly used templates are accepted:\n");
23802380
printf(" https://github.com/ggerganov/llama.cpp/wiki/Templates-supported-by-llama_chat_apply_template\n");
2381+
printf(" --chaton-meta-json JsonFile\n");
2382+
printf(" specify the json file containing chat-handshake-template-standard(s)");
2383+
printf(" --chaton-template-id ChatHandshakeTemplateId\n");
2384+
printf(" specify the specific template standard to use from loaded json file");
23812385
printf("\n");
23822386
}
23832387

@@ -2839,6 +2843,24 @@ static void server_params_parse(int argc, char ** argv, server_params & sparams,
28392843
break;
28402844
}
28412845
params.kv_overrides.push_back(kvo);
2846+
}else if (arg == "--chaton-meta-json") {
2847+
if (++i >= argc) {
2848+
invalid_param = true;
2849+
break;
2850+
}
2851+
params.chaton_meta_json = argv[i];
2852+
} else if (arg == "--chaton-template-id") {
2853+
if (++i >= argc) {
2854+
invalid_param = true;
2855+
break;
2856+
}
2857+
std::string got = argv[i];
2858+
std::regex whitespaces(R"(\s+)");
2859+
std::string trimmed = std::regex_replace(got, whitespaces, "");
2860+
if (!trimmed.empty()) {
2861+
params.chaton_template_id = trimmed;
2862+
params.chaton = true;
2863+
}
28422864
} else {
28432865
fprintf(stderr, "error: unknown argument: %s\n", arg.c_str());
28442866
server_print_usage(argv[0], default_params, default_sparams);
@@ -2929,6 +2951,14 @@ int main(int argc, char ** argv) {
29292951
{"system_info", llama_print_system_info()},
29302952
});
29312953

2954+
if (params.chaton) {
2955+
chaton_meta_load(params.chaton_meta_json);
2956+
if (!chaton_meta_ok(params.chaton_template_id)) {
2957+
exit(2);
2958+
}
2959+
sparams.chat_template = params.chaton_template_id;
2960+
}
2961+
29322962
std::unique_ptr<httplib::Server> svr;
29332963
#ifdef CPPHTTPLIB_OPENSSL_SUPPORT
29342964
if (sparams.ssl_key_file != "" && sparams.ssl_cert_file != "") {

0 commit comments

Comments
 (0)