Handle error when str passed to /v1/audio/transcriptions (#17909)

Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>
This commit is contained in:
Harry Mellor 2025-05-09 20:23:59 +01:00 committed by GitHub
parent 22481fbfa3
commit 7d4aedae7c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -5,10 +5,11 @@
import json
import re
import time
from http import HTTPStatus
from typing import Annotated, Any, ClassVar, Literal, Optional, Union
import torch
from fastapi import UploadFile
from fastapi import HTTPException, UploadFile
from pydantic import (BaseModel, ConfigDict, Field, TypeAdapter,
ValidationInfo, field_validator, model_validator)
from typing_extensions import TypeAlias
@ -1727,7 +1728,13 @@ class TranscriptionRequest(OpenAIBaseModel):
@model_validator(mode="before")
@classmethod
def validate_stream_options(cls, data):
def validate_transcription_request(cls, data):
if isinstance(data.get("file"), str):
raise HTTPException(
status_code=HTTPStatus.UNPROCESSABLE_ENTITY,
detail="Expected 'file' to be a file-like object, not 'str'.",
)
stream_opts = ["stream_include_usage", "stream_continuous_usage_stats"]
stream = data.get("stream", False)
if any(bool(data.get(so, False)) for so in stream_opts) and not stream: