mirror of
https://github.com/ggerganov/llama.cpp.git
synced 2024-12-30 21:34:36 +00:00
ab9a3240a9
* json: rename python schema converter to make import easier * server: skip null json_schema / grammar fields * json: deps management for primitive rules (+ allow null values) * json: optimize repetitions for minItems/maxItems and regexps: `a{,3}` goes from `"a"? "a"? "a"?` (explosive combos) to `(a (a (a)?)?)?` * grammars: add troubleshooting section to readme * json: cap length of numbers to 15 digits before/after decimal point (avoids infinite gen, e.g. "one third" -> `0.333333333333...`) * json: unify all repetition code (w/ or w/o sep) * json: support string minLength/maxLength * server+json: update server/README w/ result_format * nits * json: fix type error w/ python 3.8 * json: fix server/README (json_schema in /completion vs. result_format in /v1/chat/completions) * json: simplify DOT `{"type": "string", "pattern": "^.$"}` * json: remove recursion in opt_repetitions (avoids Python stack overflow) * json: rm dead code * json: rm useless assert & ggml.h import
21 lines
431 B
Python
21 lines
431 B
Python
import json, subprocess, sys, os
|
|
|
|
assert len(sys.argv) >= 2
|
|
[_, pattern, *rest] = sys.argv
|
|
|
|
print(subprocess.check_output(
|
|
[
|
|
"python",
|
|
os.path.join(
|
|
os.path.dirname(os.path.realpath(__file__)),
|
|
"json_schema_to_grammar.py"),
|
|
*rest,
|
|
"-",
|
|
"--raw-pattern",
|
|
],
|
|
text=True,
|
|
input=json.dumps({
|
|
"type": "string",
|
|
"pattern": pattern,
|
|
}, indent=2)))
|