From fe854daf6d75c72f394184be10e211ecf4da1a1f Mon Sep 17 00:00:00 2001 From: Johnman Date: Tue, 21 Mar 2023 18:21:50 +0100 Subject: [PATCH] Don't force immediate interactive without -i Sometimes we might want to use a reverse prompt but we want to let the model generate tokens right after the initial prompt. So we don't force user input mode if the -i flag wasn't specified and instead let it run until we encounter the reverse prompt. This gives use some more flexibility, since it doesn't force the user to enter a newline if they want to let the model generate text right after the initial prompt and only be asked for input if the reverse prompt is encountered. The `--interactive-first` flag is reintroduced to force the old behavior. `-r` behaves like `-i` plus introduces a reverse prompt (it can be specified more than once). --- main.cpp | 6 +++++- utils.cpp | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/main.cpp b/main.cpp index 4b220c8cf..a3f24d243 100644 --- a/main.cpp +++ b/main.cpp @@ -990,6 +990,10 @@ int main(int argc, char ** argv) { params.interactive = true; } + if (params.interactive_start) { + params.interactive = true; + } + fprintf(stderr, "\n"); fprintf(stderr, "%s: prompt: '%s'\n", __func__, params.prompt.c_str()); fprintf(stderr, "%s: number of tokens in prompt = %zu\n", __func__, embd_inp.size()); @@ -1032,7 +1036,7 @@ int main(int argc, char ** argv) { #endif " - Press Return to return control to LLaMa.\n" " - If you want to submit another line, end your input in '\\'.\n\n"); - is_interacting = true; + is_interacting = params.interactive_start; } int input_consumed = 0; diff --git a/utils.cpp b/utils.cpp index 7c6864c8f..92972c2b6 100644 --- a/utils.cpp +++ b/utils.cpp @@ -66,6 +66,8 @@ bool gpt_params_parse(int argc, char ** argv, gpt_params & params) { params.model = argv[++i]; } else if (arg == "-i" || arg == "--interactive") { params.interactive = true; + } else if (arg == "--interactive-first") { + params.interactive_start = true; } else if (arg == "-ins" || arg == "--instruct") { params.instruct = true; } else if (arg == "--color") {