@ai-sdk/openai 2.0.77 → 2.0.78
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 +6 -0
- package/dist/index.js +53 -96
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +53 -96
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +52 -95
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +52 -95
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/internal/index.js
CHANGED
|
@@ -74,6 +74,22 @@ var openaiFailedResponseHandler = (0, import_provider_utils.createJsonErrorRespo
|
|
|
74
74
|
errorToMessage: (data) => data.error.message
|
|
75
75
|
});
|
|
76
76
|
|
|
77
|
+
// src/openai-language-model-capabilities.ts
|
|
78
|
+
function getOpenAILanguageModelCapabilities(modelId) {
|
|
79
|
+
const supportsFlexProcessing = modelId.startsWith("o3") || modelId.startsWith("o4-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-chat");
|
|
80
|
+
const supportsPriorityProcessing = modelId.startsWith("gpt-4") || modelId.startsWith("gpt-5-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-nano") && !modelId.startsWith("gpt-5-chat") || modelId.startsWith("o3") || modelId.startsWith("o4-mini");
|
|
81
|
+
const isReasoningModel = !(modelId.startsWith("gpt-3") || modelId.startsWith("gpt-4") || modelId.startsWith("chatgpt-4o") || modelId.startsWith("gpt-5-chat"));
|
|
82
|
+
const supportsNonReasoningParameters = modelId.startsWith("gpt-5.1");
|
|
83
|
+
const systemMessageMode = isReasoningModel ? "developer" : "system";
|
|
84
|
+
return {
|
|
85
|
+
supportsFlexProcessing,
|
|
86
|
+
supportsPriorityProcessing,
|
|
87
|
+
isReasoningModel,
|
|
88
|
+
systemMessageMode,
|
|
89
|
+
supportsNonReasoningParameters
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
|
|
77
93
|
// src/chat/convert-to-openai-chat-messages.ts
|
|
78
94
|
var import_provider = require("@ai-sdk/provider");
|
|
79
95
|
var import_provider_utils2 = require("@ai-sdk/provider-utils");
|
|
@@ -623,6 +639,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
623
639
|
schema: openaiChatLanguageModelOptions
|
|
624
640
|
})) != null ? _a : {};
|
|
625
641
|
const structuredOutputs = (_b = openaiOptions.structuredOutputs) != null ? _b : true;
|
|
642
|
+
const modelCapabilities = getOpenAILanguageModelCapabilities(this.modelId);
|
|
626
643
|
if (topK != null) {
|
|
627
644
|
warnings.push({
|
|
628
645
|
type: "unsupported-setting",
|
|
@@ -639,7 +656,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
639
656
|
const { messages, warnings: messageWarnings } = convertToOpenAIChatMessages(
|
|
640
657
|
{
|
|
641
658
|
prompt,
|
|
642
|
-
systemMessageMode:
|
|
659
|
+
systemMessageMode: modelCapabilities.systemMessageMode
|
|
643
660
|
}
|
|
644
661
|
);
|
|
645
662
|
warnings.push(...messageWarnings);
|
|
@@ -685,22 +702,31 @@ var OpenAIChatLanguageModel = class {
|
|
|
685
702
|
// messages:
|
|
686
703
|
messages
|
|
687
704
|
};
|
|
688
|
-
if (isReasoningModel
|
|
689
|
-
if (
|
|
690
|
-
baseArgs.temperature
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
baseArgs.top_p
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
705
|
+
if (modelCapabilities.isReasoningModel) {
|
|
706
|
+
if (openaiOptions.reasoningEffort !== "none" || !modelCapabilities.supportsNonReasoningParameters) {
|
|
707
|
+
if (baseArgs.temperature != null) {
|
|
708
|
+
baseArgs.temperature = void 0;
|
|
709
|
+
warnings.push({
|
|
710
|
+
type: "unsupported-setting",
|
|
711
|
+
setting: "temperature",
|
|
712
|
+
details: "temperature is not supported for reasoning models"
|
|
713
|
+
});
|
|
714
|
+
}
|
|
715
|
+
if (baseArgs.top_p != null) {
|
|
716
|
+
baseArgs.top_p = void 0;
|
|
717
|
+
warnings.push({
|
|
718
|
+
type: "unsupported-setting",
|
|
719
|
+
setting: "topP",
|
|
720
|
+
details: "topP is not supported for reasoning models"
|
|
721
|
+
});
|
|
722
|
+
}
|
|
723
|
+
if (baseArgs.logprobs != null) {
|
|
724
|
+
baseArgs.logprobs = void 0;
|
|
725
|
+
warnings.push({
|
|
726
|
+
type: "other",
|
|
727
|
+
message: "logprobs is not supported for reasoning models"
|
|
728
|
+
});
|
|
729
|
+
}
|
|
704
730
|
}
|
|
705
731
|
if (baseArgs.frequency_penalty != null) {
|
|
706
732
|
baseArgs.frequency_penalty = void 0;
|
|
@@ -725,13 +751,6 @@ var OpenAIChatLanguageModel = class {
|
|
|
725
751
|
message: "logitBias is not supported for reasoning models"
|
|
726
752
|
});
|
|
727
753
|
}
|
|
728
|
-
if (baseArgs.logprobs != null) {
|
|
729
|
-
baseArgs.logprobs = void 0;
|
|
730
|
-
warnings.push({
|
|
731
|
-
type: "other",
|
|
732
|
-
message: "logprobs is not supported for reasoning models"
|
|
733
|
-
});
|
|
734
|
-
}
|
|
735
754
|
if (baseArgs.top_logprobs != null) {
|
|
736
755
|
baseArgs.top_logprobs = void 0;
|
|
737
756
|
warnings.push({
|
|
@@ -755,7 +774,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
755
774
|
});
|
|
756
775
|
}
|
|
757
776
|
}
|
|
758
|
-
if (openaiOptions.serviceTier === "flex" && !supportsFlexProcessing
|
|
777
|
+
if (openaiOptions.serviceTier === "flex" && !modelCapabilities.supportsFlexProcessing) {
|
|
759
778
|
warnings.push({
|
|
760
779
|
type: "unsupported-setting",
|
|
761
780
|
setting: "serviceTier",
|
|
@@ -763,7 +782,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
763
782
|
});
|
|
764
783
|
baseArgs.service_tier = void 0;
|
|
765
784
|
}
|
|
766
|
-
if (openaiOptions.serviceTier === "priority" && !supportsPriorityProcessing
|
|
785
|
+
if (openaiOptions.serviceTier === "priority" && !modelCapabilities.supportsPriorityProcessing) {
|
|
767
786
|
warnings.push({
|
|
768
787
|
type: "unsupported-setting",
|
|
769
788
|
setting: "serviceTier",
|
|
@@ -1084,42 +1103,6 @@ var OpenAIChatLanguageModel = class {
|
|
|
1084
1103
|
};
|
|
1085
1104
|
}
|
|
1086
1105
|
};
|
|
1087
|
-
function isReasoningModel(modelId) {
|
|
1088
|
-
return (modelId.startsWith("o") || modelId.startsWith("gpt-5")) && !modelId.startsWith("gpt-5-chat");
|
|
1089
|
-
}
|
|
1090
|
-
function supportsFlexProcessing(modelId) {
|
|
1091
|
-
return modelId.startsWith("o3") || modelId.startsWith("o4-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-chat");
|
|
1092
|
-
}
|
|
1093
|
-
function supportsPriorityProcessing(modelId) {
|
|
1094
|
-
return modelId.startsWith("gpt-4") || modelId.startsWith("gpt-5-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-nano") && !modelId.startsWith("gpt-5-chat") || modelId.startsWith("o3") || modelId.startsWith("o4-mini");
|
|
1095
|
-
}
|
|
1096
|
-
function getSystemMessageMode(modelId) {
|
|
1097
|
-
var _a, _b;
|
|
1098
|
-
if (!isReasoningModel(modelId)) {
|
|
1099
|
-
return "system";
|
|
1100
|
-
}
|
|
1101
|
-
return (_b = (_a = reasoningModels[modelId]) == null ? void 0 : _a.systemMessageMode) != null ? _b : "developer";
|
|
1102
|
-
}
|
|
1103
|
-
var reasoningModels = {
|
|
1104
|
-
o3: {
|
|
1105
|
-
systemMessageMode: "developer"
|
|
1106
|
-
},
|
|
1107
|
-
"o3-2025-04-16": {
|
|
1108
|
-
systemMessageMode: "developer"
|
|
1109
|
-
},
|
|
1110
|
-
"o3-mini": {
|
|
1111
|
-
systemMessageMode: "developer"
|
|
1112
|
-
},
|
|
1113
|
-
"o3-mini-2025-01-31": {
|
|
1114
|
-
systemMessageMode: "developer"
|
|
1115
|
-
},
|
|
1116
|
-
"o4-mini": {
|
|
1117
|
-
systemMessageMode: "developer"
|
|
1118
|
-
},
|
|
1119
|
-
"o4-mini-2025-04-16": {
|
|
1120
|
-
systemMessageMode: "developer"
|
|
1121
|
-
}
|
|
1122
|
-
};
|
|
1123
1106
|
|
|
1124
1107
|
// src/completion/openai-completion-language-model.ts
|
|
1125
1108
|
var import_provider_utils8 = require("@ai-sdk/provider-utils");
|
|
@@ -3468,7 +3451,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3468
3451
|
}) {
|
|
3469
3452
|
var _a, _b, _c, _d;
|
|
3470
3453
|
const warnings = [];
|
|
3471
|
-
const
|
|
3454
|
+
const modelCapabilities = getOpenAILanguageModelCapabilities(this.modelId);
|
|
3472
3455
|
if (topK != null) {
|
|
3473
3456
|
warnings.push({ type: "unsupported-setting", setting: "topK" });
|
|
3474
3457
|
}
|
|
@@ -3504,7 +3487,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3504
3487
|
}
|
|
3505
3488
|
const { input, warnings: inputWarnings } = await convertToOpenAIResponsesInput({
|
|
3506
3489
|
prompt,
|
|
3507
|
-
systemMessageMode:
|
|
3490
|
+
systemMessageMode: modelCapabilities.systemMessageMode,
|
|
3508
3491
|
fileIdPrefixes: this.config.fileIdPrefixes,
|
|
3509
3492
|
store: (_a = openaiOptions == null ? void 0 : openaiOptions.store) != null ? _a : true,
|
|
3510
3493
|
hasLocalShellTool: hasOpenAITool("openai.local_shell")
|
|
@@ -3538,7 +3521,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3538
3521
|
addInclude("code_interpreter_call.outputs");
|
|
3539
3522
|
}
|
|
3540
3523
|
const store = openaiOptions == null ? void 0 : openaiOptions.store;
|
|
3541
|
-
if (store === false &&
|
|
3524
|
+
if (store === false && modelCapabilities.isReasoningModel) {
|
|
3542
3525
|
addInclude("reasoning.encrypted_content");
|
|
3543
3526
|
}
|
|
3544
3527
|
const baseArgs = {
|
|
@@ -3580,7 +3563,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3580
3563
|
top_logprobs: topLogprobs,
|
|
3581
3564
|
truncation: openaiOptions == null ? void 0 : openaiOptions.truncation,
|
|
3582
3565
|
// model-specific settings:
|
|
3583
|
-
...
|
|
3566
|
+
...modelCapabilities.isReasoningModel && ((openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) != null || (openaiOptions == null ? void 0 : openaiOptions.reasoningSummary) != null) && {
|
|
3584
3567
|
reasoning: {
|
|
3585
3568
|
...(openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) != null && {
|
|
3586
3569
|
effort: openaiOptions.reasoningEffort
|
|
@@ -3591,7 +3574,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3591
3574
|
}
|
|
3592
3575
|
}
|
|
3593
3576
|
};
|
|
3594
|
-
if (
|
|
3577
|
+
if (modelCapabilities.isReasoningModel || (openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) === "none" && modelCapabilities.supportsNonReasoningParameters) {
|
|
3595
3578
|
if (baseArgs.temperature != null) {
|
|
3596
3579
|
baseArgs.temperature = void 0;
|
|
3597
3580
|
warnings.push({
|
|
@@ -3624,7 +3607,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3624
3607
|
});
|
|
3625
3608
|
}
|
|
3626
3609
|
}
|
|
3627
|
-
if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === "flex" && !
|
|
3610
|
+
if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === "flex" && !modelCapabilities.supportsFlexProcessing) {
|
|
3628
3611
|
warnings.push({
|
|
3629
3612
|
type: "unsupported-setting",
|
|
3630
3613
|
setting: "serviceTier",
|
|
@@ -3632,7 +3615,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3632
3615
|
});
|
|
3633
3616
|
delete baseArgs.service_tier;
|
|
3634
3617
|
}
|
|
3635
|
-
if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === "priority" && !
|
|
3618
|
+
if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === "priority" && !modelCapabilities.supportsPriorityProcessing) {
|
|
3636
3619
|
warnings.push({
|
|
3637
3620
|
type: "unsupported-setting",
|
|
3638
3621
|
setting: "serviceTier",
|
|
@@ -4489,32 +4472,6 @@ function isResponseAnnotationAddedChunk(chunk) {
|
|
|
4489
4472
|
function isErrorChunk(chunk) {
|
|
4490
4473
|
return chunk.type === "error";
|
|
4491
4474
|
}
|
|
4492
|
-
function getResponsesModelConfig(modelId) {
|
|
4493
|
-
const supportsFlexProcessing2 = modelId.startsWith("o3") || modelId.startsWith("o4-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-chat");
|
|
4494
|
-
const supportsPriorityProcessing2 = modelId.startsWith("gpt-4") || modelId.startsWith("gpt-5-mini") || modelId.startsWith("gpt-5") && !modelId.startsWith("gpt-5-nano") && !modelId.startsWith("gpt-5-chat") || modelId.startsWith("o3") || modelId.startsWith("o4-mini");
|
|
4495
|
-
const defaults = {
|
|
4496
|
-
systemMessageMode: "system",
|
|
4497
|
-
supportsFlexProcessing: supportsFlexProcessing2,
|
|
4498
|
-
supportsPriorityProcessing: supportsPriorityProcessing2
|
|
4499
|
-
};
|
|
4500
|
-
if (modelId.startsWith("gpt-5-chat")) {
|
|
4501
|
-
return {
|
|
4502
|
-
...defaults,
|
|
4503
|
-
isReasoningModel: false
|
|
4504
|
-
};
|
|
4505
|
-
}
|
|
4506
|
-
if (modelId.startsWith("o") || modelId.startsWith("gpt-5") || modelId.startsWith("codex-") || modelId.startsWith("computer-use")) {
|
|
4507
|
-
return {
|
|
4508
|
-
...defaults,
|
|
4509
|
-
isReasoningModel: true,
|
|
4510
|
-
systemMessageMode: "developer"
|
|
4511
|
-
};
|
|
4512
|
-
}
|
|
4513
|
-
return {
|
|
4514
|
-
...defaults,
|
|
4515
|
-
isReasoningModel: false
|
|
4516
|
-
};
|
|
4517
|
-
}
|
|
4518
4475
|
function mapWebSearchOutput(action) {
|
|
4519
4476
|
var _a;
|
|
4520
4477
|
switch (action.type) {
|