├── .github └── workflows │ ├── publish_to_pypi.yml │ └── run_tests.yml ├── .gitignore ├── .pre-commit-config.yaml ├── .vscode └── settings.json ├── CHANGELOG.md ├── CONTRIBUTORS.md ├── LICENSE ├── README.md ├── docs ├── Intro.drawio ├── Intro.webp ├── Logo.png ├── Trees.drawio └── Trees.drawio.svg ├── lmformatenforcer ├── __init__.py ├── analyzer.py ├── characterlevelparser.py ├── consts.py ├── exceptions.py ├── external │ ├── __init__.py │ ├── jsonschemaobject.py │ └── jsonschemaobjectutil.py ├── integrations │ ├── __init__.py │ ├── exllamav2.py │ ├── haystackv1.py │ ├── haystackv2.py │ ├── llamacpp.py │ ├── transformers.py │ ├── trtllm.py │ └── vllm.py ├── jsonschemaparser.py ├── regexparser.py ├── tokenenforcer.py ├── tokenizerprefixtree.py └── tokenlist.py ├── pyproject.toml ├── samples ├── colab_exllamav2_integration.ipynb ├── colab_haystackv1_integration.ipynb ├── colab_haystackv2_integration.ipynb ├── colab_llama2_enforcer.ipynb ├── colab_llama32_vision_enforcer.ipynb ├── colab_llama32_vision_input.png ├── colab_llamacpppython_integration.ipynb ├── colab_llamaindex_integration.ipynb ├── colab_trtllm_integration.ipynb └── colab_vllm_integration.ipynb ├── tests ├── __init__.py ├── common.py ├── test_composite_parsers.py ├── test_jsonschemaparser.py ├── test_regexparser.py ├── test_tokenizercaching.py └── test_transformerenforcer.py └── tox.ini /.github/workflows/publish_to_pypi.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/.github/workflows/publish_to_pypi.yml -------------------------------------------------------------------------------- /.github/workflows/run_tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/.github/workflows/run_tests.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/.gitignore -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CONTRIBUTORS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/CONTRIBUTORS.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/README.md -------------------------------------------------------------------------------- /docs/Intro.drawio: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/docs/Intro.drawio -------------------------------------------------------------------------------- /docs/Intro.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/docs/Intro.webp -------------------------------------------------------------------------------- /docs/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/docs/Logo.png -------------------------------------------------------------------------------- /docs/Trees.drawio: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/docs/Trees.drawio -------------------------------------------------------------------------------- /docs/Trees.drawio.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/docs/Trees.drawio.svg -------------------------------------------------------------------------------- /lmformatenforcer/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/lmformatenforcer/__init__.py -------------------------------------------------------------------------------- /lmformatenforcer/analyzer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/lmformatenforcer/analyzer.py -------------------------------------------------------------------------------- /lmformatenforcer/characterlevelparser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/lmformatenforcer/characterlevelparser.py -------------------------------------------------------------------------------- /lmformatenforcer/consts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/lmformatenforcer/consts.py -------------------------------------------------------------------------------- /lmformatenforcer/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/lmformatenforcer/exceptions.py -------------------------------------------------------------------------------- /lmformatenforcer/external/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lmformatenforcer/external/jsonschemaobject.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/lmformatenforcer/external/jsonschemaobject.py -------------------------------------------------------------------------------- /lmformatenforcer/external/jsonschemaobjectutil.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/lmformatenforcer/external/jsonschemaobjectutil.py -------------------------------------------------------------------------------- /lmformatenforcer/integrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lmformatenforcer/integrations/exllamav2.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/lmformatenforcer/integrations/exllamav2.py -------------------------------------------------------------------------------- /lmformatenforcer/integrations/haystackv1.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/lmformatenforcer/integrations/haystackv1.py -------------------------------------------------------------------------------- /lmformatenforcer/integrations/haystackv2.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/lmformatenforcer/integrations/haystackv2.py -------------------------------------------------------------------------------- /lmformatenforcer/integrations/llamacpp.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/lmformatenforcer/integrations/llamacpp.py -------------------------------------------------------------------------------- /lmformatenforcer/integrations/transformers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/lmformatenforcer/integrations/transformers.py -------------------------------------------------------------------------------- /lmformatenforcer/integrations/trtllm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/lmformatenforcer/integrations/trtllm.py -------------------------------------------------------------------------------- /lmformatenforcer/integrations/vllm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/lmformatenforcer/integrations/vllm.py -------------------------------------------------------------------------------- /lmformatenforcer/jsonschemaparser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/lmformatenforcer/jsonschemaparser.py -------------------------------------------------------------------------------- /lmformatenforcer/regexparser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/lmformatenforcer/regexparser.py -------------------------------------------------------------------------------- /lmformatenforcer/tokenenforcer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/lmformatenforcer/tokenenforcer.py -------------------------------------------------------------------------------- /lmformatenforcer/tokenizerprefixtree.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/lmformatenforcer/tokenizerprefixtree.py -------------------------------------------------------------------------------- /lmformatenforcer/tokenlist.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/lmformatenforcer/tokenlist.py -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/pyproject.toml -------------------------------------------------------------------------------- /samples/colab_exllamav2_integration.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/samples/colab_exllamav2_integration.ipynb -------------------------------------------------------------------------------- /samples/colab_haystackv1_integration.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/samples/colab_haystackv1_integration.ipynb -------------------------------------------------------------------------------- /samples/colab_haystackv2_integration.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/samples/colab_haystackv2_integration.ipynb -------------------------------------------------------------------------------- /samples/colab_llama2_enforcer.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/samples/colab_llama2_enforcer.ipynb -------------------------------------------------------------------------------- /samples/colab_llama32_vision_enforcer.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/samples/colab_llama32_vision_enforcer.ipynb -------------------------------------------------------------------------------- /samples/colab_llama32_vision_input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/samples/colab_llama32_vision_input.png -------------------------------------------------------------------------------- /samples/colab_llamacpppython_integration.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/samples/colab_llamacpppython_integration.ipynb -------------------------------------------------------------------------------- /samples/colab_llamaindex_integration.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/samples/colab_llamaindex_integration.ipynb -------------------------------------------------------------------------------- /samples/colab_trtllm_integration.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/samples/colab_trtllm_integration.ipynb -------------------------------------------------------------------------------- /samples/colab_vllm_integration.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/samples/colab_vllm_integration.ipynb -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/common.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/tests/common.py -------------------------------------------------------------------------------- /tests/test_composite_parsers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/tests/test_composite_parsers.py -------------------------------------------------------------------------------- /tests/test_jsonschemaparser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/tests/test_jsonschemaparser.py -------------------------------------------------------------------------------- /tests/test_regexparser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/tests/test_regexparser.py -------------------------------------------------------------------------------- /tests/test_tokenizercaching.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/tests/test_tokenizercaching.py -------------------------------------------------------------------------------- /tests/test_transformerenforcer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/tests/test_transformerenforcer.py -------------------------------------------------------------------------------- /tox.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/noamgat/lm-format-enforcer/HEAD/tox.ini --------------------------------------------------------------------------------