Show HN: Grammar Generator App for Llama.cpp (grammar.intrinsiclabs.ai)
llama.cpp added context-free grammar guided generation functionality. It requires passing a file in a derivative of BNF notation, which gets messy very quickly for things like JSON.
To improve the experience, we built a small compiler from TypeScript interfaces to the grammar file format and have it hosted in a little browser app.
See more in discussion at https://github.com/ggerganov/llama.cpp/discussions/2494
6 comments
[ 2.8 ms ] story [ 37.0 ms ] thread1. In the app, write a TypeScript schema for this, one good example could be
If you click Generate you'll see it generate a context-free grammar looking text, which is what llama.cpp reads. Click the download file to save it as grammar.gbnf2. Grab a model for llama.cpp, e.g. this quantized Llama2 chat model: https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGML/blob/ma...
3. Grab the prompt in this gist (https://gist.github.com/a10y/d926039eee63cc2bcaf6345f9a419e3...) and save as prompt.txt
4. Compile a recent commit of llama.cpp and run the following command
EDIT: fixed some typosBeing a natural-language person, I thought your tool might be something that, say, generates rules for verb conjugations from a corpus of a human language.
I didn't know Llama.cpp had this grammar feature, so this is interesting.
https://github.com/ggerganov/llama.cpp/pull/1773