grammar : handle missing "root" node (#6004)

This commit is contained in:
Clint Herron 2024-03-13 14:10:40 -04:00 committed by GitHub
parent f30ea47a87
commit 463628372d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -17,6 +17,13 @@ struct llama_sampling_context * llama_sampling_init(const struct llama_sampling_
return nullptr; return nullptr;
} }
// Ensure that there is a "root" node.
if (result->parsed_grammar.symbol_ids.find("root") == result->parsed_grammar.symbol_ids.end()) {
fprintf(stderr, "%s: grammar does not contain a 'root' symbol\n", __func__);
delete result;
return nullptr;
}
std::vector<const llama_grammar_element *> grammar_rules(result->parsed_grammar.c_rules()); std::vector<const llama_grammar_element *> grammar_rules(result->parsed_grammar.c_rules());
result->grammar = llama_grammar_init( result->grammar = llama_grammar_init(