mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-11-03 09:22:01 +00:00 
			
		
		
		
	* 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)))
 |