Fix reasoning_parser crash: reconstruct StructuredOutputsConfig from dict (#2845)
Signed-off-by: Mike_Qiu <qiudayu.qdy@antgroup.com> Co-authored-by: Mike_Qiu <qiudayu.qdy@antgroup.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Hongsheng Liu <liuhongsheng4@huawei.com>
This commit is contained in:
1 file changed
+13
@@ -619,6 +619,19 @@ def build_vllm_config(
|
||||
)
|
||||
|
||||
filtered_engine_args_dict = filter_dataclass_kwargs(OmniEngineArgs, engine_args_dict)
|
||||
|
||||
# _to_dict serializes dataclass fields (e.g. StructuredOutputsConfig) into
|
||||
# plain dicts. When OmniEngineArgs is instantiated with the dict, these
|
||||
# fields remain dicts instead of being reconstructed as dataclass objects.
|
||||
# Later, EngineArgs.create_engine_config() does
|
||||
# self.structured_outputs_config.reasoning_parser = ...
|
||||
# which fails on a plain dict. Reconstruct the dataclass here.
|
||||
soc = filtered_engine_args_dict.get("structured_outputs_config")
|
||||
if isinstance(soc, dict):
|
||||
from vllm.config import StructuredOutputsConfig
|
||||
|
||||
filtered_engine_args_dict["structured_outputs_config"] = StructuredOutputsConfig(**soc)
|
||||
|
||||
omni_engine_args = OmniEngineArgs(**filtered_engine_args_dict)
|
||||
|
||||
# Multi-stage pipelines (qwen3_tts code2wav, etc.) set max_model_len
|
||||
|
||||
Reference in new issue
Block a user