]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
main : add -sysf / --system-prompt-file (#12249) (#12250)
authorSigbjørn Skjæret <redacted>
Fri, 14 Mar 2025 15:57:05 +0000 (16:57 +0100)
committerGitHub <redacted>
Fri, 14 Mar 2025 15:57:05 +0000 (16:57 +0100)
* add system_prompt_file

* add -sysf / --system-prompt-file

* remove system_prompt_file

common/arg.cpp

index fe6a1eece7fed2b8a57859da965276a8513eeeb1..240c699a2cf7687c36b7f2a107068388a3653fe6 100644 (file)
@@ -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<char>(file), std::istreambuf_iterator<char>(), 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)",