8000 fix: Don't change order of json schema object properties unless prop_… · coderonion/llama-cpp-python@d1822fe · GitHub
[go: up one dir, main page]

Skip to content

Commit d1822fe

Browse files
committed
fix: Don't change order of json schema object properties unless prop_order is passed, Closes abetlen#1180
1 parent 5efc45b commit d1822fe

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

llama_cpp/llama_grammar.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1471,12 +1471,15 @@ def visit(self, schema: Dict[str, Any], name: str) -> str:
14711471

14721472
if schema_type == "object" and "properties" in schema:
14731473
# TODO: `required` keyword
1474-
prop_order = self._prop_order
1475-
prop_pairs = sorted(
1476-
schema["properties"].items(),
1477-
# sort by position in prop_order (if specified) then by key
1478-
key=lambda kv: (prop_order.get(kv[0], len(prop_order)), kv[0]),
1479-
)
1474+
if self._prop_order:
1475+
prop_order = self._prop_order
1476+
prop_pairs = sorted(
1477+
schema["properties"].items(),
1478+
# sort by position in prop_order (if specified) then by key
1479+
key=lambda kv: (prop_order.get(kv[0], len(prop_order)), kv[0]),
1480+
)
1481+
else:
1482+
prop_pairs = schema["properties"].items()
14801483

14811484
rule = '"{" space'
14821485
for i, (prop_name, prop_schema) in enumerate(prop_pairs):

0 commit comments

Comments
 (0)
0