Skip to content

Commit 8aec3ac

Browse files
authored
fix mm type bug (#5300)
1 parent 048ca60 commit 8aec3ac

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

fastdeploy/engine/request.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
from __future__ import annotations
1818

19+
import copy
1920
import time
2021
import traceback
2122
from dataclasses import asdict, dataclass, fields
@@ -269,6 +270,21 @@ def __eq__(self, other):
269270

270271
def to_dict(self) -> dict:
271272
"""convert Request into a serializable dict"""
273+
multimodal_inputs = copy.deepcopy(self.multimodal_inputs)
274+
if (
275+
isinstance(multimodal_inputs, dict)
276+
and isinstance(multimodal_inputs.get("mm_positions"), list)
277+
and len(multimodal_inputs["mm_positions"]) > 0
278+
):
279+
# if mm_positions is ImagePosition, convert to dict
280+
try:
281+
for i, mm_pos in enumerate(multimodal_inputs["mm_positions"]):
282+
multimodal_inputs["mm_positions"][i] = (
283+
asdict(mm_pos) if isinstance(mm_pos, ImagePosition) else mm_pos
284+
)
285+
except Exception as e:
286+
data_processor_logger.error(f"Convert ImagePosition to dict error: {e}, {str(traceback.format_exc())}")
287+
272288
data = {
273289
"request_id": self.request_id,
274290
"prompt": self.prompt,
@@ -282,7 +298,7 @@ def to_dict(self) -> dict:
282298
"arrival_time": self.arrival_time,
283299
"preprocess_start_time": self.preprocess_start_time,
284300
"preprocess_end_time": self.preprocess_end_time,
285-
"multimodal_inputs": self.multimodal_inputs,
301+
"multimodal_inputs": multimodal_inputs,
286302
"multimodal_data": self.multimodal_data,
287303
"disable_chat_template": self.disable_chat_template,
288304
"disaggregate_info": self.disaggregate_info,

0 commit comments

Comments
 (0)