diff options
author | Matvey Soloviev <blackhole89@gmail.com> | 2023-03-12 23:07:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-13 00:07:34 +0200 |
commit | 404fac0d623c9eea74ad7a9347da69e33f10984e (patch) | |
tree | ea5b831847a09c7542fc01554213f4dd5e4f109a | |
parent | 1a0a74300f35ad4868715d684d0bc0effdaa9d31 (diff) |
Fix color getting reset before prompt output done (#65)
(cherry picked from commit 7eb2987619feee04c40eff69b604017d09919cb6)
-rw-r--r-- | main.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
@@ -869,6 +869,7 @@ int main(int argc, char ** argv) { is_interacting = true; } + // set the color for the prompt which will be output initially if (params.use_color) { printf(ANSI_COLOR_YELLOW); } @@ -890,7 +891,7 @@ int main(int argc, char ** argv) { embd.clear(); if (embd_inp.size() <= input_consumed) { - // out of input, sample next token + // out of user input, sample next token const float top_k = params.top_k; const float top_p = params.top_p; const float temp = params.temp; @@ -920,7 +921,7 @@ int main(int argc, char ** argv) { // decrement remaining sampling budget --remaining_tokens; } else { - // if here, it means we are still processing the input prompt + // some user input remains from prompt or interaction, forward it to processing while (embd_inp.size() > input_consumed) { embd.push_back(embd_inp[input_consumed]); last_n_tokens.erase(last_n_tokens.begin()); @@ -930,10 +931,6 @@ int main(int argc, char ** argv) { break; } } - - if (params.use_color && embd_inp.size() <= input_consumed) { - printf(ANSI_COLOR_RESET); - } } // display text @@ -941,6 +938,10 @@ int main(int argc, char ** argv) { for (auto id : embd) { printf("%s", vocab.id_to_token[id].c_str()); } + // reset color to default if we there is no pending user input + if (params.use_color && embd_inp.size() <= input_consumed) { + printf(ANSI_COLOR_RESET); + } fflush(stdout); } |