Skip to content

Commit df2be1c

Browse files
[BugFix] fix mm_positions type error (#5182)
* fix mm_positions type error * update code * update code * update code --------- Co-authored-by: Jiang-Jia-Jun <163579578+Jiang-Jia-Jun@users.noreply.github.com>
1 parent 0937918 commit df2be1c

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
@@ -17,14 +17,14 @@
1717
from __future__ import annotations
1818

1919
import time
20+
import traceback
2021
from dataclasses import asdict, dataclass, fields
2122
from enum import Enum
2223
from typing import Any, Dict, Generic, Optional, Union
2324

2425
import numpy as np
2526
from typing_extensions import TypeVar
2627

27-
from fastdeploy import envs
2828
from fastdeploy.engine.pooling_params import PoolingParams
2929
from fastdeploy.engine.sampling_params import SamplingParams
3030
from fastdeploy.entrypoints.openai.protocol import ToolCall
@@ -190,6 +190,22 @@ def from_dict(cls, d: dict):
190190
pooling_params = PoolingParams.from_dict(d["pooling_params"])
191191
else:
192192
sampling_params = SamplingParams.from_dict(d)
193+
if (
194+
isinstance(d.get("multimodal_inputs"), dict)
195+
and isinstance(d["multimodal_inputs"].get("mm_positions"), list)
196+
and len(d["multimodal_inputs"]["mm_positions"]) > 0
197+
):
198+
# if mm_positions is not of type ImagePosition, convert to ImagePosition
199+
try:
200+
for i, mm_pos in enumerate(d["multimodal_inputs"]["mm_positions"]):
201+
d["multimodal_inputs"]["mm_positions"][i] = (
202+
ImagePosition(**mm_pos) if not isinstance(mm_pos, ImagePosition) else mm_pos
203+
)
204+
except Exception as e:
205+
data_processor_logger.error(
206+
f"Convert mm_positions to ImagePosition error: {e}, {str(traceback.format_exc())}"
207+
)
208+
193209
return cls(
194210
request_id=d["request_id"],
195211
prompt=d.get("prompt"),

0 commit comments

Comments
 (0)