@ai-sdk/openai 1.0.8 → 1.0.10
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 +14 -0
- package/dist/index.d.mts +12 -1
- package/dist/index.d.ts +12 -1
- package/dist/index.js +44 -7
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +44 -7
- package/dist/index.mjs.map +1 -1
- package/internal/dist/index.d.mts +12 -1
- package/internal/dist/index.d.ts +12 -1
- package/internal/dist/index.js +44 -7
- package/internal/dist/index.js.map +1 -1
- package/internal/dist/index.mjs +44 -7
- package/internal/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @ai-sdk/openai
|
|
2
2
|
|
|
3
|
+
## 1.0.10
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- d4fad4e: fix (provider/openai): fix reasoning model detection
|
|
8
|
+
|
|
9
|
+
## 1.0.9
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 3fab0fb: feat (provider/openai): support reasoning_effort setting
|
|
14
|
+
- e956eed: feat (provider/openai): update model list and add o1
|
|
15
|
+
- 6faab13: feat (provider/openai): simulated streaming setting
|
|
16
|
+
|
|
3
17
|
## 1.0.8
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LanguageModelV1, ProviderV1, EmbeddingModelV1, ImageModelV1 } from '@ai-sdk/provider';
|
|
2
2
|
import { FetchFunction } from '@ai-sdk/provider-utils';
|
|
3
3
|
|
|
4
|
-
type OpenAIChatModelId = 'o1-
|
|
4
|
+
type OpenAIChatModelId = 'o1' | 'o1-2024-12-17' | 'o1-mini' | 'o1-mini-2024-09-12' | 'o1-preview' | 'o1-preview-2024-09-12' | 'gpt-4o' | 'gpt-4o-2024-05-13' | 'gpt-4o-2024-08-06' | 'gpt-4o-2024-11-20' | 'gpt-4o-audio-preview' | 'gpt-4o-audio-preview-2024-10-01' | 'gpt-4o-audio-preview-2024-12-17' | 'gpt-4o-mini' | 'gpt-4o-mini-2024-07-18' | 'gpt-4-turbo' | 'gpt-4-turbo-2024-04-09' | 'gpt-4-turbo-preview' | 'gpt-4-0125-preview' | 'gpt-4-1106-preview' | 'gpt-4' | 'gpt-4-0613' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-1106' | (string & {});
|
|
5
5
|
interface OpenAIChatSettings {
|
|
6
6
|
/**
|
|
7
7
|
Modify the likelihood of specified tokens appearing in the completion.
|
|
@@ -65,6 +65,17 @@ interface OpenAIChatSettings {
|
|
|
65
65
|
Defaults to `false`.
|
|
66
66
|
*/
|
|
67
67
|
downloadImages?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
Simulates streaming by using a normal generate call and returning it as a stream.
|
|
70
|
+
Enable this if the model that you are using does not support streaming.
|
|
71
|
+
|
|
72
|
+
Defaults to `false`.
|
|
73
|
+
*/
|
|
74
|
+
simulateStreaming?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
Reasoning effort for reasoning models. Defaults to `medium`.
|
|
77
|
+
*/
|
|
78
|
+
reasoningEffort?: 'low' | 'medium' | 'high';
|
|
68
79
|
}
|
|
69
80
|
|
|
70
81
|
type OpenAICompletionModelId = 'gpt-3.5-turbo-instruct' | (string & {});
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LanguageModelV1, ProviderV1, EmbeddingModelV1, ImageModelV1 } from '@ai-sdk/provider';
|
|
2
2
|
import { FetchFunction } from '@ai-sdk/provider-utils';
|
|
3
3
|
|
|
4
|
-
type OpenAIChatModelId = 'o1-
|
|
4
|
+
type OpenAIChatModelId = 'o1' | 'o1-2024-12-17' | 'o1-mini' | 'o1-mini-2024-09-12' | 'o1-preview' | 'o1-preview-2024-09-12' | 'gpt-4o' | 'gpt-4o-2024-05-13' | 'gpt-4o-2024-08-06' | 'gpt-4o-2024-11-20' | 'gpt-4o-audio-preview' | 'gpt-4o-audio-preview-2024-10-01' | 'gpt-4o-audio-preview-2024-12-17' | 'gpt-4o-mini' | 'gpt-4o-mini-2024-07-18' | 'gpt-4-turbo' | 'gpt-4-turbo-2024-04-09' | 'gpt-4-turbo-preview' | 'gpt-4-0125-preview' | 'gpt-4-1106-preview' | 'gpt-4' | 'gpt-4-0613' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo' | 'gpt-3.5-turbo-1106' | (string & {});
|
|
5
5
|
interface OpenAIChatSettings {
|
|
6
6
|
/**
|
|
7
7
|
Modify the likelihood of specified tokens appearing in the completion.
|
|
@@ -65,6 +65,17 @@ interface OpenAIChatSettings {
|
|
|
65
65
|
Defaults to `false`.
|
|
66
66
|
*/
|
|
67
67
|
downloadImages?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
Simulates streaming by using a normal generate call and returning it as a stream.
|
|
70
|
+
Enable this if the model that you are using does not support streaming.
|
|
71
|
+
|
|
72
|
+
Defaults to `false`.
|
|
73
|
+
*/
|
|
74
|
+
simulateStreaming?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
Reasoning effort for reasoning models. Defaults to `medium`.
|
|
77
|
+
*/
|
|
78
|
+
reasoningEffort?: 'low' | 'medium' | 'high';
|
|
68
79
|
}
|
|
69
80
|
|
|
70
81
|
type OpenAICompletionModelId = 'gpt-3.5-turbo-instruct' | (string & {});
|
package/dist/index.js
CHANGED
|
@@ -376,7 +376,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
376
376
|
seed,
|
|
377
377
|
providerMetadata
|
|
378
378
|
}) {
|
|
379
|
-
var _a, _b, _c, _d, _e, _f, _g, _h
|
|
379
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
380
380
|
const type = mode.type;
|
|
381
381
|
const warnings = [];
|
|
382
382
|
if (topK != null) {
|
|
@@ -430,10 +430,11 @@ var OpenAIChatLanguageModel = class {
|
|
|
430
430
|
stop: stopSequences,
|
|
431
431
|
seed,
|
|
432
432
|
// openai specific settings:
|
|
433
|
-
max_completion_tokens: (
|
|
434
|
-
store: (
|
|
435
|
-
metadata: (
|
|
436
|
-
prediction: (
|
|
433
|
+
max_completion_tokens: (_b = providerMetadata == null ? void 0 : providerMetadata.openai) == null ? void 0 : _b.maxCompletionTokens,
|
|
434
|
+
store: (_c = providerMetadata == null ? void 0 : providerMetadata.openai) == null ? void 0 : _c.store,
|
|
435
|
+
metadata: (_d = providerMetadata == null ? void 0 : providerMetadata.openai) == null ? void 0 : _d.metadata,
|
|
436
|
+
prediction: (_e = providerMetadata == null ? void 0 : providerMetadata.openai) == null ? void 0 : _e.prediction,
|
|
437
|
+
reasoning_effort: (_g = (_f = providerMetadata == null ? void 0 : providerMetadata.openai) == null ? void 0 : _f.reasoningEffort) != null ? _g : this.settings.reasoningEffort,
|
|
437
438
|
// messages:
|
|
438
439
|
messages: convertToOpenAIChatMessages({
|
|
439
440
|
prompt,
|
|
@@ -473,7 +474,7 @@ var OpenAIChatLanguageModel = class {
|
|
|
473
474
|
json_schema: {
|
|
474
475
|
schema: mode.schema,
|
|
475
476
|
strict: true,
|
|
476
|
-
name: (
|
|
477
|
+
name: (_h = mode.name) != null ? _h : "response",
|
|
477
478
|
description: mode.description
|
|
478
479
|
}
|
|
479
480
|
} : { type: "json_object" }
|
|
@@ -584,6 +585,42 @@ var OpenAIChatLanguageModel = class {
|
|
|
584
585
|
};
|
|
585
586
|
}
|
|
586
587
|
async doStream(options) {
|
|
588
|
+
if (this.settings.simulateStreaming) {
|
|
589
|
+
const result = await this.doGenerate(options);
|
|
590
|
+
const simulatedStream = new ReadableStream({
|
|
591
|
+
start(controller) {
|
|
592
|
+
controller.enqueue({ type: "response-metadata", ...result.response });
|
|
593
|
+
if (result.text) {
|
|
594
|
+
controller.enqueue({
|
|
595
|
+
type: "text-delta",
|
|
596
|
+
textDelta: result.text
|
|
597
|
+
});
|
|
598
|
+
}
|
|
599
|
+
if (result.toolCalls) {
|
|
600
|
+
for (const toolCall of result.toolCalls) {
|
|
601
|
+
controller.enqueue({
|
|
602
|
+
type: "tool-call",
|
|
603
|
+
...toolCall
|
|
604
|
+
});
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
controller.enqueue({
|
|
608
|
+
type: "finish",
|
|
609
|
+
finishReason: result.finishReason,
|
|
610
|
+
usage: result.usage,
|
|
611
|
+
logprobs: result.logprobs,
|
|
612
|
+
providerMetadata: result.providerMetadata
|
|
613
|
+
});
|
|
614
|
+
controller.close();
|
|
615
|
+
}
|
|
616
|
+
});
|
|
617
|
+
return {
|
|
618
|
+
stream: simulatedStream,
|
|
619
|
+
rawCall: result.rawCall,
|
|
620
|
+
rawResponse: result.rawResponse,
|
|
621
|
+
warnings: result.warnings
|
|
622
|
+
};
|
|
623
|
+
}
|
|
587
624
|
const { args, warnings } = this.getArgs(options);
|
|
588
625
|
const body = {
|
|
589
626
|
...args,
|
|
@@ -894,7 +931,7 @@ var openaiChatChunkSchema = import_zod2.z.union([
|
|
|
894
931
|
openaiErrorDataSchema
|
|
895
932
|
]);
|
|
896
933
|
function isReasoningModel(modelId) {
|
|
897
|
-
return modelId.startsWith("o1-");
|
|
934
|
+
return modelId === "o1" || modelId.startsWith("o1-");
|
|
898
935
|
}
|
|
899
936
|
function isAudioModel(modelId) {
|
|
900
937
|
return modelId.startsWith("gpt-4o-audio-preview");
|