[BugFix][Cherry Pick] fix ds type bug (#5220)

* fix ds type bug

* update code
This commit is contained in:
kevin
2025-11-25 20:37:09 +08:00
committed by GitHub
parent a11d17cee9
commit e0c7ebff29

View File

@@ -17,6 +17,7 @@
from __future__ import annotations
import time
import traceback
from dataclasses import asdict, dataclass, fields
from enum import Enum
from typing import Any, Dict, Generic, Optional, Union
@@ -24,7 +25,6 @@ from typing import Any, Dict, Generic, Optional, Union
import numpy as np
from typing_extensions import TypeVar
from fastdeploy import envs
from fastdeploy.engine.pooling_params import PoolingParams
from fastdeploy.engine.sampling_params import SamplingParams
from fastdeploy.entrypoints.openai.protocol import ToolCall
@@ -190,6 +190,22 @@ class Request:
pooling_params = PoolingParams.from_dict(d["pooling_params"])
else:
sampling_params = SamplingParams.from_dict(d)
if (
isinstance(d.get("multimodal_inputs"), dict)
and isinstance(d["multimodal_inputs"].get("mm_positions"), list)
and len(d["multimodal_inputs"]["mm_positions"]) > 0
):
# if mm_positions is not of type ImagePosition, convert to ImagePosition
try:
for i, mm_pos in enumerate(d["multimodal_inputs"]["mm_positions"]):
d["multimodal_inputs"]["mm_positions"][i] = (
ImagePosition(**mm_pos) if not isinstance(mm_pos, ImagePosition) else mm_pos
)
except Exception as e:
data_processor_logger.error(
f"Convert mm_positions to ImagePosition error: {e}, {str(traceback.format_exc())}"
)
return cls(
request_id=d["request_id"],
prompt=d.get("prompt"),