diff options
author | Clint Herron <hanclinto@gmail.com> | 2024-04-04 03:44:28 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-04 10:44:28 +0300 |
commit | 9b84ae1806cded4d6683c7b810925da5ead40607 (patch) | |
tree | 608fa8160885c5c7571c8bd400fa59d9a2ee7e78 /llama.cpp | |
parent | 4399f13fb9462cd06f3f154d0aee738425000fea (diff) |
examples : add GBNF validator program (#5948)
* Revising GBNF validator program to be much simpler.
* Changing from streams to using cstdio
* Adding final newline character.
Diffstat (limited to 'llama.cpp')
-rw-r--r-- | llama.cpp | 22 |
1 files changed, 2 insertions, 20 deletions
@@ -11621,28 +11621,10 @@ static std::vector<llama_vocab::id> llama_tokenize_internal(const llama_vocab & // grammar - internal // -struct llama_partial_utf8 { - uint32_t value; // bit value so far (unshifted) - int n_remain; // num bytes remaining; -1 indicates invalid sequence -}; - -struct llama_grammar { - const std::vector<std::vector<llama_grammar_element>> rules; - std::vector<std::vector<const llama_grammar_element *>> stacks; - - // buffer for partially generated UTF-8 sequence from accepted tokens - llama_partial_utf8 partial_utf8; -}; - -struct llama_grammar_candidate { - size_t index; - const uint32_t * code_points; - llama_partial_utf8 partial_utf8; -}; // Decodes a UTF-8 string which may end in an incomplete sequence. Adds a terminating 0 for use as // pointer. If an invalid sequence is encountered, returns `llama_partial_utf8.n_remain == -1`. -static std::pair<std::vector<uint32_t>, llama_partial_utf8> decode_utf8( +std::pair<std::vector<uint32_t>, llama_partial_utf8> decode_utf8( const std::string & src, llama_partial_utf8 partial_start) { static const int lookup[] = { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 2, 2, 3, 4 }; @@ -11844,7 +11826,7 @@ static void llama_grammar_advance_stack( // be positioned at a character range (see `llama_grammar_advance_stack`), and // produces the N possible stacks if the given char is accepted at those // positions -static std::vector<std::vector<const llama_grammar_element *>> llama_grammar_accept( +std::vector<std::vector<const llama_grammar_element *>> llama_grammar_accept( const std::vector<std::vector<llama_grammar_element>> & rules, const std::vector<std::vector<const llama_grammar_element *>> & stacks, const uint32_t chr) { |