@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 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, settings?: OpenAIImageSettings): ImageModelV2;
99
+ image(modelId: OpenAIImageModelId): ImageModelV2;
107
100
  /**
108
101
  Creates a model for image generation.
109
102
  */
110
- imageModel(modelId: OpenAIImageModelId, settings?: OpenAIImageSettings): ImageModelV2;
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. It uses 'strict' compatibility mode.
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, settings?: OpenAIImageSettings): ImageModelV2;
99
+ image(modelId: OpenAIImageModelId): ImageModelV2;
107
100
  /**
108
101
  Creates a model for image generation.
109
102
  */
110
- imageModel(modelId: OpenAIImageModelId, settings?: OpenAIImageSettings): ImageModelV2;
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. It uses 'strict' compatibility mode.
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
- // only include stream_options when in strict compatibility mode:
621
- stream_options: this.config.compatibility === "strict" ? { include_usage: true } : void 0
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
- // only include stream_options when in strict compatibility mode:
1198
- stream_options: this.config.compatibility === "strict" ? { include_usage: true } : void 0
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, settings, config) {
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, _b;
1435
- return (_b = (_a = this.settings.maxImagesPerCall) != null ? _a : modelMaxImagesPerCall[this.modelId]) != null ? _b : 1;
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, _c;
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 compatibility = (_b = options.compatibility) != null ? _b : "compatible";
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, settings = {}) => new OpenAIImageModel(modelId, settings, {
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,