From 8f9e546b515341d9ce71aabc01fafb2c78c3c6d9 Mon Sep 17 00:00:00 2001 From: anon Date: Fri, 2 Jun 2023 08:14:28 -0300 Subject: [PATCH] trim partial stopping strings when not streaming --- examples/server/server.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/examples/server/server.cpp b/examples/server/server.cpp index fd11798a2..df9219898 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -761,15 +761,21 @@ int main(int argc, char **argv) llama.beginCompletion(); if (!llama.stream) { + size_t stop_pos = std::string::npos; + while (llama.has_next_token) { const std::string token_text = llama.doCompletion(); - const size_t stop_pos = llama.findStoppingStrings( - llama.generated_text, token_text.size(), STOP_FULL); - if (stop_pos != std::string::npos) { - llama.generated_text.erase(llama.generated_text.begin() + stop_pos, - llama.generated_text.end()); - } + stop_pos = llama.findStoppingStrings(llama.generated_text, + token_text.size(), STOP_FULL); + } + + if (stop_pos == std::string::npos) { + stop_pos = llama.findStoppingStrings(llama.generated_text, 0, STOP_PARTIAL); + } + if (stop_pos != std::string::npos) { + llama.generated_text.erase(llama.generated_text.begin() + stop_pos, + llama.generated_text.end()); } json data = {{"content", llama.generated_text},