From d3956aea53369455008159cc405ed4c496976692 Mon Sep 17 00:00:00 2001 From: vvhg1 <94630311+vvhg1@users.noreply.github.com> Date: Sun, 22 Oct 2023 20:09:51 +0200 Subject: [PATCH] main : escape prompt for cfg_negative_prompt and consecutive inputs in main with interactive (#3623) * infill tokens correction * serverinfill tokens correction * removing any leading whitespace from infill suffix and removing leeading space token from suffix when params.escape * removing any leading whitespace from infill suffix and removing leeading space token from suffix when params.escape * only rm when params.escape, rm space if possible which is added back or rm added space token * only rm when params.escape, rm space if possible which is added back or rm added space token * Revert "only rm when params.escape, rm space if possible which is added back or rm added space token" This reverts commit 63ba0b621f21077c0e3bc6ba6a327534123cb738. * fix interactive prompt escaping and fix server infill leading space handling * rm unnecessary bool check * process escapes for neg prompt and interactive consec prompts * removed unneccessary static string escape --- common/common.cpp | 1 + examples/main/main.cpp | 3 +++ 2 files changed, 4 insertions(+) diff --git a/common/common.cpp b/common/common.cpp index 2ef902bd504c4..bbd1518ca2934 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -632,6 +632,7 @@ bool gpt_params_parse(int argc, char ** argv, gpt_params & params) { process_escapes(params.prompt); process_escapes(params.input_prefix); process_escapes(params.input_suffix); + process_escapes(sparams.cfg_negative_prompt); for (auto & antiprompt : params.antiprompt) { process_escapes(antiprompt); } diff --git a/examples/main/main.cpp b/examples/main/main.cpp index db5309afeb117..2621bd539875f 100644 --- a/examples/main/main.cpp +++ b/examples/main/main.cpp @@ -761,6 +761,9 @@ int main(int argc, char ** argv) { n_consumed = embd_inp.size(); embd_inp.insert(embd_inp.end(), inp_pfx.begin(), inp_pfx.end()); } + if (params.escape) { + process_escapes(buffer); + } const auto line_pfx = ::llama_tokenize(ctx, params.input_prefix, false, true); const auto line_inp = ::llama_tokenize(ctx, buffer, false, false);