together 1.5.35__py3-none-any.whl → 2.0.0a6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- together/__init__.py +101 -114
- together/_base_client.py +1995 -0
- together/_client.py +1033 -0
- together/_compat.py +219 -0
- together/_constants.py +14 -0
- together/_exceptions.py +108 -0
- together/_files.py +123 -0
- together/_models.py +857 -0
- together/_qs.py +150 -0
- together/_resource.py +43 -0
- together/_response.py +830 -0
- together/_streaming.py +370 -0
- together/_types.py +260 -0
- together/_utils/__init__.py +64 -0
- together/_utils/_compat.py +45 -0
- together/_utils/_datetime_parse.py +136 -0
- together/_utils/_logs.py +25 -0
- together/_utils/_proxy.py +65 -0
- together/_utils/_reflection.py +42 -0
- together/_utils/_resources_proxy.py +24 -0
- together/_utils/_streams.py +12 -0
- together/_utils/_sync.py +58 -0
- together/_utils/_transform.py +457 -0
- together/_utils/_typing.py +156 -0
- together/_utils/_utils.py +421 -0
- together/_version.py +4 -0
- together/lib/.keep +4 -0
- together/lib/__init__.py +23 -0
- together/{cli → lib/cli}/api/endpoints.py +66 -84
- together/{cli/api/evaluation.py → lib/cli/api/evals.py} +152 -43
- together/{cli → lib/cli}/api/files.py +20 -17
- together/{cli/api/finetune.py → lib/cli/api/fine_tuning.py} +116 -172
- together/{cli → lib/cli}/api/models.py +34 -27
- together/lib/cli/api/utils.py +50 -0
- together/{cli → lib/cli}/cli.py +16 -26
- together/{constants.py → lib/constants.py} +11 -24
- together/lib/resources/__init__.py +11 -0
- together/lib/resources/files.py +999 -0
- together/lib/resources/fine_tuning.py +280 -0
- together/lib/resources/models.py +35 -0
- together/lib/types/__init__.py +13 -0
- together/lib/types/error.py +9 -0
- together/lib/types/fine_tuning.py +397 -0
- together/{utils → lib/utils}/__init__.py +6 -14
- together/{utils → lib/utils}/_log.py +11 -16
- together/{utils → lib/utils}/files.py +90 -288
- together/lib/utils/serializer.py +10 -0
- together/{utils → lib/utils}/tools.py +19 -55
- together/resources/__init__.py +225 -39
- together/resources/audio/__init__.py +72 -48
- together/resources/audio/audio.py +198 -0
- together/resources/audio/speech.py +574 -128
- together/resources/audio/transcriptions.py +247 -261
- together/resources/audio/translations.py +221 -241
- together/resources/audio/voices.py +111 -41
- together/resources/batches.py +417 -0
- together/resources/chat/__init__.py +30 -21
- together/resources/chat/chat.py +102 -0
- together/resources/chat/completions.py +1063 -263
- together/resources/code_interpreter/__init__.py +33 -0
- together/resources/code_interpreter/code_interpreter.py +258 -0
- together/resources/code_interpreter/sessions.py +135 -0
- together/resources/completions.py +884 -225
- together/resources/embeddings.py +172 -68
- together/resources/endpoints.py +589 -490
- together/resources/evals.py +452 -0
- together/resources/files.py +397 -129
- together/resources/fine_tuning.py +1033 -0
- together/resources/hardware.py +181 -0
- together/resources/images.py +258 -104
- together/resources/jobs.py +214 -0
- together/resources/models.py +223 -193
- together/resources/rerank.py +190 -92
- together/resources/videos.py +286 -214
- together/types/__init__.py +66 -167
- together/types/audio/__init__.py +10 -0
- together/types/audio/speech_create_params.py +75 -0
- together/types/audio/transcription_create_params.py +54 -0
- together/types/audio/transcription_create_response.py +111 -0
- together/types/audio/translation_create_params.py +40 -0
- together/types/audio/translation_create_response.py +70 -0
- together/types/audio/voice_list_response.py +23 -0
- together/types/audio_speech_stream_chunk.py +16 -0
- together/types/autoscaling.py +13 -0
- together/types/autoscaling_param.py +15 -0
- together/types/batch_create_params.py +24 -0
- together/types/batch_create_response.py +14 -0
- together/types/batch_job.py +45 -0
- together/types/batch_list_response.py +10 -0
- together/types/chat/__init__.py +18 -0
- together/types/chat/chat_completion.py +60 -0
- together/types/chat/chat_completion_chunk.py +61 -0
- together/types/chat/chat_completion_structured_message_image_url_param.py +18 -0
- together/types/chat/chat_completion_structured_message_text_param.py +13 -0
- together/types/chat/chat_completion_structured_message_video_url_param.py +18 -0
- together/types/chat/chat_completion_usage.py +13 -0
- together/types/chat/chat_completion_warning.py +9 -0
- together/types/chat/completion_create_params.py +329 -0
- together/types/code_interpreter/__init__.py +5 -0
- together/types/code_interpreter/session_list_response.py +31 -0
- together/types/code_interpreter_execute_params.py +45 -0
- together/types/completion.py +42 -0
- together/types/completion_chunk.py +66 -0
- together/types/completion_create_params.py +138 -0
- together/types/dedicated_endpoint.py +44 -0
- together/types/embedding.py +24 -0
- together/types/embedding_create_params.py +31 -0
- together/types/endpoint_create_params.py +43 -0
- together/types/endpoint_list_avzones_response.py +11 -0
- together/types/endpoint_list_params.py +18 -0
- together/types/endpoint_list_response.py +41 -0
- together/types/endpoint_update_params.py +27 -0
- together/types/eval_create_params.py +263 -0
- together/types/eval_create_response.py +16 -0
- together/types/eval_list_params.py +21 -0
- together/types/eval_list_response.py +10 -0
- together/types/eval_status_response.py +100 -0
- together/types/evaluation_job.py +139 -0
- together/types/execute_response.py +108 -0
- together/types/file_delete_response.py +13 -0
- together/types/file_list.py +12 -0
- together/types/file_purpose.py +9 -0
- together/types/file_response.py +31 -0
- together/types/file_type.py +7 -0
- together/types/fine_tuning_cancel_response.py +194 -0
- together/types/fine_tuning_content_params.py +24 -0
- together/types/fine_tuning_delete_params.py +11 -0
- together/types/fine_tuning_delete_response.py +12 -0
- together/types/fine_tuning_list_checkpoints_response.py +21 -0
- together/types/fine_tuning_list_events_response.py +12 -0
- together/types/fine_tuning_list_response.py +199 -0
- together/types/finetune_event.py +41 -0
- together/types/finetune_event_type.py +33 -0
- together/types/finetune_response.py +177 -0
- together/types/hardware_list_params.py +16 -0
- together/types/hardware_list_response.py +58 -0
- together/types/image_data_b64.py +15 -0
- together/types/image_data_url.py +15 -0
- together/types/image_file.py +23 -0
- together/types/image_generate_params.py +85 -0
- together/types/job_list_response.py +47 -0
- together/types/job_retrieve_response.py +43 -0
- together/types/log_probs.py +18 -0
- together/types/model_list_response.py +10 -0
- together/types/model_object.py +42 -0
- together/types/model_upload_params.py +36 -0
- together/types/model_upload_response.py +23 -0
- together/types/rerank_create_params.py +36 -0
- together/types/rerank_create_response.py +36 -0
- together/types/tool_choice.py +23 -0
- together/types/tool_choice_param.py +23 -0
- together/types/tools_param.py +23 -0
- together/types/training_method_dpo.py +22 -0
- together/types/training_method_sft.py +18 -0
- together/types/video_create_params.py +86 -0
- together/types/video_create_response.py +10 -0
- together/types/video_job.py +57 -0
- together-2.0.0a6.dist-info/METADATA +729 -0
- together-2.0.0a6.dist-info/RECORD +165 -0
- {together-1.5.35.dist-info → together-2.0.0a6.dist-info}/WHEEL +1 -1
- together-2.0.0a6.dist-info/entry_points.txt +2 -0
- {together-1.5.35.dist-info → together-2.0.0a6.dist-info}/licenses/LICENSE +1 -1
- together/abstract/api_requestor.py +0 -770
- together/cli/api/chat.py +0 -298
- together/cli/api/completions.py +0 -119
- together/cli/api/images.py +0 -93
- together/cli/api/utils.py +0 -139
- together/client.py +0 -186
- together/error.py +0 -194
- together/filemanager.py +0 -635
- together/legacy/__init__.py +0 -0
- together/legacy/base.py +0 -27
- together/legacy/complete.py +0 -93
- together/legacy/embeddings.py +0 -27
- together/legacy/files.py +0 -146
- together/legacy/finetune.py +0 -177
- together/legacy/images.py +0 -27
- together/legacy/models.py +0 -44
- together/resources/batch.py +0 -165
- together/resources/code_interpreter.py +0 -82
- together/resources/evaluation.py +0 -808
- together/resources/finetune.py +0 -1388
- together/together_response.py +0 -50
- together/types/abstract.py +0 -26
- together/types/audio_speech.py +0 -311
- together/types/batch.py +0 -54
- together/types/chat_completions.py +0 -210
- together/types/code_interpreter.py +0 -57
- together/types/common.py +0 -67
- together/types/completions.py +0 -107
- together/types/embeddings.py +0 -35
- together/types/endpoints.py +0 -123
- together/types/error.py +0 -16
- together/types/evaluation.py +0 -93
- together/types/files.py +0 -93
- together/types/finetune.py +0 -465
- together/types/images.py +0 -42
- together/types/models.py +0 -96
- together/types/rerank.py +0 -43
- together/types/videos.py +0 -69
- together/utils/api_helpers.py +0 -124
- together/version.py +0 -6
- together-1.5.35.dist-info/METADATA +0 -583
- together-1.5.35.dist-info/RECORD +0 -77
- together-1.5.35.dist-info/entry_points.txt +0 -3
- /together/{abstract → lib/cli}/__init__.py +0 -0
- /together/{cli → lib/cli/api}/__init__.py +0 -0
- /together/{cli/api/__init__.py → py.typed} +0 -0
|
@@ -1,296 +1,282 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
1
3
|
from __future__ import annotations
|
|
2
4
|
|
|
3
|
-
from
|
|
4
|
-
from
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
from typing import Any, List, Union, Mapping, cast
|
|
6
|
+
from typing_extensions import Literal
|
|
7
|
+
|
|
8
|
+
import httpx
|
|
9
|
+
|
|
10
|
+
from ..._types import Body, Omit, Query, Headers, NotGiven, FileTypes, omit, not_given
|
|
11
|
+
from ..._utils import extract_files, maybe_transform, deepcopy_minimal, async_maybe_transform
|
|
12
|
+
from ..._compat import cached_property
|
|
13
|
+
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
14
|
+
from ..._response import (
|
|
15
|
+
to_raw_response_wrapper,
|
|
16
|
+
to_streamed_response_wrapper,
|
|
17
|
+
async_to_raw_response_wrapper,
|
|
18
|
+
async_to_streamed_response_wrapper,
|
|
14
19
|
)
|
|
20
|
+
from ...types.audio import transcription_create_params
|
|
21
|
+
from ..._base_client import make_request_options
|
|
22
|
+
from ...types.audio.transcription_create_response import TranscriptionCreateResponse
|
|
15
23
|
|
|
24
|
+
__all__ = ["TranscriptionsResource", "AsyncTranscriptionsResource"]
|
|
16
25
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
26
|
+
|
|
27
|
+
class TranscriptionsResource(SyncAPIResource):
|
|
28
|
+
@cached_property
|
|
29
|
+
def with_raw_response(self) -> TranscriptionsResourceWithRawResponse:
|
|
30
|
+
"""
|
|
31
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
32
|
+
the raw response object instead of the parsed content.
|
|
33
|
+
|
|
34
|
+
For more information, see https://www.github.com/togethercomputer/together-py#accessing-raw-response-data-eg-headers
|
|
35
|
+
"""
|
|
36
|
+
return TranscriptionsResourceWithRawResponse(self)
|
|
37
|
+
|
|
38
|
+
@cached_property
|
|
39
|
+
def with_streaming_response(self) -> TranscriptionsResourceWithStreamingResponse:
|
|
40
|
+
"""
|
|
41
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
42
|
+
|
|
43
|
+
For more information, see https://www.github.com/togethercomputer/together-py#with_streaming_response
|
|
44
|
+
"""
|
|
45
|
+
return TranscriptionsResourceWithStreamingResponse(self)
|
|
20
46
|
|
|
21
47
|
def create(
|
|
22
48
|
self,
|
|
23
49
|
*,
|
|
24
|
-
file:
|
|
25
|
-
|
|
26
|
-
language:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
50
|
+
file: FileTypes,
|
|
51
|
+
diarize: bool | Omit = omit,
|
|
52
|
+
language: str | Omit = omit,
|
|
53
|
+
model: Literal["openai/whisper-large-v3"] | Omit = omit,
|
|
54
|
+
prompt: str | Omit = omit,
|
|
55
|
+
response_format: Literal["json", "verbose_json"] | Omit = omit,
|
|
56
|
+
temperature: float | Omit = omit,
|
|
57
|
+
timestamp_granularities: Union[Literal["segment", "word"], List[Literal["segment", "word"]]] | Omit = omit,
|
|
58
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
59
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
60
|
+
extra_headers: Headers | None = None,
|
|
61
|
+
extra_query: Query | None = None,
|
|
62
|
+
extra_body: Body | None = None,
|
|
63
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
64
|
+
) -> TranscriptionCreateResponse:
|
|
36
65
|
"""
|
|
37
|
-
Transcribes audio into
|
|
66
|
+
Transcribes audio into text
|
|
38
67
|
|
|
39
68
|
Args:
|
|
40
|
-
|
|
41
|
-
flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm.
|
|
42
|
-
Can be a file path (str/Path), file object (BinaryIO), or URL (str).
|
|
43
|
-
model: ID of the model to use. Defaults to "openai/whisper-large-v3".
|
|
44
|
-
language: The language of the input audio. Supplying the input language in
|
|
45
|
-
ISO-639-1 format will improve accuracy and latency.
|
|
46
|
-
prompt: An optional text to guide the model's style or continue a previous
|
|
47
|
-
audio segment. The prompt should match the audio language.
|
|
48
|
-
response_format: The format of the transcript output, in one of these options:
|
|
49
|
-
json, verbose_json.
|
|
50
|
-
temperature: The sampling temperature, between 0 and 1. Higher values like 0.8
|
|
51
|
-
will make the output more random, while lower values like 0.2 will make it
|
|
52
|
-
more focused and deterministic.
|
|
53
|
-
timestamp_granularities: The timestamp granularities to populate for this
|
|
54
|
-
transcription. response_format must be set verbose_json to use timestamp
|
|
55
|
-
granularities. Either or both of these options are supported: word, or segment.
|
|
56
|
-
diarize: Whether to enable speaker diarization. When enabled, you will get the speaker id for each word in the transcription.
|
|
57
|
-
In the response, in the words array, you will get the speaker id for each word.
|
|
58
|
-
In addition, we also return the speaker_segments array which contains the speaker id for each speaker segment along with the start and end time of the segment along with all the words in the segment.
|
|
59
|
-
You can use the speaker_id to group the words by speaker.
|
|
60
|
-
You can use the speaker_segments to get the start and end time of each speaker segment.
|
|
61
|
-
Returns:
|
|
62
|
-
The transcribed text in the requested format.
|
|
63
|
-
"""
|
|
69
|
+
file: Audio file to transcribe
|
|
64
70
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
71
|
+
diarize: Whether to enable speaker diarization. When enabled, you will get the speaker id
|
|
72
|
+
for each word in the transcription. In the response, in the words array, you
|
|
73
|
+
will get the speaker id for each word. In addition, we also return the
|
|
74
|
+
speaker_segments array which contains the speaker id for each speaker segment
|
|
75
|
+
along with the start and end time of the segment along with all the words in the
|
|
76
|
+
segment.
|
|
77
|
+
|
|
78
|
+
For eg - ... "speaker_segments": [ "speaker_id": "SPEAKER_00", "start": 0,
|
|
79
|
+
"end": 30.02, "words": [ { "id": 0, "word": "Tijana", "start": 0, "end": 11.475,
|
|
80
|
+
"speaker_id": "SPEAKER_00" }, ...
|
|
81
|
+
|
|
82
|
+
language: Optional ISO 639-1 language code. If `auto` is provided, language is
|
|
83
|
+
auto-detected.
|
|
84
|
+
|
|
85
|
+
model: Model to use for transcription
|
|
86
|
+
|
|
87
|
+
prompt: Optional text to bias decoding.
|
|
68
88
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
params_data.update(
|
|
89
|
+
response_format: The format of the response
|
|
90
|
+
|
|
91
|
+
temperature: Sampling temperature between 0.0 and 1.0
|
|
92
|
+
|
|
93
|
+
timestamp_granularities: Controls level of timestamp detail in verbose_json. Only used when
|
|
94
|
+
response_format is verbose_json. Can be a single granularity or an array to get
|
|
95
|
+
multiple levels.
|
|
96
|
+
|
|
97
|
+
extra_headers: Send extra headers
|
|
98
|
+
|
|
99
|
+
extra_query: Add additional query parameters to the request
|
|
100
|
+
|
|
101
|
+
extra_body: Add additional JSON properties to the request
|
|
102
|
+
|
|
103
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
104
|
+
"""
|
|
105
|
+
body = deepcopy_minimal(
|
|
87
106
|
{
|
|
107
|
+
"file": file,
|
|
108
|
+
"diarize": diarize,
|
|
109
|
+
"language": language,
|
|
88
110
|
"model": model,
|
|
89
|
-
"
|
|
90
|
-
|
|
91
|
-
if hasattr(response_format, "value")
|
|
92
|
-
else response_format
|
|
93
|
-
),
|
|
111
|
+
"prompt": prompt,
|
|
112
|
+
"response_format": response_format,
|
|
94
113
|
"temperature": temperature,
|
|
114
|
+
"timestamp_granularities": timestamp_granularities,
|
|
95
115
|
}
|
|
96
116
|
)
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
if diarize:
|
|
112
|
-
params_data["diarize"] = diarize
|
|
113
|
-
|
|
114
|
-
# Add any additional kwargs
|
|
115
|
-
# Convert boolean values to lowercase strings for proper form encoding
|
|
116
|
-
for key, value in kwargs.items():
|
|
117
|
-
if isinstance(value, bool):
|
|
118
|
-
params_data[key] = str(value).lower()
|
|
119
|
-
else:
|
|
120
|
-
params_data[key] = value
|
|
121
|
-
|
|
122
|
-
try:
|
|
123
|
-
response, _, _ = requestor.request(
|
|
124
|
-
options=TogetherRequest(
|
|
125
|
-
method="POST",
|
|
126
|
-
url="audio/transcriptions",
|
|
127
|
-
params=params_data,
|
|
128
|
-
files=files_data,
|
|
117
|
+
files = extract_files(cast(Mapping[str, object], body), paths=[["file"]])
|
|
118
|
+
# It should be noted that the actual Content-Type header that will be
|
|
119
|
+
# sent to the server will contain a `boundary` parameter, e.g.
|
|
120
|
+
# multipart/form-data; boundary=---abc--
|
|
121
|
+
extra_headers = {"Content-Type": "multipart/form-data", **(extra_headers or {})}
|
|
122
|
+
return cast(
|
|
123
|
+
TranscriptionCreateResponse,
|
|
124
|
+
self._post(
|
|
125
|
+
"/audio/transcriptions",
|
|
126
|
+
body=maybe_transform(body, transcription_create_params.TranscriptionCreateParams),
|
|
127
|
+
files=files,
|
|
128
|
+
options=make_request_options(
|
|
129
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
129
130
|
),
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
self._client = client
|
|
131
|
+
cast_to=cast(
|
|
132
|
+
Any, TranscriptionCreateResponse
|
|
133
|
+
), # Union types cannot be passed in as arguments in the type system
|
|
134
|
+
),
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
class AsyncTranscriptionsResource(AsyncAPIResource):
|
|
139
|
+
@cached_property
|
|
140
|
+
def with_raw_response(self) -> AsyncTranscriptionsResourceWithRawResponse:
|
|
141
|
+
"""
|
|
142
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
143
|
+
the raw response object instead of the parsed content.
|
|
144
|
+
|
|
145
|
+
For more information, see https://www.github.com/togethercomputer/together-py#accessing-raw-response-data-eg-headers
|
|
146
|
+
"""
|
|
147
|
+
return AsyncTranscriptionsResourceWithRawResponse(self)
|
|
148
|
+
|
|
149
|
+
@cached_property
|
|
150
|
+
def with_streaming_response(self) -> AsyncTranscriptionsResourceWithStreamingResponse:
|
|
151
|
+
"""
|
|
152
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
153
|
+
|
|
154
|
+
For more information, see https://www.github.com/togethercomputer/together-py#with_streaming_response
|
|
155
|
+
"""
|
|
156
|
+
return AsyncTranscriptionsResourceWithStreamingResponse(self)
|
|
157
157
|
|
|
158
158
|
async def create(
|
|
159
159
|
self,
|
|
160
160
|
*,
|
|
161
|
-
file:
|
|
162
|
-
|
|
163
|
-
language:
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
161
|
+
file: FileTypes,
|
|
162
|
+
diarize: bool | Omit = omit,
|
|
163
|
+
language: str | Omit = omit,
|
|
164
|
+
model: Literal["openai/whisper-large-v3"] | Omit = omit,
|
|
165
|
+
prompt: str | Omit = omit,
|
|
166
|
+
response_format: Literal["json", "verbose_json"] | Omit = omit,
|
|
167
|
+
temperature: float | Omit = omit,
|
|
168
|
+
timestamp_granularities: Union[Literal["segment", "word"], List[Literal["segment", "word"]]] | Omit = omit,
|
|
169
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
170
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
171
|
+
extra_headers: Headers | None = None,
|
|
172
|
+
extra_query: Query | None = None,
|
|
173
|
+
extra_body: Body | None = None,
|
|
174
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
175
|
+
) -> TranscriptionCreateResponse:
|
|
173
176
|
"""
|
|
174
|
-
|
|
177
|
+
Transcribes audio into text
|
|
175
178
|
|
|
176
179
|
Args:
|
|
177
|
-
|
|
178
|
-
flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm.
|
|
179
|
-
Can be a file path (str/Path), file object (BinaryIO), or URL (str).
|
|
180
|
-
model: ID of the model to use. Defaults to "openai/whisper-large-v3".
|
|
181
|
-
language: The language of the input audio. Supplying the input language in
|
|
182
|
-
ISO-639-1 format will improve accuracy and latency.
|
|
183
|
-
prompt: An optional text to guide the model's style or continue a previous
|
|
184
|
-
audio segment. The prompt should match the audio language.
|
|
185
|
-
response_format: The format of the transcript output, in one of these options:
|
|
186
|
-
json, verbose_json.
|
|
187
|
-
temperature: The sampling temperature, between 0 and 1. Higher values like 0.8
|
|
188
|
-
will make the output more random, while lower values like 0.2 will make it
|
|
189
|
-
more focused and deterministic.
|
|
190
|
-
timestamp_granularities: The timestamp granularities to populate for this
|
|
191
|
-
transcription. response_format must be set verbose_json to use timestamp
|
|
192
|
-
granularities. Either or both of these options are supported: word, or segment.
|
|
193
|
-
diarize: Whether to enable speaker diarization. When enabled, you will get the speaker id for each word in the transcription.
|
|
194
|
-
In the response, in the words array, you will get the speaker id for each word.
|
|
195
|
-
In addition, we also return the speaker_segments array which contains the speaker id for each speaker segment along with the start and end time of the segment along with all the words in the segment.
|
|
196
|
-
You can use the speaker_id to group the words by speaker.
|
|
197
|
-
You can use the speaker_segments to get the start and end time of each speaker segment.
|
|
198
|
-
Returns:
|
|
199
|
-
The transcribed text in the requested format.
|
|
200
|
-
"""
|
|
180
|
+
file: Audio file to transcribe
|
|
201
181
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
182
|
+
diarize: Whether to enable speaker diarization. When enabled, you will get the speaker id
|
|
183
|
+
for each word in the transcription. In the response, in the words array, you
|
|
184
|
+
will get the speaker id for each word. In addition, we also return the
|
|
185
|
+
speaker_segments array which contains the speaker id for each speaker segment
|
|
186
|
+
along with the start and end time of the segment along with all the words in the
|
|
187
|
+
segment.
|
|
188
|
+
|
|
189
|
+
For eg - ... "speaker_segments": [ "speaker_id": "SPEAKER_00", "start": 0,
|
|
190
|
+
"end": 30.02, "words": [ { "id": 0, "word": "Tijana", "start": 0, "end": 11.475,
|
|
191
|
+
"speaker_id": "SPEAKER_00" }, ...
|
|
192
|
+
|
|
193
|
+
language: Optional ISO 639-1 language code. If `auto` is provided, language is
|
|
194
|
+
auto-detected.
|
|
195
|
+
|
|
196
|
+
model: Model to use for transcription
|
|
197
|
+
|
|
198
|
+
prompt: Optional text to bias decoding.
|
|
199
|
+
|
|
200
|
+
response_format: The format of the response
|
|
205
201
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
# Build request parameters
|
|
223
|
-
params_data.update(
|
|
202
|
+
temperature: Sampling temperature between 0.0 and 1.0
|
|
203
|
+
|
|
204
|
+
timestamp_granularities: Controls level of timestamp detail in verbose_json. Only used when
|
|
205
|
+
response_format is verbose_json. Can be a single granularity or an array to get
|
|
206
|
+
multiple levels.
|
|
207
|
+
|
|
208
|
+
extra_headers: Send extra headers
|
|
209
|
+
|
|
210
|
+
extra_query: Add additional query parameters to the request
|
|
211
|
+
|
|
212
|
+
extra_body: Add additional JSON properties to the request
|
|
213
|
+
|
|
214
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
215
|
+
"""
|
|
216
|
+
body = deepcopy_minimal(
|
|
224
217
|
{
|
|
218
|
+
"file": file,
|
|
219
|
+
"diarize": diarize,
|
|
220
|
+
"language": language,
|
|
225
221
|
"model": model,
|
|
226
|
-
"
|
|
227
|
-
|
|
228
|
-
if isinstance(response_format, str)
|
|
229
|
-
else (
|
|
230
|
-
response_format.value
|
|
231
|
-
if hasattr(response_format, "value")
|
|
232
|
-
else response_format
|
|
233
|
-
)
|
|
234
|
-
),
|
|
222
|
+
"prompt": prompt,
|
|
223
|
+
"response_format": response_format,
|
|
235
224
|
"temperature": temperature,
|
|
225
|
+
"timestamp_granularities": timestamp_granularities,
|
|
236
226
|
}
|
|
237
227
|
)
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
if hasattr(timestamp_granularities, "value")
|
|
252
|
-
else timestamp_granularities
|
|
253
|
-
)
|
|
254
|
-
)
|
|
255
|
-
|
|
256
|
-
if diarize:
|
|
257
|
-
params_data["diarize"] = diarize
|
|
258
|
-
|
|
259
|
-
# Add any additional kwargs
|
|
260
|
-
# Convert boolean values to lowercase strings for proper form encoding
|
|
261
|
-
for key, value in kwargs.items():
|
|
262
|
-
if isinstance(value, bool):
|
|
263
|
-
params_data[key] = str(value).lower()
|
|
264
|
-
else:
|
|
265
|
-
params_data[key] = value
|
|
266
|
-
|
|
267
|
-
try:
|
|
268
|
-
response, _, _ = await requestor.arequest(
|
|
269
|
-
options=TogetherRequest(
|
|
270
|
-
method="POST",
|
|
271
|
-
url="audio/transcriptions",
|
|
272
|
-
params=params_data,
|
|
273
|
-
files=files_data,
|
|
228
|
+
files = extract_files(cast(Mapping[str, object], body), paths=[["file"]])
|
|
229
|
+
# It should be noted that the actual Content-Type header that will be
|
|
230
|
+
# sent to the server will contain a `boundary` parameter, e.g.
|
|
231
|
+
# multipart/form-data; boundary=---abc--
|
|
232
|
+
extra_headers = {"Content-Type": "multipart/form-data", **(extra_headers or {})}
|
|
233
|
+
return cast(
|
|
234
|
+
TranscriptionCreateResponse,
|
|
235
|
+
await self._post(
|
|
236
|
+
"/audio/transcriptions",
|
|
237
|
+
body=await async_maybe_transform(body, transcription_create_params.TranscriptionCreateParams),
|
|
238
|
+
files=files,
|
|
239
|
+
options=make_request_options(
|
|
240
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
274
241
|
),
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
242
|
+
cast_to=cast(
|
|
243
|
+
Any, TranscriptionCreateResponse
|
|
244
|
+
), # Union types cannot be passed in as arguments in the type system
|
|
245
|
+
),
|
|
246
|
+
)
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
class TranscriptionsResourceWithRawResponse:
|
|
250
|
+
def __init__(self, transcriptions: TranscriptionsResource) -> None:
|
|
251
|
+
self._transcriptions = transcriptions
|
|
252
|
+
|
|
253
|
+
self.create = to_raw_response_wrapper(
|
|
254
|
+
transcriptions.create,
|
|
255
|
+
)
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
class AsyncTranscriptionsResourceWithRawResponse:
|
|
259
|
+
def __init__(self, transcriptions: AsyncTranscriptionsResource) -> None:
|
|
260
|
+
self._transcriptions = transcriptions
|
|
261
|
+
|
|
262
|
+
self.create = async_to_raw_response_wrapper(
|
|
263
|
+
transcriptions.create,
|
|
264
|
+
)
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
class TranscriptionsResourceWithStreamingResponse:
|
|
268
|
+
def __init__(self, transcriptions: TranscriptionsResource) -> None:
|
|
269
|
+
self._transcriptions = transcriptions
|
|
270
|
+
|
|
271
|
+
self.create = to_streamed_response_wrapper(
|
|
272
|
+
transcriptions.create,
|
|
273
|
+
)
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
class AsyncTranscriptionsResourceWithStreamingResponse:
|
|
277
|
+
def __init__(self, transcriptions: AsyncTranscriptionsResource) -> None:
|
|
278
|
+
self._transcriptions = transcriptions
|
|
279
|
+
|
|
280
|
+
self.create = async_to_streamed_response_wrapper(
|
|
281
|
+
transcriptions.create,
|
|
282
|
+
)
|