+1, llama.cpp has a --grammar parameter which you can pass a BNF style grammar file to constrain generation. It can be used in Python llama.cpp wrapper
https://til.simonwillison.net/llms/llama-cpp-python-grammars
25 karma · joined December 18, 2021
https://til.simonwillison.net/llms/llama-cpp-python-grammars