[Feature] integrate Structural Tag in xgrammar backend for function calling (#3566)

Co-authored-by: shuaills <shishuaiuoe@gmail.com>
This commit is contained in:
mlmz
2025-02-28 15:33:41 +08:00
committed by GitHub
parent eec3f6d1eb
commit bac414ab53
5 changed files with 44 additions and 1 deletions

View File

@@ -710,6 +710,7 @@ class Scheduler:
req.sampling_params.json_schema is not None
or req.sampling_params.regex is not None
or req.sampling_params.ebnf is not None
or req.sampling_params.structural_tag is not None
):
assert self.grammar_backend is not None
if req.sampling_params.json_schema is not None:
@@ -718,6 +719,8 @@ class Scheduler:
key = ("regex", req.sampling_params.regex)
elif req.sampling_params.ebnf is not None:
key = ("ebnf", req.sampling_params.ebnf)
elif req.sampling_params.structural_tag:
key = ("structural_tag", req.sampling_params.structural_tag)
req.grammar = self.grammar_backend.get_cached_value(key)
if not req.grammar: