Unverified Commit 7d4aedae authored by Harry Mellor's avatar Harry Mellor Committed by GitHub
Browse files

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


Signed-off-by: default avatarHarry Mellor <19981378+hmellor@users.noreply.github.com>
parent 22481fbf
...@@ -5,10 +5,11 @@ ...@@ -5,10 +5,11 @@
import json import json
import re import re
import time import time
from http import HTTPStatus
from typing import Annotated, Any, ClassVar, Literal, Optional, Union from typing import Annotated, Any, ClassVar, Literal, Optional, Union
import torch import torch
from fastapi import UploadFile from fastapi import HTTPException, UploadFile
from pydantic import (BaseModel, ConfigDict, Field, TypeAdapter, from pydantic import (BaseModel, ConfigDict, Field, TypeAdapter,
ValidationInfo, field_validator, model_validator) ValidationInfo, field_validator, model_validator)
from typing_extensions import TypeAlias from typing_extensions import TypeAlias
...@@ -1727,7 +1728,13 @@ class TranscriptionRequest(OpenAIBaseModel): ...@@ -1727,7 +1728,13 @@ class TranscriptionRequest(OpenAIBaseModel):
@model_validator(mode="before") @model_validator(mode="before")
@classmethod @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_opts = ["stream_include_usage", "stream_continuous_usage_stats"]
stream = data.get("stream", False) stream = data.get("stream", False)
if any(bool(data.get(so, False)) for so in stream_opts) and not stream: if any(bool(data.get(so, False)) for so in stream_opts) and not stream:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment