json
: $ref + object overhaul (https & recursive $refs, mix properties & allOf)
#8199
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Update
$ref
&object
handling in JSON Schema -> GBNF converters:Support recursive
$ref
s (fixes Bug: JSON Schema - enum behind a $ref generates an object with unrestricted properties #8073)Resolve
https
$ref
s in C++ converter when built w/LLAMA_CURL=1
(caching result in RAM for now, may want to introduce HTTP caching semantics at some point)Allow mixing
properties
&anyOf
(simplified / unifiedobject
conversion code)Show example
Remove allowFetch options from Python & JS converters (kinda breaking change)
Align JavaScript conversion CLI (which was only used for tests) with the Python version (both in
examples
folder)# schema.json arg can be "-" for stdin, a URL or a file. node examples/json_schema_to_grammar.mjs schema.json python examples/json_schema_to_grammar.py schema.json
cc/ @HanClinto more JSON :-)