* Add json_schema alias for GrammarType
* Add tests for all aliases
* fix: various linter adjustments
* fix: end-of-file-fixer lint
* fix: add test snapshots and avoid docs change
* fix: another end-of-file-fixer lint
* feat: support json_schema grammar constraining and add tests
* fix: bump openapi doc with new grammar option
* fix: adjust test payload
* fix: bump test snaps
---------
Co-authored-by: Alex Weston <alexw@alkymi.io>
* Move JSON grammar -> regex grammar conversion to the router
This change moves the JSON grammar -> regex grammar conversion to the
router by adding a dependency on the `outlines-core` Rust crate. In
contrast to the Python implementation, the conversions are not LRU-cached
since they seem to be fast enough:
simple schema time: [5.8293 µs 5.8307 µs 5.8320 µs]
change: [-13.166% -12.884% -12.641%] (p = 0.00 < 0.05)
Performance has improved.
complex schema time: [14.875 µs 14.881 µs 14.887 µs]
change: [-2.1637% -1.9914% -1.7852%] (p = 0.00 < 0.05)
Performance has improved.
Using the schemas from:
https://github.com/dottxt-ai/outlines-core/blob/main/benchmarks/bench_json_schema.py
* Add pytest release marker
Annotate a test with `@pytest.mark.release` and it only gets run
with `pytest integration-tests --release`.
* Mark many models as `release` to speed up CI