From: Sigbjørn Skjæret Date: Fri, 14 Mar 2025 15:57:05 +0000 (+0100) Subject: main : add -sysf / --system-prompt-file (#12249) (#12250) X-Git-Tag: upstream/0.0.5028~140 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=774973b8f3d5e375b0b74d58638eeb1817e950a8;p=pkg%2Fggml%2Fsources%2Fllama.cpp main : add -sysf / --system-prompt-file (#12249) (#12250) * add system_prompt_file * add -sysf / --system-prompt-file * remove system_prompt_file --- diff --git a/common/arg.cpp b/common/arg.cpp index fe6a1eec..240c699a 100644 --- a/common/arg.cpp +++ b/common/arg.cpp @@ -853,6 +853,20 @@ common_params_context common_params_parser_init(common_params & params, llama_ex } } ).set_excludes({LLAMA_EXAMPLE_SERVER})); + add_opt(common_arg( + {"-sysf", "--system-prompt-file"}, "FNAME", + "a file containing the system prompt (default: none)", + [](common_params & params, const std::string & value) { + std::ifstream file(value); + if (!file) { + throw std::runtime_error(string_format("error: failed to open file '%s'\n", value.c_str())); + } + std::copy(std::istreambuf_iterator(file), std::istreambuf_iterator(), back_inserter(params.system_prompt)); + if (!params.system_prompt.empty() && params.system_prompt.back() == '\n') { + params.system_prompt.pop_back(); + } + } + ).set_examples({LLAMA_EXAMPLE_MAIN})); add_opt(common_arg( {"--in-file"}, "FNAME", "an input file (repeat to specify multiple files)",