@@ -79,6 +79,12 @@ def fallback_or_error(guided_params: GuidedDecodingParams, message: str,
79
79
"xgrammar does not support Lark grammars and the "
80
80
"grammar failed to convert to GBNF." , "outlines" )
81
81
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
+
82
88
# If the xgrammar module cannot be imported successfully,
83
89
# we should still allow users to use guided decoding with a fallback.
84
90
elif not xgr_installed :
@@ -88,9 +94,9 @@ def fallback_or_error(guided_params: GuidedDecodingParams, message: str,
88
94
89
95
if (guided_params .backend_name == "outlines"
90
96
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
92
98
fallback_or_error (guided_params ,
93
- "outlines does not support json_object." , "xgrammar " )
99
+ "outlines does not support json_object." , "guidance " )
94
100
95
101
return guided_params
96
102
@@ -122,10 +128,15 @@ async def get_guided_decoding_logits_processor(
122
128
get_local_xgrammar_guided_decoding_logits_processor )
123
129
return get_local_xgrammar_guided_decoding_logits_processor (
124
130
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 )
126
136
raise ValueError (
127
137
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
+ )
129
140
130
141
131
142
def get_local_guided_decoding_logits_processor (
@@ -155,7 +166,13 @@ def get_local_guided_decoding_logits_processor(
155
166
get_local_xgrammar_guided_decoding_logits_processor )
156
167
return get_local_xgrammar_guided_decoding_logits_processor (
157
168
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 )
158
174
159
175
raise ValueError (
160
176
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