v0.4.0
Summary
- faster
Formattercompilation - Refactors to make internal implementation and public API cleaner
- Native support for basic json schema(all
typekeyword constraints and recursion) - Basic support for substring extraction
What's changed
- Removed
grammar_generatorspackage completely.JsonExtractorclass is moved toformats.jsonpackage.
FormatterBuilder.schema()is removed.- Added
FormatterBuilder.json()which is simpler to use thanFormatterBuilder.schema(). RegexExtractoris moved fromextractortoformats.regexkbnf_representationis renamed tokbnf_referenceandnonterminalis renamed tokbnf_definitionfor clarity inExtractor.NonterminalExtractoris added to better illustrate the differences in interfaces&implementation betweenLiteralExtractorand other extractors.LiteralExtractoris private now,- Bug fix: JsonExtractor will no longer produce
Nonewhen parsing json where some keys/values contain{or}. - Make
Formatroncompatible with the newestvllm==0.6.0andexllamav2==0.2.1. - Faster constrained decoding with
exllamav2integration thanks to @turboderp 's optimizations in hisexllamav2library. - Faster
kbnf.Vocabularycreation by @turboderp in #10 - Update docs, benchmarks and comments accordingly.
Full Changelog: v0.3.4...v0.4.0