@ai-sdk/openai 4.0.0-beta.30 → 4.0.0-beta.31
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.
- package/CHANGELOG.md +18 -0
- package/dist/index.js +184 -95
- package/dist/index.js.map +1 -1
- package/dist/internal/index.d.ts +61 -4
- package/dist/internal/index.js +183 -94
- package/dist/internal/index.js.map +1 -1
- package/package.json +3 -3
- package/src/chat/openai-chat-language-model.ts +20 -3
- package/src/completion/openai-completion-language-model.ts +20 -3
- package/src/embedding/openai-embedding-model.ts +18 -1
- package/src/image/openai-image-model.ts +19 -2
- package/src/openai-config.ts +1 -1
- package/src/responses/convert-to-openai-responses-input.ts +24 -24
- package/src/responses/openai-responses-language-model.ts +19 -2
- package/src/speech/openai-speech-model.ts +18 -1
- package/src/transcription/openai-transcription-model.ts +18 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-sdk/openai",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.31",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@ai-sdk/provider": "4.0.0-beta.
|
|
39
|
-
"@ai-sdk/provider-utils": "5.0.0-beta.
|
|
38
|
+
"@ai-sdk/provider": "4.0.0-beta.12",
|
|
39
|
+
"@ai-sdk/provider-utils": "5.0.0-beta.20"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@types/node": "20.17.24",
|
|
@@ -21,6 +21,9 @@ import {
|
|
|
21
21
|
isParsableJson,
|
|
22
22
|
parseProviderOptions,
|
|
23
23
|
postJsonToApi,
|
|
24
|
+
serializeModelOptions,
|
|
25
|
+
WORKFLOW_DESERIALIZE,
|
|
26
|
+
WORKFLOW_SERIALIZE,
|
|
24
27
|
} from '@ai-sdk/provider-utils';
|
|
25
28
|
import { openaiFailedResponseHandler } from '../openai-error';
|
|
26
29
|
import { getOpenAILanguageModelCapabilities } from '../openai-language-model-capabilities';
|
|
@@ -44,7 +47,7 @@ import { prepareChatTools } from './openai-chat-prepare-tools';
|
|
|
44
47
|
|
|
45
48
|
type OpenAIChatConfig = {
|
|
46
49
|
provider: string;
|
|
47
|
-
headers
|
|
50
|
+
headers?: () => Record<string, string | undefined>;
|
|
48
51
|
url: (options: { modelId: string; path: string }) => string;
|
|
49
52
|
fetch?: FetchFunction;
|
|
50
53
|
};
|
|
@@ -60,6 +63,20 @@ export class OpenAIChatLanguageModel implements LanguageModelV4 {
|
|
|
60
63
|
|
|
61
64
|
private readonly config: OpenAIChatConfig;
|
|
62
65
|
|
|
66
|
+
static [WORKFLOW_SERIALIZE](model: OpenAIChatLanguageModel) {
|
|
67
|
+
return serializeModelOptions({
|
|
68
|
+
modelId: model.modelId,
|
|
69
|
+
config: model.config,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
static [WORKFLOW_DESERIALIZE](options: {
|
|
74
|
+
modelId: OpenAIChatModelId;
|
|
75
|
+
config: OpenAIChatConfig;
|
|
76
|
+
}) {
|
|
77
|
+
return new OpenAIChatLanguageModel(options.modelId, options.config);
|
|
78
|
+
}
|
|
79
|
+
|
|
63
80
|
constructor(modelId: OpenAIChatModelId, config: OpenAIChatConfig) {
|
|
64
81
|
this.modelId = modelId;
|
|
65
82
|
this.config = config;
|
|
@@ -335,7 +352,7 @@ export class OpenAIChatLanguageModel implements LanguageModelV4 {
|
|
|
335
352
|
path: '/chat/completions',
|
|
336
353
|
modelId: this.modelId,
|
|
337
354
|
}),
|
|
338
|
-
headers: combineHeaders(this.config.headers(), options.headers),
|
|
355
|
+
headers: combineHeaders(this.config.headers?.(), options.headers),
|
|
339
356
|
body,
|
|
340
357
|
failedResponseHandler: openaiFailedResponseHandler,
|
|
341
358
|
successfulResponseHandler: createJsonResponseHandler(
|
|
@@ -426,7 +443,7 @@ export class OpenAIChatLanguageModel implements LanguageModelV4 {
|
|
|
426
443
|
path: '/chat/completions',
|
|
427
444
|
modelId: this.modelId,
|
|
428
445
|
}),
|
|
429
|
-
headers: combineHeaders(this.config.headers(), options.headers),
|
|
446
|
+
headers: combineHeaders(this.config.headers?.(), options.headers),
|
|
430
447
|
body,
|
|
431
448
|
failedResponseHandler: openaiFailedResponseHandler,
|
|
432
449
|
successfulResponseHandler: createEventSourceResponseHandler(
|
|
@@ -16,6 +16,9 @@ import {
|
|
|
16
16
|
parseProviderOptions,
|
|
17
17
|
ParseResult,
|
|
18
18
|
postJsonToApi,
|
|
19
|
+
serializeModelOptions,
|
|
20
|
+
WORKFLOW_DESERIALIZE,
|
|
21
|
+
WORKFLOW_SERIALIZE,
|
|
19
22
|
} from '@ai-sdk/provider-utils';
|
|
20
23
|
import { openaiFailedResponseHandler } from '../openai-error';
|
|
21
24
|
import {
|
|
@@ -37,7 +40,7 @@ import {
|
|
|
37
40
|
|
|
38
41
|
type OpenAICompletionConfig = {
|
|
39
42
|
provider: string;
|
|
40
|
-
headers
|
|
43
|
+
headers?: () => Record<string, string | undefined>;
|
|
41
44
|
url: (options: { modelId: string; path: string }) => string;
|
|
42
45
|
fetch?: FetchFunction;
|
|
43
46
|
};
|
|
@@ -53,6 +56,20 @@ export class OpenAICompletionLanguageModel implements LanguageModelV4 {
|
|
|
53
56
|
return this.config.provider.split('.')[0].trim();
|
|
54
57
|
}
|
|
55
58
|
|
|
59
|
+
static [WORKFLOW_SERIALIZE](model: OpenAICompletionLanguageModel) {
|
|
60
|
+
return serializeModelOptions({
|
|
61
|
+
modelId: model.modelId,
|
|
62
|
+
config: model.config,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
static [WORKFLOW_DESERIALIZE](options: {
|
|
67
|
+
modelId: OpenAICompletionModelId;
|
|
68
|
+
config: OpenAICompletionConfig;
|
|
69
|
+
}) {
|
|
70
|
+
return new OpenAICompletionLanguageModel(options.modelId, options.config);
|
|
71
|
+
}
|
|
72
|
+
|
|
56
73
|
constructor(
|
|
57
74
|
modelId: OpenAICompletionModelId,
|
|
58
75
|
config: OpenAICompletionConfig,
|
|
@@ -174,7 +191,7 @@ export class OpenAICompletionLanguageModel implements LanguageModelV4 {
|
|
|
174
191
|
path: '/completions',
|
|
175
192
|
modelId: this.modelId,
|
|
176
193
|
}),
|
|
177
|
-
headers: combineHeaders(this.config.headers(), options.headers),
|
|
194
|
+
headers: combineHeaders(this.config.headers?.(), options.headers),
|
|
178
195
|
body: args,
|
|
179
196
|
failedResponseHandler: openaiFailedResponseHandler,
|
|
180
197
|
successfulResponseHandler: createJsonResponseHandler(
|
|
@@ -229,7 +246,7 @@ export class OpenAICompletionLanguageModel implements LanguageModelV4 {
|
|
|
229
246
|
path: '/completions',
|
|
230
247
|
modelId: this.modelId,
|
|
231
248
|
}),
|
|
232
|
-
headers: combineHeaders(this.config.headers(), options.headers),
|
|
249
|
+
headers: combineHeaders(this.config.headers?.(), options.headers),
|
|
233
250
|
body,
|
|
234
251
|
failedResponseHandler: openaiFailedResponseHandler,
|
|
235
252
|
successfulResponseHandler: createEventSourceResponseHandler(
|
|
@@ -7,6 +7,9 @@ import {
|
|
|
7
7
|
createJsonResponseHandler,
|
|
8
8
|
parseProviderOptions,
|
|
9
9
|
postJsonToApi,
|
|
10
|
+
serializeModelOptions,
|
|
11
|
+
WORKFLOW_DESERIALIZE,
|
|
12
|
+
WORKFLOW_SERIALIZE,
|
|
10
13
|
} from '@ai-sdk/provider-utils';
|
|
11
14
|
import { OpenAIConfig } from '../openai-config';
|
|
12
15
|
import { openaiFailedResponseHandler } from '../openai-error';
|
|
@@ -24,6 +27,20 @@ export class OpenAIEmbeddingModel implements EmbeddingModelV4 {
|
|
|
24
27
|
|
|
25
28
|
private readonly config: OpenAIConfig;
|
|
26
29
|
|
|
30
|
+
static [WORKFLOW_SERIALIZE](model: OpenAIEmbeddingModel) {
|
|
31
|
+
return serializeModelOptions({
|
|
32
|
+
modelId: model.modelId,
|
|
33
|
+
config: model.config,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
static [WORKFLOW_DESERIALIZE](options: {
|
|
38
|
+
modelId: OpenAIEmbeddingModelId;
|
|
39
|
+
config: OpenAIConfig;
|
|
40
|
+
}) {
|
|
41
|
+
return new OpenAIEmbeddingModel(options.modelId, options.config);
|
|
42
|
+
}
|
|
43
|
+
|
|
27
44
|
get provider(): string {
|
|
28
45
|
return this.config.provider;
|
|
29
46
|
}
|
|
@@ -67,7 +84,7 @@ export class OpenAIEmbeddingModel implements EmbeddingModelV4 {
|
|
|
67
84
|
path: '/embeddings',
|
|
68
85
|
modelId: this.modelId,
|
|
69
86
|
}),
|
|
70
|
-
headers: combineHeaders(this.config.headers(), headers),
|
|
87
|
+
headers: combineHeaders(this.config.headers?.(), headers),
|
|
71
88
|
body: {
|
|
72
89
|
model: this.modelId,
|
|
73
90
|
input: values,
|
|
@@ -11,6 +11,9 @@ import {
|
|
|
11
11
|
downloadBlob,
|
|
12
12
|
postFormDataToApi,
|
|
13
13
|
postJsonToApi,
|
|
14
|
+
serializeModelOptions,
|
|
15
|
+
WORKFLOW_DESERIALIZE,
|
|
16
|
+
WORKFLOW_SERIALIZE,
|
|
14
17
|
} from '@ai-sdk/provider-utils';
|
|
15
18
|
import { OpenAIConfig } from '../openai-config';
|
|
16
19
|
import { openaiFailedResponseHandler } from '../openai-error';
|
|
@@ -30,6 +33,20 @@ interface OpenAIImageModelConfig extends OpenAIConfig {
|
|
|
30
33
|
export class OpenAIImageModel implements ImageModelV4 {
|
|
31
34
|
readonly specificationVersion = 'v4';
|
|
32
35
|
|
|
36
|
+
static [WORKFLOW_SERIALIZE](model: OpenAIImageModel) {
|
|
37
|
+
return serializeModelOptions({
|
|
38
|
+
modelId: model.modelId,
|
|
39
|
+
config: model.config,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
static [WORKFLOW_DESERIALIZE](options: {
|
|
44
|
+
modelId: OpenAIImageModelId;
|
|
45
|
+
config: OpenAIImageModelConfig;
|
|
46
|
+
}) {
|
|
47
|
+
return new OpenAIImageModel(options.modelId, options.config);
|
|
48
|
+
}
|
|
49
|
+
|
|
33
50
|
get maxImagesPerCall(): number {
|
|
34
51
|
return modelMaxImagesPerCall[this.modelId] ?? 1;
|
|
35
52
|
}
|
|
@@ -80,7 +97,7 @@ export class OpenAIImageModel implements ImageModelV4 {
|
|
|
80
97
|
path: '/images/edits',
|
|
81
98
|
modelId: this.modelId,
|
|
82
99
|
}),
|
|
83
|
-
headers: combineHeaders(this.config.headers(), headers),
|
|
100
|
+
headers: combineHeaders(this.config.headers?.(), headers),
|
|
84
101
|
formData: convertToFormData<OpenAIImageEditInput>({
|
|
85
102
|
model: this.modelId,
|
|
86
103
|
prompt,
|
|
@@ -158,7 +175,7 @@ export class OpenAIImageModel implements ImageModelV4 {
|
|
|
158
175
|
path: '/images/generations',
|
|
159
176
|
modelId: this.modelId,
|
|
160
177
|
}),
|
|
161
|
-
headers: combineHeaders(this.config.headers(), headers),
|
|
178
|
+
headers: combineHeaders(this.config.headers?.(), headers),
|
|
162
179
|
body: {
|
|
163
180
|
model: this.modelId,
|
|
164
181
|
prompt,
|
package/src/openai-config.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { FetchFunction } from '@ai-sdk/provider-utils';
|
|
|
3
3
|
export type OpenAIConfig = {
|
|
4
4
|
provider: string;
|
|
5
5
|
url: (options: { modelId: string; path: string }) => string;
|
|
6
|
-
headers
|
|
6
|
+
headers?: () => Record<string, string | undefined>;
|
|
7
7
|
fetch?: FetchFunction;
|
|
8
8
|
generateId?: () => string;
|
|
9
9
|
/**
|
|
@@ -751,23 +751,25 @@ export async function convertToOpenAIResponsesInput({
|
|
|
751
751
|
switch (item.type) {
|
|
752
752
|
case 'text':
|
|
753
753
|
return { type: 'input_text' as const, text: item.text };
|
|
754
|
-
case 'image-data':
|
|
755
|
-
return {
|
|
756
|
-
type: 'input_image' as const,
|
|
757
|
-
image_url: `data:${item.mediaType};base64,${item.data}`,
|
|
758
|
-
};
|
|
759
|
-
case 'image-url':
|
|
760
|
-
return {
|
|
761
|
-
type: 'input_image' as const,
|
|
762
|
-
image_url: item.url,
|
|
763
|
-
};
|
|
764
754
|
case 'file-data':
|
|
755
|
+
if (item.mediaType.startsWith('image/')) {
|
|
756
|
+
return {
|
|
757
|
+
type: 'input_image' as const,
|
|
758
|
+
image_url: `data:${item.mediaType};base64,${item.data}`,
|
|
759
|
+
};
|
|
760
|
+
}
|
|
765
761
|
return {
|
|
766
762
|
type: 'input_file' as const,
|
|
767
763
|
filename: item.filename ?? 'data',
|
|
768
764
|
file_data: `data:${item.mediaType};base64,${item.data}`,
|
|
769
765
|
};
|
|
770
766
|
case 'file-url':
|
|
767
|
+
if (item.mediaType.startsWith('image/')) {
|
|
768
|
+
return {
|
|
769
|
+
type: 'input_image' as const,
|
|
770
|
+
image_url: item.url,
|
|
771
|
+
};
|
|
772
|
+
}
|
|
771
773
|
return {
|
|
772
774
|
type: 'input_file' as const,
|
|
773
775
|
file_url: item.url,
|
|
@@ -814,21 +816,13 @@ export async function convertToOpenAIResponsesInput({
|
|
|
814
816
|
return { type: 'input_text' as const, text: item.text };
|
|
815
817
|
}
|
|
816
818
|
|
|
817
|
-
case 'image-data': {
|
|
818
|
-
return {
|
|
819
|
-
type: 'input_image' as const,
|
|
820
|
-
image_url: `data:${item.mediaType};base64,${item.data}`,
|
|
821
|
-
};
|
|
822
|
-
}
|
|
823
|
-
|
|
824
|
-
case 'image-url': {
|
|
825
|
-
return {
|
|
826
|
-
type: 'input_image' as const,
|
|
827
|
-
image_url: item.url,
|
|
828
|
-
};
|
|
829
|
-
}
|
|
830
|
-
|
|
831
819
|
case 'file-data': {
|
|
820
|
+
if (item.mediaType.startsWith('image/')) {
|
|
821
|
+
return {
|
|
822
|
+
type: 'input_image' as const,
|
|
823
|
+
image_url: `data:${item.mediaType};base64,${item.data}`,
|
|
824
|
+
};
|
|
825
|
+
}
|
|
832
826
|
return {
|
|
833
827
|
type: 'input_file' as const,
|
|
834
828
|
filename: item.filename ?? 'data',
|
|
@@ -837,6 +831,12 @@ export async function convertToOpenAIResponsesInput({
|
|
|
837
831
|
}
|
|
838
832
|
|
|
839
833
|
case 'file-url': {
|
|
834
|
+
if (item.mediaType.startsWith('image/')) {
|
|
835
|
+
return {
|
|
836
|
+
type: 'input_image' as const,
|
|
837
|
+
image_url: item.url,
|
|
838
|
+
};
|
|
839
|
+
}
|
|
840
840
|
return {
|
|
841
841
|
type: 'input_file' as const,
|
|
842
842
|
file_url: item.url,
|
|
@@ -25,6 +25,9 @@ import {
|
|
|
25
25
|
parseProviderOptions,
|
|
26
26
|
ParseResult,
|
|
27
27
|
postJsonToApi,
|
|
28
|
+
serializeModelOptions,
|
|
29
|
+
WORKFLOW_DESERIALIZE,
|
|
30
|
+
WORKFLOW_SERIALIZE,
|
|
28
31
|
} from '@ai-sdk/provider-utils';
|
|
29
32
|
import { OpenAIConfig } from '../openai-config';
|
|
30
33
|
import { openaiFailedResponseHandler } from '../openai-error';
|
|
@@ -107,6 +110,20 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV4 {
|
|
|
107
110
|
|
|
108
111
|
private readonly config: OpenAIConfig;
|
|
109
112
|
|
|
113
|
+
static [WORKFLOW_SERIALIZE](model: OpenAIResponsesLanguageModel) {
|
|
114
|
+
return serializeModelOptions({
|
|
115
|
+
modelId: model.modelId,
|
|
116
|
+
config: model.config,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
static [WORKFLOW_DESERIALIZE](options: {
|
|
121
|
+
modelId: OpenAIResponsesModelId;
|
|
122
|
+
config: OpenAIConfig;
|
|
123
|
+
}) {
|
|
124
|
+
return new OpenAIResponsesLanguageModel(options.modelId, options.config);
|
|
125
|
+
}
|
|
126
|
+
|
|
110
127
|
constructor(modelId: OpenAIResponsesModelId, config: OpenAIConfig) {
|
|
111
128
|
this.modelId = modelId;
|
|
112
129
|
this.config = config;
|
|
@@ -494,7 +511,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV4 {
|
|
|
494
511
|
rawValue: rawResponse,
|
|
495
512
|
} = await postJsonToApi({
|
|
496
513
|
url,
|
|
497
|
-
headers: combineHeaders(this.config.headers(), options.headers),
|
|
514
|
+
headers: combineHeaders(this.config.headers?.(), options.headers),
|
|
498
515
|
body,
|
|
499
516
|
failedResponseHandler: openaiFailedResponseHandler,
|
|
500
517
|
successfulResponseHandler: createJsonResponseHandler(
|
|
@@ -1063,7 +1080,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV4 {
|
|
|
1063
1080
|
path: '/responses',
|
|
1064
1081
|
modelId: this.modelId,
|
|
1065
1082
|
}),
|
|
1066
|
-
headers: combineHeaders(this.config.headers(), options.headers),
|
|
1083
|
+
headers: combineHeaders(this.config.headers?.(), options.headers),
|
|
1067
1084
|
body: {
|
|
1068
1085
|
...body,
|
|
1069
1086
|
stream: true,
|
|
@@ -4,6 +4,9 @@ import {
|
|
|
4
4
|
createBinaryResponseHandler,
|
|
5
5
|
parseProviderOptions,
|
|
6
6
|
postJsonToApi,
|
|
7
|
+
serializeModelOptions,
|
|
8
|
+
WORKFLOW_DESERIALIZE,
|
|
9
|
+
WORKFLOW_SERIALIZE,
|
|
7
10
|
} from '@ai-sdk/provider-utils';
|
|
8
11
|
import { OpenAIConfig } from '../openai-config';
|
|
9
12
|
import { openaiFailedResponseHandler } from '../openai-error';
|
|
@@ -22,6 +25,20 @@ interface OpenAISpeechModelConfig extends OpenAIConfig {
|
|
|
22
25
|
export class OpenAISpeechModel implements SpeechModelV4 {
|
|
23
26
|
readonly specificationVersion = 'v4';
|
|
24
27
|
|
|
28
|
+
static [WORKFLOW_SERIALIZE](model: OpenAISpeechModel) {
|
|
29
|
+
return serializeModelOptions({
|
|
30
|
+
modelId: model.modelId,
|
|
31
|
+
config: model.config,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
static [WORKFLOW_DESERIALIZE](options: {
|
|
36
|
+
modelId: OpenAISpeechModelId;
|
|
37
|
+
config: OpenAISpeechModelConfig;
|
|
38
|
+
}) {
|
|
39
|
+
return new OpenAISpeechModel(options.modelId, options.config);
|
|
40
|
+
}
|
|
41
|
+
|
|
25
42
|
get provider(): string {
|
|
26
43
|
return this.config.provider;
|
|
27
44
|
}
|
|
@@ -112,7 +129,7 @@ export class OpenAISpeechModel implements SpeechModelV4 {
|
|
|
112
129
|
path: '/audio/speech',
|
|
113
130
|
modelId: this.modelId,
|
|
114
131
|
}),
|
|
115
|
-
headers: combineHeaders(this.config.headers(), options.headers),
|
|
132
|
+
headers: combineHeaders(this.config.headers?.(), options.headers),
|
|
116
133
|
body: requestBody,
|
|
117
134
|
failedResponseHandler: openaiFailedResponseHandler,
|
|
118
135
|
successfulResponseHandler: createBinaryResponseHandler(),
|
|
@@ -10,6 +10,9 @@ import {
|
|
|
10
10
|
mediaTypeToExtension,
|
|
11
11
|
parseProviderOptions,
|
|
12
12
|
postFormDataToApi,
|
|
13
|
+
serializeModelOptions,
|
|
14
|
+
WORKFLOW_DESERIALIZE,
|
|
15
|
+
WORKFLOW_SERIALIZE,
|
|
13
16
|
} from '@ai-sdk/provider-utils';
|
|
14
17
|
import { OpenAIConfig } from '../openai-config';
|
|
15
18
|
import { openaiFailedResponseHandler } from '../openai-error';
|
|
@@ -99,6 +102,20 @@ const languageMap = {
|
|
|
99
102
|
export class OpenAITranscriptionModel implements TranscriptionModelV4 {
|
|
100
103
|
readonly specificationVersion = 'v4';
|
|
101
104
|
|
|
105
|
+
static [WORKFLOW_SERIALIZE](model: OpenAITranscriptionModel) {
|
|
106
|
+
return serializeModelOptions({
|
|
107
|
+
modelId: model.modelId,
|
|
108
|
+
config: model.config,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
static [WORKFLOW_DESERIALIZE](options: {
|
|
113
|
+
modelId: OpenAITranscriptionModelId;
|
|
114
|
+
config: OpenAITranscriptionModelConfig;
|
|
115
|
+
}) {
|
|
116
|
+
return new OpenAITranscriptionModel(options.modelId, options.config);
|
|
117
|
+
}
|
|
118
|
+
|
|
102
119
|
get provider(): string {
|
|
103
120
|
return this.config.provider;
|
|
104
121
|
}
|
|
@@ -189,7 +206,7 @@ export class OpenAITranscriptionModel implements TranscriptionModelV4 {
|
|
|
189
206
|
path: '/audio/transcriptions',
|
|
190
207
|
modelId: this.modelId,
|
|
191
208
|
}),
|
|
192
|
-
headers: combineHeaders(this.config.headers(), options.headers),
|
|
209
|
+
headers: combineHeaders(this.config.headers?.(), options.headers),
|
|
193
210
|
formData,
|
|
194
211
|
failedResponseHandler: openaiFailedResponseHandler,
|
|
195
212
|
successfulResponseHandler: createJsonResponseHandler(
|