@ai-sdk/openai 2.0.0-canary.16 → 2.0.0-canary.18
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 +50 -0
- package/dist/index.d.mts +4 -17
- package/dist/index.d.ts +4 -17
- package/dist/index.js +13 -18
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +13 -18
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.d.mts +2 -12
- package/dist/internal/index.d.ts +2 -12
- package/dist/internal/index.js +9 -8
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +9 -8
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,55 @@
|
|
|
1
1
|
# @ai-sdk/openai
|
|
2
2
|
|
|
3
|
+
## 2.0.0-canary.18
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- 516be5b: ### Move Image Model Settings into generate options
|
|
8
|
+
|
|
9
|
+
Image Models no longer have settings. Instead, `maxImagesPerCall` can be passed directly to `generateImage()`. All other image settings can be passed to `providerOptions[provider]`.
|
|
10
|
+
|
|
11
|
+
Before
|
|
12
|
+
|
|
13
|
+
```js
|
|
14
|
+
await generateImage({
|
|
15
|
+
model: luma.image('photon-flash-1', {
|
|
16
|
+
maxImagesPerCall: 5,
|
|
17
|
+
pollIntervalMillis: 500,
|
|
18
|
+
}),
|
|
19
|
+
prompt,
|
|
20
|
+
n: 10,
|
|
21
|
+
});
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
After
|
|
25
|
+
|
|
26
|
+
```js
|
|
27
|
+
await generateImage({
|
|
28
|
+
model: luma.image('photon-flash-1'),
|
|
29
|
+
prompt,
|
|
30
|
+
n: 10,
|
|
31
|
+
maxImagesPerCall: 5,
|
|
32
|
+
providerOptions: {
|
|
33
|
+
luma: { pollIntervalMillis: 5 },
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Pull Request: https://github.com/vercel/ai/pull/6180
|
|
39
|
+
|
|
40
|
+
### Patch Changes
|
|
41
|
+
|
|
42
|
+
- Updated dependencies [ea7a7c9]
|
|
43
|
+
- @ai-sdk/provider-utils@3.0.0-canary.17
|
|
44
|
+
|
|
45
|
+
## 2.0.0-canary.17
|
|
46
|
+
|
|
47
|
+
### Patch Changes
|
|
48
|
+
|
|
49
|
+
- 52ce942: chore(providers/openai): remove & enable strict compatibility by default
|
|
50
|
+
- Updated dependencies [87b828f]
|
|
51
|
+
- @ai-sdk/provider-utils@3.0.0-canary.16
|
|
52
|
+
|
|
3
53
|
## 2.0.0-canary.16
|
|
4
54
|
|
|
5
55
|
### Patch Changes
|
package/dist/index.d.mts
CHANGED
|
@@ -8,7 +8,6 @@ type OpenAICompletionModelId = 'gpt-3.5-turbo-instruct' | (string & {});
|
|
|
8
8
|
|
|
9
9
|
type OpenAICompletionConfig = {
|
|
10
10
|
provider: string;
|
|
11
|
-
compatibility: 'strict' | 'compatible';
|
|
12
11
|
headers: () => Record<string, string | undefined>;
|
|
13
12
|
url: (options: {
|
|
14
13
|
modelId: string;
|
|
@@ -32,13 +31,6 @@ declare class OpenAICompletionLanguageModel implements LanguageModelV2 {
|
|
|
32
31
|
type OpenAIEmbeddingModelId = 'text-embedding-3-small' | 'text-embedding-3-large' | 'text-embedding-ada-002' | (string & {});
|
|
33
32
|
|
|
34
33
|
type OpenAIImageModelId = 'gpt-image-1' | 'dall-e-3' | 'dall-e-2' | (string & {});
|
|
35
|
-
interface OpenAIImageSettings {
|
|
36
|
-
/**
|
|
37
|
-
Override the maximum number of images per call (default is dependent on the
|
|
38
|
-
model, or 1 for an unknown model).
|
|
39
|
-
*/
|
|
40
|
-
maxImagesPerCall?: number;
|
|
41
|
-
}
|
|
42
34
|
|
|
43
35
|
declare const WebSearchPreviewParameters: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
44
36
|
declare function webSearchPreviewTool({ searchContextSize, userLocation, }?: {
|
|
@@ -102,12 +94,13 @@ interface OpenAIProvider extends ProviderV2 {
|
|
|
102
94
|
textEmbeddingModel(modelId: OpenAIEmbeddingModelId): EmbeddingModelV2<string>;
|
|
103
95
|
/**
|
|
104
96
|
Creates a model for image generation.
|
|
97
|
+
@deprecated Use `imageModel` instead.
|
|
105
98
|
*/
|
|
106
|
-
image(modelId: OpenAIImageModelId
|
|
99
|
+
image(modelId: OpenAIImageModelId): ImageModelV2;
|
|
107
100
|
/**
|
|
108
101
|
Creates a model for image generation.
|
|
109
102
|
*/
|
|
110
|
-
imageModel(modelId: OpenAIImageModelId
|
|
103
|
+
imageModel(modelId: OpenAIImageModelId): ImageModelV2;
|
|
111
104
|
/**
|
|
112
105
|
Creates a model for transcription.
|
|
113
106
|
*/
|
|
@@ -143,12 +136,6 @@ interface OpenAIProviderSettings {
|
|
|
143
136
|
*/
|
|
144
137
|
headers?: Record<string, string>;
|
|
145
138
|
/**
|
|
146
|
-
OpenAI compatibility mode. Should be set to `strict` when using the OpenAI API,
|
|
147
|
-
and `compatible` when using 3rd party providers. In `compatible` mode, newer
|
|
148
|
-
information such as streamOptions are not being sent. Defaults to 'compatible'.
|
|
149
|
-
*/
|
|
150
|
-
compatibility?: 'strict' | 'compatible';
|
|
151
|
-
/**
|
|
152
139
|
Provider name. Overrides the `openai` default name for 3rd party providers.
|
|
153
140
|
*/
|
|
154
141
|
name?: string;
|
|
@@ -163,7 +150,7 @@ Create an OpenAI provider instance.
|
|
|
163
150
|
*/
|
|
164
151
|
declare function createOpenAI(options?: OpenAIProviderSettings): OpenAIProvider;
|
|
165
152
|
/**
|
|
166
|
-
Default OpenAI provider instance.
|
|
153
|
+
Default OpenAI provider instance.
|
|
167
154
|
*/
|
|
168
155
|
declare const openai: OpenAIProvider;
|
|
169
156
|
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,6 @@ type OpenAICompletionModelId = 'gpt-3.5-turbo-instruct' | (string & {});
|
|
|
8
8
|
|
|
9
9
|
type OpenAICompletionConfig = {
|
|
10
10
|
provider: string;
|
|
11
|
-
compatibility: 'strict' | 'compatible';
|
|
12
11
|
headers: () => Record<string, string | undefined>;
|
|
13
12
|
url: (options: {
|
|
14
13
|
modelId: string;
|
|
@@ -32,13 +31,6 @@ declare class OpenAICompletionLanguageModel implements LanguageModelV2 {
|
|
|
32
31
|
type OpenAIEmbeddingModelId = 'text-embedding-3-small' | 'text-embedding-3-large' | 'text-embedding-ada-002' | (string & {});
|
|
33
32
|
|
|
34
33
|
type OpenAIImageModelId = 'gpt-image-1' | 'dall-e-3' | 'dall-e-2' | (string & {});
|
|
35
|
-
interface OpenAIImageSettings {
|
|
36
|
-
/**
|
|
37
|
-
Override the maximum number of images per call (default is dependent on the
|
|
38
|
-
model, or 1 for an unknown model).
|
|
39
|
-
*/
|
|
40
|
-
maxImagesPerCall?: number;
|
|
41
|
-
}
|
|
42
34
|
|
|
43
35
|
declare const WebSearchPreviewParameters: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
44
36
|
declare function webSearchPreviewTool({ searchContextSize, userLocation, }?: {
|
|
@@ -102,12 +94,13 @@ interface OpenAIProvider extends ProviderV2 {
|
|
|
102
94
|
textEmbeddingModel(modelId: OpenAIEmbeddingModelId): EmbeddingModelV2<string>;
|
|
103
95
|
/**
|
|
104
96
|
Creates a model for image generation.
|
|
97
|
+
@deprecated Use `imageModel` instead.
|
|
105
98
|
*/
|
|
106
|
-
image(modelId: OpenAIImageModelId
|
|
99
|
+
image(modelId: OpenAIImageModelId): ImageModelV2;
|
|
107
100
|
/**
|
|
108
101
|
Creates a model for image generation.
|
|
109
102
|
*/
|
|
110
|
-
imageModel(modelId: OpenAIImageModelId
|
|
103
|
+
imageModel(modelId: OpenAIImageModelId): ImageModelV2;
|
|
111
104
|
/**
|
|
112
105
|
Creates a model for transcription.
|
|
113
106
|
*/
|
|
@@ -143,12 +136,6 @@ interface OpenAIProviderSettings {
|
|
|
143
136
|
*/
|
|
144
137
|
headers?: Record<string, string>;
|
|
145
138
|
/**
|
|
146
|
-
OpenAI compatibility mode. Should be set to `strict` when using the OpenAI API,
|
|
147
|
-
and `compatible` when using 3rd party providers. In `compatible` mode, newer
|
|
148
|
-
information such as streamOptions are not being sent. Defaults to 'compatible'.
|
|
149
|
-
*/
|
|
150
|
-
compatibility?: 'strict' | 'compatible';
|
|
151
|
-
/**
|
|
152
139
|
Provider name. Overrides the `openai` default name for 3rd party providers.
|
|
153
140
|
*/
|
|
154
141
|
name?: string;
|
|
@@ -163,7 +150,7 @@ Create an OpenAI provider instance.
|
|
|
163
150
|
*/
|
|
164
151
|
declare function createOpenAI(options?: OpenAIProviderSettings): OpenAIProvider;
|
|
165
152
|
/**
|
|
166
|
-
Default OpenAI provider instance.
|
|
153
|
+
Default OpenAI provider instance.
|
|
167
154
|
*/
|
|
168
155
|
declare const openai: OpenAIProvider;
|
|
169
156
|
|
package/dist/index.js
CHANGED
|
@@ -617,8 +617,9 @@ var OpenAIChatLanguageModel = class {
|
|
|
617
617
|
const body = {
|
|
618
618
|
...args,
|
|
619
619
|
stream: true,
|
|
620
|
-
|
|
621
|
-
|
|
620
|
+
stream_options: {
|
|
621
|
+
include_usage: true
|
|
622
|
+
}
|
|
622
623
|
};
|
|
623
624
|
const { responseHeaders, value: response } = await (0, import_provider_utils3.postJsonToApi)({
|
|
624
625
|
url: this.config.url({
|
|
@@ -1194,8 +1195,9 @@ var OpenAICompletionLanguageModel = class {
|
|
|
1194
1195
|
const body = {
|
|
1195
1196
|
...args,
|
|
1196
1197
|
stream: true,
|
|
1197
|
-
|
|
1198
|
-
|
|
1198
|
+
stream_options: {
|
|
1199
|
+
include_usage: true
|
|
1200
|
+
}
|
|
1199
1201
|
};
|
|
1200
1202
|
const { responseHeaders, value: response } = await (0, import_provider_utils4.postJsonToApi)({
|
|
1201
1203
|
url: this.config.url({
|
|
@@ -1424,15 +1426,14 @@ var hasDefaultResponseFormat = /* @__PURE__ */ new Set(["gpt-image-1"]);
|
|
|
1424
1426
|
|
|
1425
1427
|
// src/openai-image-model.ts
|
|
1426
1428
|
var OpenAIImageModel = class {
|
|
1427
|
-
constructor(modelId,
|
|
1429
|
+
constructor(modelId, config) {
|
|
1428
1430
|
this.modelId = modelId;
|
|
1429
|
-
this.settings = settings;
|
|
1430
1431
|
this.config = config;
|
|
1431
1432
|
this.specificationVersion = "v2";
|
|
1432
1433
|
}
|
|
1433
1434
|
get maxImagesPerCall() {
|
|
1434
|
-
var _a
|
|
1435
|
-
return (
|
|
1435
|
+
var _a;
|
|
1436
|
+
return (_a = modelMaxImagesPerCall[this.modelId]) != null ? _a : 1;
|
|
1436
1437
|
}
|
|
1437
1438
|
get provider() {
|
|
1438
1439
|
return this.config.provider;
|
|
@@ -2586,10 +2587,9 @@ var OpenAISpeechModel = class {
|
|
|
2586
2587
|
|
|
2587
2588
|
// src/openai-provider.ts
|
|
2588
2589
|
function createOpenAI(options = {}) {
|
|
2589
|
-
var _a, _b
|
|
2590
|
+
var _a, _b;
|
|
2590
2591
|
const baseURL = (_a = (0, import_provider_utils10.withoutTrailingSlash)(options.baseURL)) != null ? _a : "https://api.openai.com/v1";
|
|
2591
|
-
const
|
|
2592
|
-
const providerName = (_c = options.name) != null ? _c : "openai";
|
|
2592
|
+
const providerName = (_b = options.name) != null ? _b : "openai";
|
|
2593
2593
|
const getHeaders = () => ({
|
|
2594
2594
|
Authorization: `Bearer ${(0, import_provider_utils10.loadApiKey)({
|
|
2595
2595
|
apiKey: options.apiKey,
|
|
@@ -2604,14 +2604,12 @@ function createOpenAI(options = {}) {
|
|
|
2604
2604
|
provider: `${providerName}.chat`,
|
|
2605
2605
|
url: ({ path }) => `${baseURL}${path}`,
|
|
2606
2606
|
headers: getHeaders,
|
|
2607
|
-
compatibility,
|
|
2608
2607
|
fetch: options.fetch
|
|
2609
2608
|
});
|
|
2610
2609
|
const createCompletionModel = (modelId) => new OpenAICompletionLanguageModel(modelId, {
|
|
2611
2610
|
provider: `${providerName}.completion`,
|
|
2612
2611
|
url: ({ path }) => `${baseURL}${path}`,
|
|
2613
2612
|
headers: getHeaders,
|
|
2614
|
-
compatibility,
|
|
2615
2613
|
fetch: options.fetch
|
|
2616
2614
|
});
|
|
2617
2615
|
const createEmbeddingModel = (modelId) => new OpenAIEmbeddingModel(modelId, {
|
|
@@ -2620,7 +2618,7 @@ function createOpenAI(options = {}) {
|
|
|
2620
2618
|
headers: getHeaders,
|
|
2621
2619
|
fetch: options.fetch
|
|
2622
2620
|
});
|
|
2623
|
-
const createImageModel = (modelId
|
|
2621
|
+
const createImageModel = (modelId) => new OpenAIImageModel(modelId, {
|
|
2624
2622
|
provider: `${providerName}.image`,
|
|
2625
2623
|
url: ({ path }) => `${baseURL}${path}`,
|
|
2626
2624
|
headers: getHeaders,
|
|
@@ -2676,10 +2674,7 @@ function createOpenAI(options = {}) {
|
|
|
2676
2674
|
provider.tools = openaiTools;
|
|
2677
2675
|
return provider;
|
|
2678
2676
|
}
|
|
2679
|
-
var openai = createOpenAI(
|
|
2680
|
-
compatibility: "strict"
|
|
2681
|
-
// strict for OpenAI API
|
|
2682
|
-
});
|
|
2677
|
+
var openai = createOpenAI();
|
|
2683
2678
|
// Annotate the CommonJS export names for ESM import in node:
|
|
2684
2679
|
0 && (module.exports = {
|
|
2685
2680
|
createOpenAI,
|