@ai-sdk/openai 1.2.3 → 1.2.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 +15 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +60 -19
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +64 -20
- package/dist/index.mjs.map +1 -1
- package/internal/dist/index.d.mts +2 -0
- package/internal/dist/index.d.ts +2 -0
- package/internal/dist/index.js +60 -19
- package/internal/dist/index.js.map +1 -1
- package/internal/dist/index.mjs +64 -20
- package/internal/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @ai-sdk/openai
|
|
2
2
|
|
|
3
|
+
## 1.2.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 2e1101a: feat (provider/openai): pdf input support
|
|
8
|
+
- Updated dependencies [2e1101a]
|
|
9
|
+
- @ai-sdk/provider@1.0.11
|
|
10
|
+
- @ai-sdk/provider-utils@2.1.13
|
|
11
|
+
|
|
12
|
+
## 1.2.4
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- 523f128: feat (provider/openai): add strictSchemas option to responses model
|
|
17
|
+
|
|
3
18
|
## 1.2.3
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
package/dist/index.d.mts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1601,6 +1601,7 @@ var openaiImageResponseSchema = import_zod5.z.object({
|
|
|
1601
1601
|
});
|
|
1602
1602
|
|
|
1603
1603
|
// src/responses/openai-responses-language-model.ts
|
|
1604
|
+
var import_provider9 = require("@ai-sdk/provider");
|
|
1604
1605
|
var import_provider_utils8 = require("@ai-sdk/provider-utils");
|
|
1605
1606
|
var import_zod6 = require("zod");
|
|
1606
1607
|
|
|
@@ -1644,8 +1645,8 @@ function convertToOpenAIResponsesMessages({
|
|
|
1644
1645
|
case "user": {
|
|
1645
1646
|
messages.push({
|
|
1646
1647
|
role: "user",
|
|
1647
|
-
content: content.map((part) => {
|
|
1648
|
-
var _a, _b, _c;
|
|
1648
|
+
content: content.map((part, index) => {
|
|
1649
|
+
var _a, _b, _c, _d;
|
|
1649
1650
|
switch (part.type) {
|
|
1650
1651
|
case "text": {
|
|
1651
1652
|
return { type: "input_text", text: part.text };
|
|
@@ -1659,9 +1660,25 @@ function convertToOpenAIResponsesMessages({
|
|
|
1659
1660
|
};
|
|
1660
1661
|
}
|
|
1661
1662
|
case "file": {
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1663
|
+
if (part.data instanceof URL) {
|
|
1664
|
+
throw new import_provider7.UnsupportedFunctionalityError({
|
|
1665
|
+
functionality: "File URLs in user messages"
|
|
1666
|
+
});
|
|
1667
|
+
}
|
|
1668
|
+
switch (part.mimeType) {
|
|
1669
|
+
case "application/pdf": {
|
|
1670
|
+
return {
|
|
1671
|
+
type: "input_file",
|
|
1672
|
+
filename: (_d = part.filename) != null ? _d : `part-${index}.pdf`,
|
|
1673
|
+
file_data: `data:application/pdf;base64,${part.data}`
|
|
1674
|
+
};
|
|
1675
|
+
}
|
|
1676
|
+
default: {
|
|
1677
|
+
throw new import_provider7.UnsupportedFunctionalityError({
|
|
1678
|
+
functionality: "Only PDF files are supported in user messages"
|
|
1679
|
+
});
|
|
1680
|
+
}
|
|
1681
|
+
}
|
|
1665
1682
|
}
|
|
1666
1683
|
}
|
|
1667
1684
|
})
|
|
@@ -1824,7 +1841,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
1824
1841
|
providerMetadata,
|
|
1825
1842
|
responseFormat
|
|
1826
1843
|
}) {
|
|
1827
|
-
var _a, _b, _c, _d
|
|
1844
|
+
var _a, _b, _c, _d;
|
|
1828
1845
|
const warnings = [];
|
|
1829
1846
|
const modelConfig = getResponsesModelConfig(this.modelId);
|
|
1830
1847
|
const type = mode.type;
|
|
@@ -1863,7 +1880,19 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
1863
1880
|
systemMessageMode: modelConfig.systemMessageMode
|
|
1864
1881
|
});
|
|
1865
1882
|
warnings.push(...messageWarnings);
|
|
1866
|
-
const
|
|
1883
|
+
const parsedProviderOptions = providerMetadata != null ? (0, import_provider_utils8.safeValidateTypes)({
|
|
1884
|
+
value: providerMetadata,
|
|
1885
|
+
schema: providerOptionsSchema
|
|
1886
|
+
}) : { success: true, value: void 0 };
|
|
1887
|
+
if (!parsedProviderOptions.success) {
|
|
1888
|
+
throw new import_provider9.InvalidArgumentError({
|
|
1889
|
+
argument: "providerOptions",
|
|
1890
|
+
message: "invalid provider options",
|
|
1891
|
+
cause: parsedProviderOptions.error
|
|
1892
|
+
});
|
|
1893
|
+
}
|
|
1894
|
+
const openaiOptions = (_a = parsedProviderOptions.value) == null ? void 0 : _a.openai;
|
|
1895
|
+
const isStrict = (_b = openaiOptions == null ? void 0 : openaiOptions.strictSchemas) != null ? _b : true;
|
|
1867
1896
|
const baseArgs = {
|
|
1868
1897
|
model: this.modelId,
|
|
1869
1898
|
input: messages,
|
|
@@ -1874,7 +1903,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
1874
1903
|
text: {
|
|
1875
1904
|
format: responseFormat.schema != null ? {
|
|
1876
1905
|
type: "json_schema",
|
|
1877
|
-
strict:
|
|
1906
|
+
strict: isStrict,
|
|
1878
1907
|
name: (_c = responseFormat.name) != null ? _c : "response",
|
|
1879
1908
|
description: responseFormat.description,
|
|
1880
1909
|
schema: responseFormat.schema
|
|
@@ -1882,14 +1911,14 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
1882
1911
|
}
|
|
1883
1912
|
},
|
|
1884
1913
|
// provider options:
|
|
1885
|
-
metadata:
|
|
1886
|
-
parallel_tool_calls:
|
|
1887
|
-
previous_response_id:
|
|
1888
|
-
store:
|
|
1889
|
-
user:
|
|
1914
|
+
metadata: openaiOptions == null ? void 0 : openaiOptions.metadata,
|
|
1915
|
+
parallel_tool_calls: openaiOptions == null ? void 0 : openaiOptions.parallelToolCalls,
|
|
1916
|
+
previous_response_id: openaiOptions == null ? void 0 : openaiOptions.previousResponseId,
|
|
1917
|
+
store: openaiOptions == null ? void 0 : openaiOptions.store,
|
|
1918
|
+
user: openaiOptions == null ? void 0 : openaiOptions.user,
|
|
1890
1919
|
// model-specific settings:
|
|
1891
|
-
...modelConfig.isReasoningModel && (
|
|
1892
|
-
reasoning: { effort:
|
|
1920
|
+
...modelConfig.isReasoningModel && (openaiOptions == null ? void 0 : openaiOptions.reasoningEffort) != null && {
|
|
1921
|
+
reasoning: { effort: openaiOptions == null ? void 0 : openaiOptions.reasoningEffort }
|
|
1893
1922
|
},
|
|
1894
1923
|
...modelConfig.requiredAutoTruncation && {
|
|
1895
1924
|
truncation: "auto"
|
|
@@ -1917,7 +1946,8 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
1917
1946
|
case "regular": {
|
|
1918
1947
|
const { tools, tool_choice, toolWarnings } = prepareResponsesTools({
|
|
1919
1948
|
mode,
|
|
1920
|
-
strict:
|
|
1949
|
+
strict: isStrict
|
|
1950
|
+
// TODO support provider options on tools
|
|
1921
1951
|
});
|
|
1922
1952
|
return {
|
|
1923
1953
|
args: {
|
|
@@ -1935,8 +1965,8 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
1935
1965
|
text: {
|
|
1936
1966
|
format: mode.schema != null ? {
|
|
1937
1967
|
type: "json_schema",
|
|
1938
|
-
strict:
|
|
1939
|
-
name: (
|
|
1968
|
+
strict: isStrict,
|
|
1969
|
+
name: (_d = mode.name) != null ? _d : "response",
|
|
1940
1970
|
description: mode.description,
|
|
1941
1971
|
schema: mode.schema
|
|
1942
1972
|
} : { type: "json_object" }
|
|
@@ -1956,7 +1986,7 @@ var OpenAIResponsesLanguageModel = class {
|
|
|
1956
1986
|
name: mode.tool.name,
|
|
1957
1987
|
description: mode.tool.description,
|
|
1958
1988
|
parameters: mode.tool.parameters,
|
|
1959
|
-
strict:
|
|
1989
|
+
strict: isStrict
|
|
1960
1990
|
}
|
|
1961
1991
|
]
|
|
1962
1992
|
},
|
|
@@ -2329,6 +2359,17 @@ function isResponseOutputItemAddedChunk(chunk) {
|
|
|
2329
2359
|
function isResponseAnnotationAddedChunk(chunk) {
|
|
2330
2360
|
return chunk.type === "response.output_text.annotation.added";
|
|
2331
2361
|
}
|
|
2362
|
+
var providerOptionsSchema = import_zod6.z.object({
|
|
2363
|
+
openai: import_zod6.z.object({
|
|
2364
|
+
metadata: import_zod6.z.any().nullish(),
|
|
2365
|
+
parallelToolCalls: import_zod6.z.boolean().nullish(),
|
|
2366
|
+
previousResponseId: import_zod6.z.string().nullish(),
|
|
2367
|
+
store: import_zod6.z.boolean().nullish(),
|
|
2368
|
+
user: import_zod6.z.string().nullish(),
|
|
2369
|
+
reasoningEffort: import_zod6.z.string().nullish(),
|
|
2370
|
+
strictSchemas: import_zod6.z.boolean().nullish()
|
|
2371
|
+
}).nullish()
|
|
2372
|
+
});
|
|
2332
2373
|
function getResponsesModelConfig(modelId) {
|
|
2333
2374
|
if (modelId.startsWith("o")) {
|
|
2334
2375
|
if (modelId.startsWith("o1-mini") || modelId.startsWith("o1-preview")) {
|