@ai-sdk/openai 2.0.3 → 2.0.5
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 +13 -0
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +29 -25
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +11 -7
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.d.mts +1 -1
- package/dist/internal/index.d.ts +1 -1
- package/dist/internal/index.js +21 -17
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +11 -7
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +3 -3
|
@@ -2,7 +2,7 @@ import { LanguageModelV2, EmbeddingModelV2, ImageModelV2, TranscriptionModelV2Ca
|
|
|
2
2
|
import { FetchFunction } from '@ai-sdk/provider-utils';
|
|
3
3
|
import { z } from 'zod/v4';
|
|
4
4
|
|
|
5
|
-
type OpenAIChatModelId = 'o1' | 'o1-2024-12-17' | 'o1-mini' | 'o1-mini-2024-09-12' | 'o1-preview' | 'o1-preview-2024-09-12' | 'o3-mini' | 'o3-mini-2025-01-31' | 'o3' | 'o3-2025-04-16' | 'o4-mini' | 'o4-mini-2025-04-16' | 'gpt-4.1' | 'gpt-4.1-2025-04-14' | 'gpt-4.1-mini' | 'gpt-4.1-mini-2025-04-14' | 'gpt-4.1-nano' | 'gpt-4.1-nano-2025-04-14' | 'gpt-4o' | 'gpt-4o-2024-05-13' | 'gpt-4o-2024-08-06' | 'gpt-4o-2024-11-20' | 'gpt-4o-audio-preview' | 'gpt-4o-audio-preview-2024-10-01' | 'gpt-4o-audio-preview-2024-12-17' | 'gpt-4o-search-preview' | 'gpt-4o-search-preview-2025-03-11' | 'gpt-4o-mini-search-preview' | 'gpt-4o-mini-search-preview-2025-03-11' | 'gpt-4o-mini' | 'gpt-4o-mini-2024-07-18' | 'gpt-4-turbo' | 'gpt-4-turbo-2024-04-09' | 'gpt-4-turbo-preview' | 'gpt-4-0125-preview' | 'gpt-4-1106-preview' | 'gpt-4' | 'gpt-4-0613' | 'gpt-4.5-preview' | 'gpt-4.5-preview-2025-02-27' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-1106' | 'chatgpt-4o-latest' | (string & {});
|
|
5
|
+
type OpenAIChatModelId = 'o1' | 'o1-2024-12-17' | 'o1-mini' | 'o1-mini-2024-09-12' | 'o1-preview' | 'o1-preview-2024-09-12' | 'o3-mini' | 'o3-mini-2025-01-31' | 'o3' | 'o3-2025-04-16' | 'o4-mini' | 'o4-mini-2025-04-16' | 'gpt-4.1' | 'gpt-4.1-2025-04-14' | 'gpt-4.1-mini' | 'gpt-4.1-mini-2025-04-14' | 'gpt-4.1-nano' | 'gpt-4.1-nano-2025-04-14' | 'gpt-4o' | 'gpt-4o-2024-05-13' | 'gpt-4o-2024-08-06' | 'gpt-4o-2024-11-20' | 'gpt-4o-audio-preview' | 'gpt-4o-audio-preview-2024-10-01' | 'gpt-4o-audio-preview-2024-12-17' | 'gpt-4o-search-preview' | 'gpt-4o-search-preview-2025-03-11' | 'gpt-4o-mini-search-preview' | 'gpt-4o-mini-search-preview-2025-03-11' | 'gpt-4o-mini' | 'gpt-4o-mini-2024-07-18' | 'gpt-4-turbo' | 'gpt-4-turbo-2024-04-09' | 'gpt-4-turbo-preview' | 'gpt-4-0125-preview' | 'gpt-4-1106-preview' | 'gpt-4' | 'gpt-4-0613' | 'gpt-4.5-preview' | 'gpt-4.5-preview-2025-02-27' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-1106' | 'chatgpt-4o-latest' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | (string & {});
|
|
6
6
|
declare const openaiProviderOptions: z.ZodObject<{
|
|
7
7
|
logitBias: z.ZodOptional<z.ZodRecord<z.ZodCoercedNumber<string>, z.ZodNumber>>;
|
|
8
8
|
logprobs: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber]>>;
|
package/dist/internal/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { LanguageModelV2, EmbeddingModelV2, ImageModelV2, TranscriptionModelV2Ca
|
|
|
2
2
|
import { FetchFunction } from '@ai-sdk/provider-utils';
|
|
3
3
|
import { z } from 'zod/v4';
|
|
4
4
|
|
|
5
|
-
type OpenAIChatModelId = 'o1' | 'o1-2024-12-17' | 'o1-mini' | 'o1-mini-2024-09-12' | 'o1-preview' | 'o1-preview-2024-09-12' | 'o3-mini' | 'o3-mini-2025-01-31' | 'o3' | 'o3-2025-04-16' | 'o4-mini' | 'o4-mini-2025-04-16' | 'gpt-4.1' | 'gpt-4.1-2025-04-14' | 'gpt-4.1-mini' | 'gpt-4.1-mini-2025-04-14' | 'gpt-4.1-nano' | 'gpt-4.1-nano-2025-04-14' | 'gpt-4o' | 'gpt-4o-2024-05-13' | 'gpt-4o-2024-08-06' | 'gpt-4o-2024-11-20' | 'gpt-4o-audio-preview' | 'gpt-4o-audio-preview-2024-10-01' | 'gpt-4o-audio-preview-2024-12-17' | 'gpt-4o-search-preview' | 'gpt-4o-search-preview-2025-03-11' | 'gpt-4o-mini-search-preview' | 'gpt-4o-mini-search-preview-2025-03-11' | 'gpt-4o-mini' | 'gpt-4o-mini-2024-07-18' | 'gpt-4-turbo' | 'gpt-4-turbo-2024-04-09' | 'gpt-4-turbo-preview' | 'gpt-4-0125-preview' | 'gpt-4-1106-preview' | 'gpt-4' | 'gpt-4-0613' | 'gpt-4.5-preview' | 'gpt-4.5-preview-2025-02-27' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-1106' | 'chatgpt-4o-latest' | (string & {});
|
|
5
|
+
type OpenAIChatModelId = 'o1' | 'o1-2024-12-17' | 'o1-mini' | 'o1-mini-2024-09-12' | 'o1-preview' | 'o1-preview-2024-09-12' | 'o3-mini' | 'o3-mini-2025-01-31' | 'o3' | 'o3-2025-04-16' | 'o4-mini' | 'o4-mini-2025-04-16' | 'gpt-4.1' | 'gpt-4.1-2025-04-14' | 'gpt-4.1-mini' | 'gpt-4.1-mini-2025-04-14' | 'gpt-4.1-nano' | 'gpt-4.1-nano-2025-04-14' | 'gpt-4o' | 'gpt-4o-2024-05-13' | 'gpt-4o-2024-08-06' | 'gpt-4o-2024-11-20' | 'gpt-4o-audio-preview' | 'gpt-4o-audio-preview-2024-10-01' | 'gpt-4o-audio-preview-2024-12-17' | 'gpt-4o-search-preview' | 'gpt-4o-search-preview-2025-03-11' | 'gpt-4o-mini-search-preview' | 'gpt-4o-mini-search-preview-2025-03-11' | 'gpt-4o-mini' | 'gpt-4o-mini-2024-07-18' | 'gpt-4-turbo' | 'gpt-4-turbo-2024-04-09' | 'gpt-4-turbo-preview' | 'gpt-4-0125-preview' | 'gpt-4-1106-preview' | 'gpt-4' | 'gpt-4-0613' | 'gpt-4.5-preview' | 'gpt-4.5-preview-2025-02-27' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-1106' | 'chatgpt-4o-latest' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | (string & {});
|
|
6
6
|
declare const openaiProviderOptions: z.ZodObject<{
|
|
7
7
|
logitBias: z.ZodOptional<z.ZodRecord<z.ZodCoercedNumber<string>, z.ZodNumber>>;
|
|
8
8
|
logprobs: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber]>>;
|
package/dist/internal/index.js
CHANGED
|
@@ -142,7 +142,7 @@ function convertToOpenAIChatMessages({
|
|
|
142
142
|
}
|
|
143
143
|
return {
|
|
144
144
|
type: "file",
|
|
145
|
-
file: {
|
|
145
|
+
file: typeof part.data === "string" && part.data.startsWith("file-") ? { file_id: part.data } : {
|
|
146
146
|
filename: (_c = part.filename) != null ? _c : `part-${index}.pdf`,
|
|
147
147
|
file_data: `data:application/pdf;base64,${(0, import_provider_utils.convertToBase64)(part.data)}`
|
|
148
148
|
}
|
|
@@ -1122,7 +1122,7 @@ var openaiChatChunkSchema = import_v45.z.union([
|
|
|
1122
1122
|
openaiErrorDataSchema
|
|
1123
1123
|
]);
|
|
1124
1124
|
function isReasoningModel(modelId) {
|
|
1125
|
-
return modelId.startsWith("o");
|
|
1125
|
+
return modelId.startsWith("o") || modelId.startsWith("gpt-5");
|
|
1126
1126
|
}
|
|
1127
1127
|
function supportsFlexProcessing(modelId) {
|
|
1128
1128
|
return modelId.startsWith("o3") || modelId.startsWith("o4-mini");
|
|
@@ -2047,13 +2047,14 @@ var OpenAISpeechModel = class {
|
|
|
2047
2047
|
|
|
2048
2048
|
// src/responses/openai-responses-language-model.ts
|
|
2049
2049
|
var import_provider8 = require("@ai-sdk/provider");
|
|
2050
|
-
var
|
|
2050
|
+
var import_provider_utils13 = require("@ai-sdk/provider-utils");
|
|
2051
2051
|
var import_v415 = require("zod/v4");
|
|
2052
2052
|
|
|
2053
2053
|
// src/responses/convert-to-openai-responses-messages.ts
|
|
2054
2054
|
var import_provider6 = require("@ai-sdk/provider");
|
|
2055
2055
|
var import_provider_utils11 = require("@ai-sdk/provider-utils");
|
|
2056
2056
|
var import_v414 = require("zod/v4");
|
|
2057
|
+
var import_provider_utils12 = require("@ai-sdk/provider-utils");
|
|
2057
2058
|
async function convertToOpenAIResponsesMessages({
|
|
2058
2059
|
prompt,
|
|
2059
2060
|
systemMessageMode
|
|
@@ -2103,8 +2104,9 @@ async function convertToOpenAIResponsesMessages({
|
|
|
2103
2104
|
const mediaType = part.mediaType === "image/*" ? "image/jpeg" : part.mediaType;
|
|
2104
2105
|
return {
|
|
2105
2106
|
type: "input_image",
|
|
2106
|
-
|
|
2107
|
-
|
|
2107
|
+
...part.data instanceof URL ? { image_url: part.data.toString() } : typeof part.data === "string" && part.data.startsWith("file-") ? { file_id: part.data } : {
|
|
2108
|
+
image_url: `data:${mediaType};base64,${part.data}`
|
|
2109
|
+
},
|
|
2108
2110
|
detail: (_b2 = (_a2 = part.providerOptions) == null ? void 0 : _a2.openai) == null ? void 0 : _b2.imageDetail
|
|
2109
2111
|
};
|
|
2110
2112
|
} else if (part.mediaType === "application/pdf") {
|
|
@@ -2115,8 +2117,10 @@ async function convertToOpenAIResponsesMessages({
|
|
|
2115
2117
|
}
|
|
2116
2118
|
return {
|
|
2117
2119
|
type: "input_file",
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
+
...typeof part.data === "string" && part.data.startsWith("file-") ? { file_id: part.data } : {
|
|
2121
|
+
filename: (_c2 = part.filename) != null ? _c2 : `part-${index}.pdf`,
|
|
2122
|
+
file_data: `data:application/pdf;base64,${(0, import_provider_utils12.convertToBase64)(part.data)}`
|
|
2123
|
+
}
|
|
2120
2124
|
};
|
|
2121
2125
|
} else {
|
|
2122
2126
|
throw new import_provider6.UnsupportedFunctionalityError({
|
|
@@ -2391,7 +2395,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
2391
2395
|
systemMessageMode: modelConfig.systemMessageMode
|
|
2392
2396
|
});
|
|
2393
2397
|
warnings.push(...messageWarnings);
|
|
2394
|
-
const openaiOptions = await (0,
|
|
2398
|
+
const openaiOptions = await (0, import_provider_utils13.parseProviderOptions)({
|
|
2395
2399
|
provider: "openai",
|
|
2396
2400
|
providerOptions,
|
|
2397
2401
|
schema: openaiResponsesProviderOptionsSchema
|
|
@@ -2516,12 +2520,12 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
2516
2520
|
responseHeaders,
|
|
2517
2521
|
value: response,
|
|
2518
2522
|
rawValue: rawResponse
|
|
2519
|
-
} = await (0,
|
|
2523
|
+
} = await (0, import_provider_utils13.postJsonToApi)({
|
|
2520
2524
|
url,
|
|
2521
|
-
headers: (0,
|
|
2525
|
+
headers: (0, import_provider_utils13.combineHeaders)(this.config.headers(), options.headers),
|
|
2522
2526
|
body,
|
|
2523
2527
|
failedResponseHandler: openaiFailedResponseHandler,
|
|
2524
|
-
successfulResponseHandler: (0,
|
|
2528
|
+
successfulResponseHandler: (0, import_provider_utils13.createJsonResponseHandler)(
|
|
2525
2529
|
import_v415.z.object({
|
|
2526
2530
|
id: import_v415.z.string(),
|
|
2527
2531
|
created_at: import_v415.z.number(),
|
|
@@ -2641,7 +2645,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
2641
2645
|
content.push({
|
|
2642
2646
|
type: "source",
|
|
2643
2647
|
sourceType: "url",
|
|
2644
|
-
id: (_d = (_c = (_b = this.config).generateId) == null ? void 0 : _c.call(_b)) != null ? _d : (0,
|
|
2648
|
+
id: (_d = (_c = (_b = this.config).generateId) == null ? void 0 : _c.call(_b)) != null ? _d : (0, import_provider_utils13.generateId)(),
|
|
2645
2649
|
url: annotation.url,
|
|
2646
2650
|
title: annotation.title
|
|
2647
2651
|
});
|
|
@@ -2753,18 +2757,18 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
2753
2757
|
}
|
|
2754
2758
|
async doStream(options) {
|
|
2755
2759
|
const { args: body, warnings } = await this.getArgs(options);
|
|
2756
|
-
const { responseHeaders, value: response } = await (0,
|
|
2760
|
+
const { responseHeaders, value: response } = await (0, import_provider_utils13.postJsonToApi)({
|
|
2757
2761
|
url: this.config.url({
|
|
2758
2762
|
path: "/responses",
|
|
2759
2763
|
modelId: this.modelId
|
|
2760
2764
|
}),
|
|
2761
|
-
headers: (0,
|
|
2765
|
+
headers: (0, import_provider_utils13.combineHeaders)(this.config.headers(), options.headers),
|
|
2762
2766
|
body: {
|
|
2763
2767
|
...body,
|
|
2764
2768
|
stream: true
|
|
2765
2769
|
},
|
|
2766
2770
|
failedResponseHandler: openaiFailedResponseHandler,
|
|
2767
|
-
successfulResponseHandler: (0,
|
|
2771
|
+
successfulResponseHandler: (0, import_provider_utils13.createEventSourceResponseHandler)(
|
|
2768
2772
|
openaiResponsesChunkSchema
|
|
2769
2773
|
),
|
|
2770
2774
|
abortSignal: options.abortSignal,
|
|
@@ -3007,7 +3011,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3007
3011
|
controller.enqueue({
|
|
3008
3012
|
type: "source",
|
|
3009
3013
|
sourceType: "url",
|
|
3010
|
-
id: (_m = (_l = (_k = self.config).generateId) == null ? void 0 : _l.call(_k)) != null ? _m : (0,
|
|
3014
|
+
id: (_m = (_l = (_k = self.config).generateId) == null ? void 0 : _l.call(_k)) != null ? _m : (0, import_provider_utils13.generateId)(),
|
|
3011
3015
|
url: value.annotation.url,
|
|
3012
3016
|
title: value.annotation.title
|
|
3013
3017
|
});
|
|
@@ -3218,7 +3222,7 @@ function isErrorChunk(chunk) {
|
|
|
3218
3222
|
return chunk.type === "error";
|
|
3219
3223
|
}
|
|
3220
3224
|
function getResponsesModelConfig(modelId) {
|
|
3221
|
-
if (modelId.startsWith("o") || modelId.startsWith("codex-") || modelId.startsWith("computer-use")) {
|
|
3225
|
+
if (modelId.startsWith("o") || modelId.startsWith("gpt-5") || modelId.startsWith("codex-") || modelId.startsWith("computer-use")) {
|
|
3222
3226
|
if (modelId.startsWith("o1-mini") || modelId.startsWith("o1-preview")) {
|
|
3223
3227
|
return {
|
|
3224
3228
|
isReasoningModel: true,
|