Fix crash dump replay script for image data replay (#16277)
This commit is contained in:
@@ -22,6 +22,35 @@ from sglang.bench_serving import set_ulimit
|
|||||||
from sglang.utils import get_exception_traceback
|
from sglang.utils import get_exception_traceback
|
||||||
|
|
||||||
|
|
||||||
|
def normalize_mm_data_item(item):
|
||||||
|
if isinstance(item, dict) and "url" in item:
|
||||||
|
return item["url"]
|
||||||
|
return item
|
||||||
|
|
||||||
|
|
||||||
|
def normalize_mm_data(data):
|
||||||
|
if data is None:
|
||||||
|
return None
|
||||||
|
if isinstance(data, list):
|
||||||
|
return [
|
||||||
|
(
|
||||||
|
[normalize_mm_data_item(item) for item in sublist]
|
||||||
|
if isinstance(sublist, list)
|
||||||
|
else normalize_mm_data_item(sublist)
|
||||||
|
)
|
||||||
|
for sublist in data
|
||||||
|
]
|
||||||
|
return normalize_mm_data_item(data)
|
||||||
|
|
||||||
|
|
||||||
|
def normalize_request_data(json_data):
|
||||||
|
"""Normalize multimodal fields in request data for replay compatibility."""
|
||||||
|
for field in ["image_data", "video_data", "audio_data"]:
|
||||||
|
if field in json_data and json_data[field] is not None:
|
||||||
|
json_data[field] = normalize_mm_data(json_data[field])
|
||||||
|
return json_data
|
||||||
|
|
||||||
|
|
||||||
def read_records(files):
|
def read_records(files):
|
||||||
records = []
|
records = []
|
||||||
for f in files:
|
for f in files:
|
||||||
@@ -43,7 +72,7 @@ def run_one_request_internal(record):
|
|||||||
else:
|
else:
|
||||||
recorded_completion_tokens = ""
|
recorded_completion_tokens = ""
|
||||||
|
|
||||||
json_data = asdict(req)
|
json_data = normalize_request_data(asdict(req))
|
||||||
stream = json_data["stream"]
|
stream = json_data["stream"]
|
||||||
|
|
||||||
if args.ignore_eos:
|
if args.ignore_eos:
|
||||||
|
|||||||
Reference in New Issue
Block a user