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:
authored and GitHub committed 2026-05-17 23:30:24 +08:00
1 parent 0da9ffdb0d
commit 8cfc9179e6
1 file changed
+13
+13
View File
@@ -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