@@ -79,6 +79,12 @@ def fallback_or_error(guided_params: GuidedDecodingParams, message: str,
7979 "xgrammar does not support Lark grammars and the "
8080 "grammar failed to convert to GBNF." , "outlines" )
8181
82+ elif guided_params .json_object :
83+ # https://github.com/mlc-ai/xgrammar/issues/256
84+ fallback_or_error (guided_params ,
85+ "xgrammar does not support json_object." ,
86+ "guidance" )
87+
8288 # If the xgrammar module cannot be imported successfully,
8389 # we should still allow users to use guided decoding with a fallback.
8490 elif not xgr_installed :
@@ -88,9 +94,9 @@ def fallback_or_error(guided_params: GuidedDecodingParams, message: str,
8894
8995 if (guided_params .backend_name == "outlines"
9096 and guided_params .json_object is not None ):
91- # outlines doesn't support json_object, fallback to xgrammar
97+ # outlines doesn't support json_object, fallback to guidance
9298 fallback_or_error (guided_params ,
93- "outlines does not support json_object." , "xgrammar " )
99+ "outlines does not support json_object." , "guidance " )
94100
95101 return guided_params
96102
@@ -122,10 +128,15 @@ async def get_guided_decoding_logits_processor(
122128 get_local_xgrammar_guided_decoding_logits_processor )
123129 return get_local_xgrammar_guided_decoding_logits_processor (
124130 guided_params , tokenizer , model_config , reasoner )
125-
131+ if guided_params .backend_name == 'guidance' :
132+ from vllm .model_executor .guided_decoding .guidance_decoding import (
133+ get_local_guidance_guided_decoding_logits_processor )
134+ return get_local_guidance_guided_decoding_logits_processor (
135+ guided_params , tokenizer )
126136 raise ValueError (
127137 f"Unknown guided decoding backend '{ guided_params .backend } '. "
128- "Must be one of 'outlines, 'lm-format-enforcer', 'xgrammar'" )
138+ "Must be one of 'outlines, 'lm-format-enforcer', 'xgrammar', 'guidance'"
139+ )
129140
130141
131142def get_local_guided_decoding_logits_processor (
@@ -155,7 +166,13 @@ def get_local_guided_decoding_logits_processor(
155166 get_local_xgrammar_guided_decoding_logits_processor )
156167 return get_local_xgrammar_guided_decoding_logits_processor (
157168 guided_params , tokenizer , model_config , reasoner )
169+ if guided_params .backend_name == 'guidance' :
170+ from vllm .model_executor .guided_decoding .guidance_decoding import (
171+ get_local_guidance_guided_decoding_logits_processor )
172+ return get_local_guidance_guided_decoding_logits_processor (
173+ guided_params , tokenizer )
158174
159175 raise ValueError (
160176 f"Unknown guided decoding backend '{ guided_params .backend } '. "
161- "Must be one of 'outlines, 'lm-format-enforcer', 'xgrammar'" )
177+ "Must be one of 'outlines, 'lm-format-enforcer', 'xgrammar', 'guidance'"
178+ )
0 commit comments