@ai-sdk/openai 4.0.0-beta.5 → 4.0.0-beta.7
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 +14 -0
- package/dist/index.d.mts +15 -15
- package/dist/index.d.ts +15 -15
- package/dist/index.js +12 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +9 -9
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.d.mts +26 -26
- package/dist/internal/index.d.ts +26 -26
- package/dist/internal/index.js +10 -10
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +7 -7
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/chat/convert-openai-chat-usage.ts +2 -2
- package/src/chat/convert-to-openai-chat-messages.ts +5 -5
- package/src/chat/map-openai-finish-reason.ts +2 -2
- package/src/chat/openai-chat-language-model.ts +22 -22
- package/src/chat/openai-chat-prepare-tools.ts +6 -6
- package/src/completion/convert-openai-completion-usage.ts +2 -2
- package/src/completion/convert-to-openai-completion-prompt.ts +2 -2
- package/src/completion/map-openai-finish-reason.ts +2 -2
- package/src/completion/openai-completion-language-model.ts +20 -20
- package/src/embedding/openai-embedding-model.ts +5 -5
- package/src/image/openai-image-model.ts +9 -9
- package/src/openai-provider.ts +21 -21
- package/src/responses/convert-openai-responses-usage.ts +2 -2
- package/src/responses/convert-to-openai-responses-input.ts +7 -7
- package/src/responses/map-openai-responses-finish-reason.ts +2 -2
- package/src/responses/openai-responses-language-model.ts +29 -29
- package/src/responses/openai-responses-prepare-tools.ts +6 -6
- package/src/speech/openai-speech-model.ts +7 -7
- package/src/transcription/openai-transcription-model.ts +8 -8
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
APICallError,
|
|
3
3
|
JSONValue,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
4
|
+
LanguageModelV4,
|
|
5
|
+
LanguageModelV4Prompt,
|
|
6
|
+
LanguageModelV4CallOptions,
|
|
7
|
+
LanguageModelV4Content,
|
|
8
|
+
LanguageModelV4FinishReason,
|
|
9
|
+
LanguageModelV4GenerateResult,
|
|
10
|
+
LanguageModelV4ProviderTool,
|
|
11
|
+
LanguageModelV4StreamPart,
|
|
12
|
+
LanguageModelV4StreamResult,
|
|
13
|
+
LanguageModelV4ToolApprovalRequest,
|
|
14
|
+
SharedV4ProviderMetadata,
|
|
15
|
+
SharedV4Warning,
|
|
16
16
|
} from '@ai-sdk/provider';
|
|
17
17
|
import {
|
|
18
18
|
combineHeaders,
|
|
@@ -77,7 +77,7 @@ import {
|
|
|
77
77
|
* so that tool results reference the correct tool call.
|
|
78
78
|
*/
|
|
79
79
|
function extractApprovalRequestIdToToolCallIdMapping(
|
|
80
|
-
prompt:
|
|
80
|
+
prompt: LanguageModelV4Prompt,
|
|
81
81
|
): Record<string, string> {
|
|
82
82
|
const mapping: Record<string, string> = {};
|
|
83
83
|
for (const message of prompt) {
|
|
@@ -94,8 +94,8 @@ function extractApprovalRequestIdToToolCallIdMapping(
|
|
|
94
94
|
return mapping;
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
export class OpenAIResponsesLanguageModel implements
|
|
98
|
-
readonly specificationVersion = '
|
|
97
|
+
export class OpenAIResponsesLanguageModel implements LanguageModelV4 {
|
|
98
|
+
readonly specificationVersion = 'v4';
|
|
99
99
|
|
|
100
100
|
readonly modelId: OpenAIResponsesModelId;
|
|
101
101
|
|
|
@@ -129,8 +129,8 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
|
|
|
129
129
|
tools,
|
|
130
130
|
toolChoice,
|
|
131
131
|
responseFormat,
|
|
132
|
-
}:
|
|
133
|
-
const warnings:
|
|
132
|
+
}: LanguageModelV4CallOptions) {
|
|
133
|
+
const warnings: SharedV4Warning[] = [];
|
|
134
134
|
const modelCapabilities = getOpenAILanguageModelCapabilities(this.modelId);
|
|
135
135
|
|
|
136
136
|
if (topK != null) {
|
|
@@ -273,7 +273,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
|
|
|
273
273
|
tool.type === 'provider' &&
|
|
274
274
|
(tool.id === 'openai.web_search' ||
|
|
275
275
|
tool.id === 'openai.web_search_preview'),
|
|
276
|
-
) as
|
|
276
|
+
) as LanguageModelV4ProviderTool | undefined
|
|
277
277
|
)?.name;
|
|
278
278
|
|
|
279
279
|
if (webSearchToolName) {
|
|
@@ -454,8 +454,8 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
|
|
|
454
454
|
}
|
|
455
455
|
|
|
456
456
|
async doGenerate(
|
|
457
|
-
options:
|
|
458
|
-
): Promise<
|
|
457
|
+
options: LanguageModelV4CallOptions,
|
|
458
|
+
): Promise<LanguageModelV4GenerateResult> {
|
|
459
459
|
const {
|
|
460
460
|
args: body,
|
|
461
461
|
warnings,
|
|
@@ -500,7 +500,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
|
|
|
500
500
|
});
|
|
501
501
|
}
|
|
502
502
|
|
|
503
|
-
const content: Array<
|
|
503
|
+
const content: Array<LanguageModelV4Content> = [];
|
|
504
504
|
const logprobs: Array<OpenAIResponsesLogprobs> = [];
|
|
505
505
|
|
|
506
506
|
// flag that checks if there have been client-side tool calls (not executed by openai)
|
|
@@ -621,7 +621,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
|
|
|
621
621
|
logprobs.push(contentPart.logprobs);
|
|
622
622
|
}
|
|
623
623
|
|
|
624
|
-
const providerMetadata:
|
|
624
|
+
const providerMetadata: SharedV4ProviderMetadata[string] = {
|
|
625
625
|
itemId: part.id,
|
|
626
626
|
...(part.phase != null && { phase: part.phase }),
|
|
627
627
|
...(contentPart.annotations.length > 0 && {
|
|
@@ -833,7 +833,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
|
|
|
833
833
|
type: 'tool-approval-request',
|
|
834
834
|
approvalId: approvalRequestId,
|
|
835
835
|
toolCallId: dummyToolCallId,
|
|
836
|
-
} satisfies
|
|
836
|
+
} satisfies LanguageModelV4ToolApprovalRequest);
|
|
837
837
|
break;
|
|
838
838
|
}
|
|
839
839
|
|
|
@@ -930,7 +930,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
|
|
|
930
930
|
}
|
|
931
931
|
}
|
|
932
932
|
|
|
933
|
-
const providerMetadata:
|
|
933
|
+
const providerMetadata: SharedV4ProviderMetadata = {
|
|
934
934
|
[providerOptionsName]: {
|
|
935
935
|
responseId: response.id,
|
|
936
936
|
...(logprobs.length > 0 ? { logprobs } : {}),
|
|
@@ -966,8 +966,8 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
|
|
|
966
966
|
}
|
|
967
967
|
|
|
968
968
|
async doStream(
|
|
969
|
-
options:
|
|
970
|
-
): Promise<
|
|
969
|
+
options: LanguageModelV4CallOptions,
|
|
970
|
+
): Promise<LanguageModelV4StreamResult> {
|
|
971
971
|
const {
|
|
972
972
|
args: body,
|
|
973
973
|
warnings,
|
|
@@ -1006,7 +1006,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
|
|
|
1006
1006
|
string
|
|
1007
1007
|
>();
|
|
1008
1008
|
|
|
1009
|
-
let finishReason:
|
|
1009
|
+
let finishReason: LanguageModelV4FinishReason = {
|
|
1010
1010
|
unified: 'other',
|
|
1011
1011
|
raw: undefined,
|
|
1012
1012
|
};
|
|
@@ -1059,7 +1059,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
|
|
|
1059
1059
|
stream: response.pipeThrough(
|
|
1060
1060
|
new TransformStream<
|
|
1061
1061
|
ParseResult<OpenAIResponsesChunk>,
|
|
1062
|
-
|
|
1062
|
+
LanguageModelV4StreamPart
|
|
1063
1063
|
>({
|
|
1064
1064
|
start(controller) {
|
|
1065
1065
|
controller.enqueue({ type: 'stream-start', warnings });
|
|
@@ -1941,7 +1941,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 {
|
|
|
1941
1941
|
},
|
|
1942
1942
|
|
|
1943
1943
|
flush(controller) {
|
|
1944
|
-
const providerMetadata:
|
|
1944
|
+
const providerMetadata: SharedV4ProviderMetadata = {
|
|
1945
1945
|
[providerOptionsName]: {
|
|
1946
1946
|
responseId: responseId,
|
|
1947
1947
|
...(logprobs.length > 0 ? { logprobs } : {}),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
LanguageModelV4CallOptions,
|
|
3
|
+
SharedV4Warning,
|
|
4
4
|
UnsupportedFunctionalityError,
|
|
5
5
|
} from '@ai-sdk/provider';
|
|
6
6
|
import { ToolNameMapping, validateTypes } from '@ai-sdk/provider-utils';
|
|
@@ -20,8 +20,8 @@ export async function prepareResponsesTools({
|
|
|
20
20
|
toolNameMapping,
|
|
21
21
|
customProviderToolNames,
|
|
22
22
|
}: {
|
|
23
|
-
tools:
|
|
24
|
-
toolChoice:
|
|
23
|
+
tools: LanguageModelV4CallOptions['tools'];
|
|
24
|
+
toolChoice: LanguageModelV4CallOptions['toolChoice'] | undefined;
|
|
25
25
|
toolNameMapping?: ToolNameMapping;
|
|
26
26
|
customProviderToolNames?: Set<string>;
|
|
27
27
|
}): Promise<{
|
|
@@ -39,12 +39,12 @@ export async function prepareResponsesTools({
|
|
|
39
39
|
| { type: 'mcp' }
|
|
40
40
|
| { type: 'image_generation' }
|
|
41
41
|
| { type: 'apply_patch' };
|
|
42
|
-
toolWarnings:
|
|
42
|
+
toolWarnings: SharedV4Warning[];
|
|
43
43
|
}> {
|
|
44
44
|
// when the tools array is empty, change it to undefined to prevent errors:
|
|
45
45
|
tools = tools?.length ? tools : undefined;
|
|
46
46
|
|
|
47
|
-
const toolWarnings:
|
|
47
|
+
const toolWarnings: SharedV4Warning[] = [];
|
|
48
48
|
|
|
49
49
|
if (tools == null) {
|
|
50
50
|
return { tools: undefined, toolChoice: undefined, toolWarnings };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SpeechModelV4, SharedV4Warning } from '@ai-sdk/provider';
|
|
2
2
|
import {
|
|
3
3
|
combineHeaders,
|
|
4
4
|
createBinaryResponseHandler,
|
|
@@ -19,8 +19,8 @@ interface OpenAISpeechModelConfig extends OpenAIConfig {
|
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
export class OpenAISpeechModel implements
|
|
23
|
-
readonly specificationVersion = '
|
|
22
|
+
export class OpenAISpeechModel implements SpeechModelV4 {
|
|
23
|
+
readonly specificationVersion = 'v4';
|
|
24
24
|
|
|
25
25
|
get provider(): string {
|
|
26
26
|
return this.config.provider;
|
|
@@ -39,8 +39,8 @@ export class OpenAISpeechModel implements SpeechModelV3 {
|
|
|
39
39
|
instructions,
|
|
40
40
|
language,
|
|
41
41
|
providerOptions,
|
|
42
|
-
}: Parameters<
|
|
43
|
-
const warnings:
|
|
42
|
+
}: Parameters<SpeechModelV4['doGenerate']>[0]) {
|
|
43
|
+
const warnings: SharedV4Warning[] = [];
|
|
44
44
|
|
|
45
45
|
// Parse provider options
|
|
46
46
|
const openAIOptions = await parseProviderOptions({
|
|
@@ -98,8 +98,8 @@ export class OpenAISpeechModel implements SpeechModelV3 {
|
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
async doGenerate(
|
|
101
|
-
options: Parameters<
|
|
102
|
-
): Promise<Awaited<ReturnType<
|
|
101
|
+
options: Parameters<SpeechModelV4['doGenerate']>[0],
|
|
102
|
+
): Promise<Awaited<ReturnType<SpeechModelV4['doGenerate']>>> {
|
|
103
103
|
const currentDate = this.config._internal?.currentDate?.() ?? new Date();
|
|
104
104
|
const { requestBody, warnings } = await this.getArgs(options);
|
|
105
105
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
TranscriptionModelV4,
|
|
3
|
+
TranscriptionModelV4CallOptions,
|
|
4
|
+
SharedV4Warning,
|
|
5
5
|
} from '@ai-sdk/provider';
|
|
6
6
|
import {
|
|
7
7
|
combineHeaders,
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
} from './openai-transcription-options';
|
|
22
22
|
|
|
23
23
|
export type OpenAITranscriptionCallOptions = Omit<
|
|
24
|
-
|
|
24
|
+
TranscriptionModelV4CallOptions,
|
|
25
25
|
'providerOptions'
|
|
26
26
|
> & {
|
|
27
27
|
providerOptions?: {
|
|
@@ -96,8 +96,8 @@ const languageMap = {
|
|
|
96
96
|
welsh: 'cy',
|
|
97
97
|
};
|
|
98
98
|
|
|
99
|
-
export class OpenAITranscriptionModel implements
|
|
100
|
-
readonly specificationVersion = '
|
|
99
|
+
export class OpenAITranscriptionModel implements TranscriptionModelV4 {
|
|
100
|
+
readonly specificationVersion = 'v4';
|
|
101
101
|
|
|
102
102
|
get provider(): string {
|
|
103
103
|
return this.config.provider;
|
|
@@ -113,7 +113,7 @@ export class OpenAITranscriptionModel implements TranscriptionModelV3 {
|
|
|
113
113
|
mediaType,
|
|
114
114
|
providerOptions,
|
|
115
115
|
}: OpenAITranscriptionCallOptions) {
|
|
116
|
-
const warnings:
|
|
116
|
+
const warnings: SharedV4Warning[] = [];
|
|
117
117
|
|
|
118
118
|
// Parse provider options
|
|
119
119
|
const openAIOptions = await parseProviderOptions({
|
|
@@ -176,7 +176,7 @@ export class OpenAITranscriptionModel implements TranscriptionModelV3 {
|
|
|
176
176
|
|
|
177
177
|
async doGenerate(
|
|
178
178
|
options: OpenAITranscriptionCallOptions,
|
|
179
|
-
): Promise<Awaited<ReturnType<
|
|
179
|
+
): Promise<Awaited<ReturnType<TranscriptionModelV4['doGenerate']>>> {
|
|
180
180
|
const currentDate = this.config._internal?.currentDate?.() ?? new Date();
|
|
181
181
|
const { formData, warnings } = await this.getArgs(options);
|
|
182
182
|
|