Commit c814354f
Changed files (1)
src
openai
cli
_api
src/openai/cli/_api/audio.py
@@ -1,5 +1,6 @@
from __future__ import annotations
+import sys
from typing import TYPE_CHECKING, Any, Optional, cast
from argparse import ArgumentParser
@@ -7,6 +8,7 @@ from .._utils import get_client, print_model
from ..._types import NOT_GIVEN
from .._models import BaseModel
from .._progress import BufferReader
+from ...types.audio import Transcription
if TYPE_CHECKING:
from argparse import _SubParsersAction
@@ -65,30 +67,42 @@ class CLIAudio:
with open(args.file, "rb") as file_reader:
buffer_reader = BufferReader(file_reader.read(), desc="Upload progress")
- model = get_client().audio.transcriptions.create(
- file=(args.file, buffer_reader),
- model=args.model,
- language=args.language or NOT_GIVEN,
- temperature=args.temperature or NOT_GIVEN,
- prompt=args.prompt or NOT_GIVEN,
- # casts required because the API is typed for enums
- # but we don't want to validate that here for forwards-compat
- response_format=cast(Any, args.response_format),
+ model = cast(
+ "Transcription | str",
+ get_client().audio.transcriptions.create(
+ file=(args.file, buffer_reader),
+ model=args.model,
+ language=args.language or NOT_GIVEN,
+ temperature=args.temperature or NOT_GIVEN,
+ prompt=args.prompt or NOT_GIVEN,
+ # casts required because the API is typed for enums
+ # but we don't want to validate that here for forwards-compat
+ response_format=cast(Any, args.response_format),
+ ),
)
- print_model(model)
+ if isinstance(model, str):
+ sys.stdout.write(model + "\n")
+ else:
+ print_model(model)
@staticmethod
def translate(args: CLITranslationArgs) -> None:
with open(args.file, "rb") as file_reader:
buffer_reader = BufferReader(file_reader.read(), desc="Upload progress")
- model = get_client().audio.translations.create(
- file=(args.file, buffer_reader),
- model=args.model,
- temperature=args.temperature or NOT_GIVEN,
- prompt=args.prompt or NOT_GIVEN,
- # casts required because the API is typed for enums
- # but we don't want to validate that here for forwards-compat
- response_format=cast(Any, args.response_format),
+ model = cast(
+ "Transcription | str",
+ get_client().audio.translations.create(
+ file=(args.file, buffer_reader),
+ model=args.model,
+ temperature=args.temperature or NOT_GIVEN,
+ prompt=args.prompt or NOT_GIVEN,
+ # casts required because the API is typed for enums
+ # but we don't want to validate that here for forwards-compat
+ response_format=cast(Any, args.response_format),
+ ),
)
- print_model(model)
+ if isinstance(model, str):
+ sys.stdout.write(model + "\n")
+ else:
+ print_model(model)