Fix(benchmarks): allow multiple mm contents in OpenAI Chat Completion Benchmarks (#22534)

Signed-off-by: breno.skuk <breno.skuk@hcompany.ai>
This commit is contained in:
Breno Baldas Skuk
2025-08-10 18:03:15 +02:00
committed by GitHub
parent b76753f0b5
commit 65a7917be4
6 changed files with 49 additions and 10 deletions

View File

@@ -28,7 +28,7 @@ class RequestFuncInput:
model_name: Optional[str] = None
logprobs: Optional[int] = None
extra_body: Optional[dict] = None
multi_modal_content: Optional[dict] = None
multi_modal_content: Optional[dict | list[dict]] = None
ignore_eos: bool = False
language: Optional[str] = None
@@ -172,7 +172,16 @@ async def async_request_openai_chat_completions(
content = [{"type": "text", "text": request_func_input.prompt}]
if request_func_input.multi_modal_content:
content.append(request_func_input.multi_modal_content)
mm_content = request_func_input.multi_modal_content
if isinstance(mm_content, list):
content.extend(mm_content)
elif isinstance(mm_content, dict):
content.append(mm_content)
else:
raise TypeError(
"multi_modal_content must be a dict or list[dict] "
"for openai-chat"
)
payload = {
"model":
request_func_input.model_name
@@ -310,7 +319,10 @@ async def async_request_openai_audio(
buffer.seek(0)
return buffer
with to_bytes(*request_func_input.multi_modal_content["audio"]) as f:
mm_audio = request_func_input.multi_modal_content
if not isinstance(mm_audio, dict) or "audio" not in mm_audio:
raise TypeError("multi_modal_content must be a dict containing 'audio'")
with to_bytes(*mm_audio["audio"]) as f:
form = aiohttp.FormData()
form.add_field("file", f, content_type="audio/wav")
for key, value in payload.items():