diff options
author | Martin Krasser <krasserm@googlemail.com> | 2023-08-10 12:16:38 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-10 13:16:38 +0300 |
commit | 1638757767072a4957f52b9e3594f0b67610631b (patch) | |
tree | 69741d51e240502b4b1999c74f47058389ca3396 /examples/server | |
parent | 916a9acdd0a411426690400ebe2bb7ce840a6bba (diff) |
Fix grammar-based sampling issue in server (#2566)
Diffstat (limited to 'examples/server')
-rw-r--r-- | examples/server/server.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/examples/server/server.cpp b/examples/server/server.cpp index 10ae264f..637f6d6c 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -196,6 +196,7 @@ struct llama_server_context llama_context *ctx = nullptr; gpt_params params; + grammar_parser::parse_state parsed_grammar; llama_grammar *grammar = nullptr; bool truncated = false; @@ -241,10 +242,13 @@ struct llama_server_context stopped_limit = false; stopping_word = ""; multibyte_pending = 0; - grammar = nullptr; - n_remain = 0; n_past = 0; + + if (grammar != nullptr) { + llama_grammar_free(grammar); + grammar = nullptr; + } } bool loadModel(const gpt_params ¶ms_) @@ -265,8 +269,6 @@ struct llama_server_context bool loadGrammar() { if (!params.grammar.empty()) { - grammar_parser::parse_state parsed_grammar; - parsed_grammar = grammar_parser::parse(params.grammar.c_str()); // will be empty (default) if there are parse errors if (parsed_grammar.rules.empty()) { |