@ai-sdk/openai 2.0.77 → 2.0.79
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 +12 -0
- package/dist/index.js +70 -111
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +70 -111
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +69 -110
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +69 -110
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +3 -3
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,22 +3574,24 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3591
3574
|
}
|
|
3592
3575
|
}
|
|
3593
3576
|
};
|
|
3594
|
-
if (
|
|
3595
|
-
if (
|
|
3596
|
-
baseArgs.temperature
|
|
3597
|
-
|
|
3598
|
-
|
|
3599
|
-
|
|
3600
|
-
|
|
3601
|
-
|
|
3602
|
-
|
|
3603
|
-
|
|
3604
|
-
baseArgs.top_p
|
|
3605
|
-
|
|
3606
|
-
|
|
3607
|
-
|
|
3608
|
-
|
|
3609
|
-
|
|
3577
|
+
if (modelCapabilities.isReasoningModel) {
|
|
3578
|
+
if (!((openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) === "none" && modelCapabilities.supportsNonReasoningParameters)) {
|
|
3579
|
+
if (baseArgs.temperature != null) {
|
|
3580
|
+
baseArgs.temperature = void 0;
|
|
3581
|
+
warnings.push({
|
|
3582
|
+
type: "unsupported-setting",
|
|
3583
|
+
setting: "temperature",
|
|
3584
|
+
details: "temperature is not supported for reasoning models"
|
|
3585
|
+
});
|
|
3586
|
+
}
|
|
3587
|
+
if (baseArgs.top_p != null) {
|
|
3588
|
+
baseArgs.top_p = void 0;
|
|
3589
|
+
warnings.push({
|
|
3590
|
+
type: "unsupported-setting",
|
|
3591
|
+
setting: "topP",
|
|
3592
|
+
details: "topP is not supported for reasoning models"
|
|
3593
|
+
});
|
|
3594
|
+
}
|
|
3610
3595
|
}
|
|
3611
3596
|
} else {
|
|
3612
3597
|
if ((openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) != null) {
|
|
@@ -3624,7 +3609,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3624
3609
|
});
|
|
3625
3610
|
}
|
|
3626
3611
|
}
|
|
3627
|
-
if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === "flex" && !
|
|
3612
|
+
if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === "flex" && !modelCapabilities.supportsFlexProcessing) {
|
|
3628
3613
|
warnings.push({
|
|
3629
3614
|
type: "unsupported-setting",
|
|
3630
3615
|
setting: "serviceTier",
|
|
@@ -3632,7 +3617,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
3632
3617
|
});
|
|
3633
3618
|
delete baseArgs.service_tier;
|
|
3634
3619
|
}
|
|
3635
|
-
if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === "priority" && !
|
|
3620
|
+
if ((openaiOptions == null ? void 0 : openaiOptions.serviceTier) === "priority" && !modelCapabilities.supportsPriorityProcessing) {
|
|
3636
3621
|
warnings.push({
|
|
3637
3622
|
type: "unsupported-setting",
|
|
3638
3623
|
setting: "serviceTier",
|
|
@@ -4489,32 +4474,6 @@ function isResponseAnnotationAddedChunk(chunk) {
|
|
|
4489
4474
|
function isErrorChunk(chunk) {
|
|
4490
4475
|
return chunk.type === "error";
|
|
4491
4476
|
}
|
|
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
4477
|
function mapWebSearchOutput(action) {
|
|
4519
4478
|
var _a;
|
|
4520
4479
|
switch (action.type) {
|