mirror of
https://github.com/ggerganov/llama.cpp.git
synced 2024-12-27 06:39:25 +01: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
29 lines
920 B
Bash
Executable File
29 lines
920 B
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# ./examples/ts-type-to-grammar.sh "{a:string,b:string,c?:string}"
|
|
# python examples/json_schema_to_grammar.py https://json.schemastore.org/tsconfig.json
|
|
#
|
|
set -euo pipefail
|
|
|
|
readonly type="$1"
|
|
|
|
# Create a temporary directory
|
|
TMPDIR=""
|
|
trap 'rm -fR "$TMPDIR"' EXIT
|
|
TMPDIR=$(mktemp -d)
|
|
|
|
DTS_FILE="$TMPDIR/type.d.ts"
|
|
SCHEMA_FILE="$TMPDIR/schema.json"
|
|
|
|
echo "export type MyType = $type" > "$DTS_FILE"
|
|
|
|
# This is a fork of typescript-json-schema, actively maintained as of March 2024:
|
|
# https://github.com/vega/ts-json-schema-generator
|
|
npx ts-json-schema-generator --unstable --no-top-ref --path "$DTS_FILE" --type MyType -e none > "$SCHEMA_FILE"
|
|
|
|
# Alternative, not actively maintained as of March 2024:
|
|
# https://github.com/YousefED/typescript-json-schema
|
|
# npx typescript-json-schema --defaultProps --required "$DTS_FILE" MyType | tee "$SCHEMA_FILE" >&2
|
|
|
|
./examples/json_schema_to_grammar.py "$SCHEMA_FILE"
|