@ai-sdk/openai-compatible 3.0.0-beta.24 → 3.0.0-beta.26
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 +24 -0
- package/dist/index.d.ts +39 -6
- package/dist/index.js +95 -39
- package/dist/index.js.map +1 -1
- package/dist/internal/index.d.ts +1 -1
- package/package.json +3 -3
- package/src/chat/openai-compatible-chat-language-model.ts +24 -4
- package/src/completion/openai-compatible-completion-language-model.ts +23 -3
- package/src/embedding/openai-compatible-embedding-model.ts +19 -2
- package/src/image/openai-compatible-image-model.ts +20 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @ai-sdk/openai-compatible
|
|
2
2
|
|
|
3
|
+
## 3.0.0-beta.26
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [add1126]
|
|
8
|
+
- @ai-sdk/provider-utils@5.0.0-beta.21
|
|
9
|
+
|
|
10
|
+
## 3.0.0-beta.25
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- b3976a2: Add workflow serialization support to all provider models.
|
|
15
|
+
|
|
16
|
+
**`@ai-sdk/provider-utils`:** New `serializeModel()` helper that extracts only serializable properties from a model instance, filtering out functions and objects containing functions. Third-party provider authors can use this to add workflow support to their own models.
|
|
17
|
+
|
|
18
|
+
**All providers:** `headers` is now optional in provider config types. This is non-breaking — existing code that passes `headers` continues to work. Custom provider implementations that construct model configs manually can now omit `headers`, which is useful when models are deserialized from a workflow step boundary where auth is provided separately.
|
|
19
|
+
|
|
20
|
+
All provider model classes now include `WORKFLOW_SERIALIZE` and `WORKFLOW_DESERIALIZE` static methods, enabling them to cross workflow step boundaries without serialization errors.
|
|
21
|
+
|
|
22
|
+
- Updated dependencies [b3976a2]
|
|
23
|
+
- Updated dependencies [ff5eba1]
|
|
24
|
+
- @ai-sdk/provider-utils@5.0.0-beta.20
|
|
25
|
+
- @ai-sdk/provider@4.0.0-beta.12
|
|
26
|
+
|
|
3
27
|
## 3.0.0-beta.24
|
|
4
28
|
|
|
5
29
|
### Major Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import * as _ai_sdk_provider from '@ai-sdk/provider';
|
|
1
2
|
import { SharedV4ProviderMetadata, LanguageModelV4, LanguageModelV4CallOptions, LanguageModelV4GenerateResult, LanguageModelV4StreamResult, EmbeddingModelV4, ImageModelV4, ProviderV4 } from '@ai-sdk/provider';
|
|
2
|
-
import { FetchFunction } from '@ai-sdk/provider-utils';
|
|
3
|
+
import { FetchFunction, WORKFLOW_SERIALIZE, WORKFLOW_DESERIALIZE } from '@ai-sdk/provider-utils';
|
|
3
4
|
import { ZodType, z } from 'zod/v4';
|
|
4
5
|
|
|
5
6
|
declare const openaiCompatibleErrorDataSchema: z.ZodObject<{
|
|
@@ -71,7 +72,7 @@ type MetadataExtractor = {
|
|
|
71
72
|
|
|
72
73
|
type OpenAICompatibleChatConfig = {
|
|
73
74
|
provider: string;
|
|
74
|
-
headers
|
|
75
|
+
headers?: () => Record<string, string | undefined>;
|
|
75
76
|
url: (options: {
|
|
76
77
|
modelId: string;
|
|
77
78
|
path: string;
|
|
@@ -99,9 +100,17 @@ declare class OpenAICompatibleChatLanguageModel implements LanguageModelV4 {
|
|
|
99
100
|
readonly specificationVersion = "v4";
|
|
100
101
|
readonly supportsStructuredOutputs: boolean;
|
|
101
102
|
readonly modelId: OpenAICompatibleChatModelId;
|
|
102
|
-
|
|
103
|
+
protected readonly config: OpenAICompatibleChatConfig;
|
|
103
104
|
private readonly failedResponseHandler;
|
|
104
105
|
private readonly chunkSchema;
|
|
106
|
+
static [WORKFLOW_SERIALIZE](model: OpenAICompatibleChatLanguageModel): {
|
|
107
|
+
modelId: string;
|
|
108
|
+
config: _ai_sdk_provider.JSONObject;
|
|
109
|
+
};
|
|
110
|
+
static [WORKFLOW_DESERIALIZE](options: {
|
|
111
|
+
modelId: string;
|
|
112
|
+
config: OpenAICompatibleChatConfig;
|
|
113
|
+
}): OpenAICompatibleChatLanguageModel;
|
|
105
114
|
constructor(modelId: OpenAICompatibleChatModelId, config: OpenAICompatibleChatConfig);
|
|
106
115
|
get provider(): string;
|
|
107
116
|
private get providerOptionsName();
|
|
@@ -124,7 +133,7 @@ type OpenAICompatibleLanguageModelCompletionOptions = z.infer<typeof openaiCompa
|
|
|
124
133
|
type OpenAICompatibleCompletionConfig = {
|
|
125
134
|
provider: string;
|
|
126
135
|
includeUsage?: boolean;
|
|
127
|
-
headers
|
|
136
|
+
headers?: () => Record<string, string | undefined>;
|
|
128
137
|
url: (options: {
|
|
129
138
|
modelId: string;
|
|
130
139
|
path: string;
|
|
@@ -142,6 +151,14 @@ declare class OpenAICompatibleCompletionLanguageModel implements LanguageModelV4
|
|
|
142
151
|
private readonly config;
|
|
143
152
|
private readonly failedResponseHandler;
|
|
144
153
|
private readonly chunkSchema;
|
|
154
|
+
static [WORKFLOW_SERIALIZE](model: OpenAICompatibleCompletionLanguageModel): {
|
|
155
|
+
modelId: string;
|
|
156
|
+
config: _ai_sdk_provider.JSONObject;
|
|
157
|
+
};
|
|
158
|
+
static [WORKFLOW_DESERIALIZE](options: {
|
|
159
|
+
modelId: string;
|
|
160
|
+
config: OpenAICompatibleCompletionConfig;
|
|
161
|
+
}): OpenAICompatibleCompletionLanguageModel;
|
|
145
162
|
constructor(modelId: OpenAICompatibleCompletionModelId, config: OpenAICompatibleCompletionConfig);
|
|
146
163
|
get provider(): string;
|
|
147
164
|
private get providerOptionsName();
|
|
@@ -172,7 +189,7 @@ type OpenAICompatibleEmbeddingConfig = {
|
|
|
172
189
|
modelId: string;
|
|
173
190
|
path: string;
|
|
174
191
|
}) => string;
|
|
175
|
-
headers
|
|
192
|
+
headers?: () => Record<string, string | undefined>;
|
|
176
193
|
fetch?: FetchFunction;
|
|
177
194
|
errorStructure?: ProviderErrorStructure<any>;
|
|
178
195
|
};
|
|
@@ -183,6 +200,14 @@ declare class OpenAICompatibleEmbeddingModel implements EmbeddingModelV4 {
|
|
|
183
200
|
get provider(): string;
|
|
184
201
|
get maxEmbeddingsPerCall(): number;
|
|
185
202
|
get supportsParallelCalls(): boolean;
|
|
203
|
+
static [WORKFLOW_SERIALIZE](model: OpenAICompatibleEmbeddingModel): {
|
|
204
|
+
modelId: string;
|
|
205
|
+
config: _ai_sdk_provider.JSONObject;
|
|
206
|
+
};
|
|
207
|
+
static [WORKFLOW_DESERIALIZE](options: {
|
|
208
|
+
modelId: string;
|
|
209
|
+
config: OpenAICompatibleEmbeddingConfig;
|
|
210
|
+
}): OpenAICompatibleEmbeddingModel;
|
|
186
211
|
constructor(modelId: OpenAICompatibleEmbeddingModelId, config: OpenAICompatibleEmbeddingConfig);
|
|
187
212
|
private get providerOptionsName();
|
|
188
213
|
doEmbed({ values, headers, abortSignal, providerOptions, }: Parameters<EmbeddingModelV4['doEmbed']>[0]): Promise<Awaited<ReturnType<EmbeddingModelV4['doEmbed']>>>;
|
|
@@ -192,7 +217,7 @@ type OpenAICompatibleImageModelId = string;
|
|
|
192
217
|
|
|
193
218
|
type OpenAICompatibleImageModelConfig = {
|
|
194
219
|
provider: string;
|
|
195
|
-
headers
|
|
220
|
+
headers?: () => Record<string, string | undefined>;
|
|
196
221
|
url: (options: {
|
|
197
222
|
modelId: string;
|
|
198
223
|
path: string;
|
|
@@ -213,6 +238,14 @@ declare class OpenAICompatibleImageModel implements ImageModelV4 {
|
|
|
213
238
|
* The provider options key used to extract provider-specific options.
|
|
214
239
|
*/
|
|
215
240
|
private get providerOptionsKey();
|
|
241
|
+
static [WORKFLOW_SERIALIZE](model: OpenAICompatibleImageModel): {
|
|
242
|
+
modelId: string;
|
|
243
|
+
config: _ai_sdk_provider.JSONObject;
|
|
244
|
+
};
|
|
245
|
+
static [WORKFLOW_DESERIALIZE](options: {
|
|
246
|
+
modelId: string;
|
|
247
|
+
config: OpenAICompatibleImageModelConfig;
|
|
248
|
+
}): OpenAICompatibleImageModel;
|
|
216
249
|
constructor(modelId: OpenAICompatibleImageModelId, config: OpenAICompatibleImageModelConfig);
|
|
217
250
|
private getArgs;
|
|
218
251
|
doGenerate({ prompt, n, size, aspectRatio, seed, providerOptions, headers, abortSignal, files, mask, }: Parameters<ImageModelV4['doGenerate']>[0]): Promise<Awaited<ReturnType<ImageModelV4['doGenerate']>>>;
|
package/dist/index.js
CHANGED
|
@@ -11,7 +11,10 @@ import {
|
|
|
11
11
|
isCustomReasoning,
|
|
12
12
|
isParsableJson,
|
|
13
13
|
parseProviderOptions,
|
|
14
|
-
postJsonToApi
|
|
14
|
+
postJsonToApi,
|
|
15
|
+
serializeModelOptions,
|
|
16
|
+
WORKFLOW_SERIALIZE,
|
|
17
|
+
WORKFLOW_DESERIALIZE
|
|
15
18
|
} from "@ai-sdk/provider-utils";
|
|
16
19
|
import { z as z3 } from "zod/v4";
|
|
17
20
|
|
|
@@ -425,8 +428,7 @@ function prepareTools({
|
|
|
425
428
|
}
|
|
426
429
|
|
|
427
430
|
// src/chat/openai-compatible-chat-language-model.ts
|
|
428
|
-
var OpenAICompatibleChatLanguageModel = class {
|
|
429
|
-
// type inferred via constructor
|
|
431
|
+
var OpenAICompatibleChatLanguageModel = class _OpenAICompatibleChatLanguageModel {
|
|
430
432
|
constructor(modelId, config) {
|
|
431
433
|
this.specificationVersion = "v4";
|
|
432
434
|
var _a, _b;
|
|
@@ -439,6 +441,19 @@ var OpenAICompatibleChatLanguageModel = class {
|
|
|
439
441
|
this.failedResponseHandler = createJsonErrorResponseHandler(errorStructure);
|
|
440
442
|
this.supportsStructuredOutputs = (_b = config.supportsStructuredOutputs) != null ? _b : false;
|
|
441
443
|
}
|
|
444
|
+
// type inferred via constructor
|
|
445
|
+
static [WORKFLOW_SERIALIZE](model) {
|
|
446
|
+
return serializeModelOptions({
|
|
447
|
+
modelId: model.modelId,
|
|
448
|
+
config: model.config
|
|
449
|
+
});
|
|
450
|
+
}
|
|
451
|
+
static [WORKFLOW_DESERIALIZE](options) {
|
|
452
|
+
return new _OpenAICompatibleChatLanguageModel(
|
|
453
|
+
options.modelId,
|
|
454
|
+
options.config
|
|
455
|
+
);
|
|
456
|
+
}
|
|
442
457
|
get provider() {
|
|
443
458
|
return this.config.provider;
|
|
444
459
|
}
|
|
@@ -575,7 +590,7 @@ var OpenAICompatibleChatLanguageModel = class {
|
|
|
575
590
|
};
|
|
576
591
|
}
|
|
577
592
|
async doGenerate(options) {
|
|
578
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
593
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
579
594
|
const { args, warnings, metadataKey } = await this.getArgs({ ...options });
|
|
580
595
|
const transformedBody = this.transformRequestBody(args);
|
|
581
596
|
const body = JSON.stringify(transformedBody);
|
|
@@ -588,7 +603,7 @@ var OpenAICompatibleChatLanguageModel = class {
|
|
|
588
603
|
path: "/chat/completions",
|
|
589
604
|
modelId: this.modelId
|
|
590
605
|
}),
|
|
591
|
-
headers: combineHeaders(this.config.headers(), options.headers),
|
|
606
|
+
headers: combineHeaders((_b = (_a = this.config).headers) == null ? void 0 : _b.call(_a), options.headers),
|
|
592
607
|
body: transformedBody,
|
|
593
608
|
failedResponseHandler: this.failedResponseHandler,
|
|
594
609
|
successfulResponseHandler: createJsonResponseHandler(
|
|
@@ -603,7 +618,7 @@ var OpenAICompatibleChatLanguageModel = class {
|
|
|
603
618
|
if (text != null && text.length > 0) {
|
|
604
619
|
content.push({ type: "text", text });
|
|
605
620
|
}
|
|
606
|
-
const reasoning = (
|
|
621
|
+
const reasoning = (_c = choice.message.reasoning_content) != null ? _c : choice.message.reasoning;
|
|
607
622
|
if (reasoning != null && reasoning.length > 0) {
|
|
608
623
|
content.push({
|
|
609
624
|
type: "reasoning",
|
|
@@ -612,10 +627,10 @@ var OpenAICompatibleChatLanguageModel = class {
|
|
|
612
627
|
}
|
|
613
628
|
if (choice.message.tool_calls != null) {
|
|
614
629
|
for (const toolCall of choice.message.tool_calls) {
|
|
615
|
-
const thoughtSignature = (
|
|
630
|
+
const thoughtSignature = (_e = (_d = toolCall.extra_content) == null ? void 0 : _d.google) == null ? void 0 : _e.thought_signature;
|
|
616
631
|
content.push({
|
|
617
632
|
type: "tool-call",
|
|
618
|
-
toolCallId: (
|
|
633
|
+
toolCallId: (_f = toolCall.id) != null ? _f : generateId(),
|
|
619
634
|
toolName: toolCall.function.name,
|
|
620
635
|
input: toolCall.function.arguments,
|
|
621
636
|
...thoughtSignature ? {
|
|
@@ -628,11 +643,11 @@ var OpenAICompatibleChatLanguageModel = class {
|
|
|
628
643
|
}
|
|
629
644
|
const providerMetadata = {
|
|
630
645
|
[metadataKey]: {},
|
|
631
|
-
...await ((
|
|
646
|
+
...await ((_h = (_g = this.config.metadataExtractor) == null ? void 0 : _g.extractMetadata) == null ? void 0 : _h.call(_g, {
|
|
632
647
|
parsedBody: rawResponse
|
|
633
648
|
}))
|
|
634
649
|
};
|
|
635
|
-
const completionTokenDetails = (
|
|
650
|
+
const completionTokenDetails = (_i = responseBody.usage) == null ? void 0 : _i.completion_tokens_details;
|
|
636
651
|
if ((completionTokenDetails == null ? void 0 : completionTokenDetails.accepted_prediction_tokens) != null) {
|
|
637
652
|
providerMetadata[metadataKey].acceptedPredictionTokens = completionTokenDetails == null ? void 0 : completionTokenDetails.accepted_prediction_tokens;
|
|
638
653
|
}
|
|
@@ -643,7 +658,7 @@ var OpenAICompatibleChatLanguageModel = class {
|
|
|
643
658
|
content,
|
|
644
659
|
finishReason: {
|
|
645
660
|
unified: mapOpenAICompatibleFinishReason(choice.finish_reason),
|
|
646
|
-
raw: (
|
|
661
|
+
raw: (_j = choice.finish_reason) != null ? _j : void 0
|
|
647
662
|
},
|
|
648
663
|
usage: convertOpenAICompatibleChatUsage(responseBody.usage),
|
|
649
664
|
providerMetadata,
|
|
@@ -657,7 +672,7 @@ var OpenAICompatibleChatLanguageModel = class {
|
|
|
657
672
|
};
|
|
658
673
|
}
|
|
659
674
|
async doStream(options) {
|
|
660
|
-
var _a;
|
|
675
|
+
var _a, _b, _c;
|
|
661
676
|
const { args, warnings, metadataKey } = await this.getArgs({
|
|
662
677
|
...options
|
|
663
678
|
});
|
|
@@ -673,7 +688,7 @@ var OpenAICompatibleChatLanguageModel = class {
|
|
|
673
688
|
path: "/chat/completions",
|
|
674
689
|
modelId: this.modelId
|
|
675
690
|
}),
|
|
676
|
-
headers: combineHeaders(this.config.headers(), options.headers),
|
|
691
|
+
headers: combineHeaders((_c = (_b = this.config).headers) == null ? void 0 : _c.call(_b), options.headers),
|
|
677
692
|
body,
|
|
678
693
|
failedResponseHandler: this.failedResponseHandler,
|
|
679
694
|
successfulResponseHandler: createEventSourceResponseHandler(
|
|
@@ -699,7 +714,7 @@ var OpenAICompatibleChatLanguageModel = class {
|
|
|
699
714
|
controller.enqueue({ type: "stream-start", warnings });
|
|
700
715
|
},
|
|
701
716
|
transform(chunk, controller) {
|
|
702
|
-
var _a2,
|
|
717
|
+
var _a2, _b2, _c2, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;
|
|
703
718
|
if (options.includeRawChunks) {
|
|
704
719
|
controller.enqueue({ type: "raw", rawValue: chunk.rawValue });
|
|
705
720
|
}
|
|
@@ -739,7 +754,7 @@ var OpenAICompatibleChatLanguageModel = class {
|
|
|
739
754
|
return;
|
|
740
755
|
}
|
|
741
756
|
const delta = choice.delta;
|
|
742
|
-
const reasoningContent = (
|
|
757
|
+
const reasoningContent = (_b2 = delta.reasoning_content) != null ? _b2 : delta.reasoning;
|
|
743
758
|
if (reasoningContent) {
|
|
744
759
|
if (!isActiveReasoning) {
|
|
745
760
|
controller.enqueue({
|
|
@@ -781,7 +796,7 @@ var OpenAICompatibleChatLanguageModel = class {
|
|
|
781
796
|
isActiveReasoning = false;
|
|
782
797
|
}
|
|
783
798
|
for (const toolCallDelta of delta.tool_calls) {
|
|
784
|
-
const index = (
|
|
799
|
+
const index = (_c2 = toolCallDelta.index) != null ? _c2 : toolCalls.length;
|
|
785
800
|
if (toolCalls[index] == null) {
|
|
786
801
|
if (toolCallDelta.id == null) {
|
|
787
802
|
throw new InvalidResponseDataError({
|
|
@@ -878,7 +893,7 @@ var OpenAICompatibleChatLanguageModel = class {
|
|
|
878
893
|
}
|
|
879
894
|
},
|
|
880
895
|
flush(controller) {
|
|
881
|
-
var _a2,
|
|
896
|
+
var _a2, _b2, _c2, _d, _e;
|
|
882
897
|
if (isActiveReasoning) {
|
|
883
898
|
controller.enqueue({ type: "reasoning-end", id: "reasoning-0" });
|
|
884
899
|
}
|
|
@@ -910,8 +925,8 @@ var OpenAICompatibleChatLanguageModel = class {
|
|
|
910
925
|
[providerOptionsName]: {},
|
|
911
926
|
...metadataExtractor == null ? void 0 : metadataExtractor.buildMetadata()
|
|
912
927
|
};
|
|
913
|
-
if (((
|
|
914
|
-
providerMetadata[providerOptionsName].acceptedPredictionTokens = (
|
|
928
|
+
if (((_b2 = usage == null ? void 0 : usage.completion_tokens_details) == null ? void 0 : _b2.accepted_prediction_tokens) != null) {
|
|
929
|
+
providerMetadata[providerOptionsName].acceptedPredictionTokens = (_c2 = usage == null ? void 0 : usage.completion_tokens_details) == null ? void 0 : _c2.accepted_prediction_tokens;
|
|
915
930
|
}
|
|
916
931
|
if (((_d = usage == null ? void 0 : usage.completion_tokens_details) == null ? void 0 : _d.rejected_prediction_tokens) != null) {
|
|
917
932
|
providerMetadata[providerOptionsName].rejectedPredictionTokens = (_e = usage == null ? void 0 : usage.completion_tokens_details) == null ? void 0 : _e.rejected_prediction_tokens;
|
|
@@ -1020,7 +1035,10 @@ import {
|
|
|
1020
1035
|
createJsonErrorResponseHandler as createJsonErrorResponseHandler2,
|
|
1021
1036
|
createJsonResponseHandler as createJsonResponseHandler2,
|
|
1022
1037
|
parseProviderOptions as parseProviderOptions2,
|
|
1023
|
-
postJsonToApi as postJsonToApi2
|
|
1038
|
+
postJsonToApi as postJsonToApi2,
|
|
1039
|
+
serializeModelOptions as serializeModelOptions2,
|
|
1040
|
+
WORKFLOW_SERIALIZE as WORKFLOW_SERIALIZE2,
|
|
1041
|
+
WORKFLOW_DESERIALIZE as WORKFLOW_DESERIALIZE2
|
|
1024
1042
|
} from "@ai-sdk/provider-utils";
|
|
1025
1043
|
import { z as z5 } from "zod/v4";
|
|
1026
1044
|
|
|
@@ -1195,8 +1213,7 @@ var openaiCompatibleLanguageModelCompletionOptions = z4.object({
|
|
|
1195
1213
|
});
|
|
1196
1214
|
|
|
1197
1215
|
// src/completion/openai-compatible-completion-language-model.ts
|
|
1198
|
-
var OpenAICompatibleCompletionLanguageModel = class {
|
|
1199
|
-
// type inferred via constructor
|
|
1216
|
+
var OpenAICompatibleCompletionLanguageModel = class _OpenAICompatibleCompletionLanguageModel {
|
|
1200
1217
|
constructor(modelId, config) {
|
|
1201
1218
|
this.specificationVersion = "v4";
|
|
1202
1219
|
var _a;
|
|
@@ -1208,6 +1225,19 @@ var OpenAICompatibleCompletionLanguageModel = class {
|
|
|
1208
1225
|
);
|
|
1209
1226
|
this.failedResponseHandler = createJsonErrorResponseHandler2(errorStructure);
|
|
1210
1227
|
}
|
|
1228
|
+
// type inferred via constructor
|
|
1229
|
+
static [WORKFLOW_SERIALIZE2](model) {
|
|
1230
|
+
return serializeModelOptions2({
|
|
1231
|
+
modelId: model.modelId,
|
|
1232
|
+
config: model.config
|
|
1233
|
+
});
|
|
1234
|
+
}
|
|
1235
|
+
static [WORKFLOW_DESERIALIZE2](options) {
|
|
1236
|
+
return new _OpenAICompatibleCompletionLanguageModel(
|
|
1237
|
+
options.modelId,
|
|
1238
|
+
options.config
|
|
1239
|
+
);
|
|
1240
|
+
}
|
|
1211
1241
|
get provider() {
|
|
1212
1242
|
return this.config.provider;
|
|
1213
1243
|
}
|
|
@@ -1297,6 +1327,7 @@ var OpenAICompatibleCompletionLanguageModel = class {
|
|
|
1297
1327
|
};
|
|
1298
1328
|
}
|
|
1299
1329
|
async doGenerate(options) {
|
|
1330
|
+
var _a, _b;
|
|
1300
1331
|
const { args, warnings } = await this.getArgs(options);
|
|
1301
1332
|
const {
|
|
1302
1333
|
responseHeaders,
|
|
@@ -1307,7 +1338,7 @@ var OpenAICompatibleCompletionLanguageModel = class {
|
|
|
1307
1338
|
path: "/completions",
|
|
1308
1339
|
modelId: this.modelId
|
|
1309
1340
|
}),
|
|
1310
|
-
headers: combineHeaders2(this.config.headers(), options.headers),
|
|
1341
|
+
headers: combineHeaders2((_b = (_a = this.config).headers) == null ? void 0 : _b.call(_a), options.headers),
|
|
1311
1342
|
body: args,
|
|
1312
1343
|
failedResponseHandler: this.failedResponseHandler,
|
|
1313
1344
|
successfulResponseHandler: createJsonResponseHandler2(
|
|
@@ -1338,6 +1369,7 @@ var OpenAICompatibleCompletionLanguageModel = class {
|
|
|
1338
1369
|
};
|
|
1339
1370
|
}
|
|
1340
1371
|
async doStream(options) {
|
|
1372
|
+
var _a, _b;
|
|
1341
1373
|
const { args, warnings } = await this.getArgs(options);
|
|
1342
1374
|
const body = {
|
|
1343
1375
|
...args,
|
|
@@ -1350,7 +1382,7 @@ var OpenAICompatibleCompletionLanguageModel = class {
|
|
|
1350
1382
|
path: "/completions",
|
|
1351
1383
|
modelId: this.modelId
|
|
1352
1384
|
}),
|
|
1353
|
-
headers: combineHeaders2(this.config.headers(), options.headers),
|
|
1385
|
+
headers: combineHeaders2((_b = (_a = this.config).headers) == null ? void 0 : _b.call(_a), options.headers),
|
|
1354
1386
|
body,
|
|
1355
1387
|
failedResponseHandler: this.failedResponseHandler,
|
|
1356
1388
|
successfulResponseHandler: createEventSourceResponseHandler2(
|
|
@@ -1372,7 +1404,7 @@ var OpenAICompatibleCompletionLanguageModel = class {
|
|
|
1372
1404
|
controller.enqueue({ type: "stream-start", warnings });
|
|
1373
1405
|
},
|
|
1374
1406
|
transform(chunk, controller) {
|
|
1375
|
-
var
|
|
1407
|
+
var _a2;
|
|
1376
1408
|
if (options.includeRawChunks) {
|
|
1377
1409
|
controller.enqueue({ type: "raw", rawValue: chunk.rawValue });
|
|
1378
1410
|
}
|
|
@@ -1405,7 +1437,7 @@ var OpenAICompatibleCompletionLanguageModel = class {
|
|
|
1405
1437
|
if ((choice == null ? void 0 : choice.finish_reason) != null) {
|
|
1406
1438
|
finishReason = {
|
|
1407
1439
|
unified: mapOpenAICompatibleFinishReason2(choice.finish_reason),
|
|
1408
|
-
raw: (
|
|
1440
|
+
raw: (_a2 = choice.finish_reason) != null ? _a2 : void 0
|
|
1409
1441
|
};
|
|
1410
1442
|
}
|
|
1411
1443
|
if ((choice == null ? void 0 : choice.text) != null) {
|
|
@@ -1476,7 +1508,10 @@ import {
|
|
|
1476
1508
|
createJsonErrorResponseHandler as createJsonErrorResponseHandler3,
|
|
1477
1509
|
createJsonResponseHandler as createJsonResponseHandler3,
|
|
1478
1510
|
parseProviderOptions as parseProviderOptions3,
|
|
1479
|
-
postJsonToApi as postJsonToApi3
|
|
1511
|
+
postJsonToApi as postJsonToApi3,
|
|
1512
|
+
serializeModelOptions as serializeModelOptions3,
|
|
1513
|
+
WORKFLOW_SERIALIZE as WORKFLOW_SERIALIZE3,
|
|
1514
|
+
WORKFLOW_DESERIALIZE as WORKFLOW_DESERIALIZE3
|
|
1480
1515
|
} from "@ai-sdk/provider-utils";
|
|
1481
1516
|
import { z as z7 } from "zod/v4";
|
|
1482
1517
|
|
|
@@ -1496,7 +1531,7 @@ var openaiCompatibleEmbeddingModelOptions = z6.object({
|
|
|
1496
1531
|
});
|
|
1497
1532
|
|
|
1498
1533
|
// src/embedding/openai-compatible-embedding-model.ts
|
|
1499
|
-
var OpenAICompatibleEmbeddingModel = class {
|
|
1534
|
+
var OpenAICompatibleEmbeddingModel = class _OpenAICompatibleEmbeddingModel {
|
|
1500
1535
|
constructor(modelId, config) {
|
|
1501
1536
|
this.specificationVersion = "v4";
|
|
1502
1537
|
this.modelId = modelId;
|
|
@@ -1513,6 +1548,15 @@ var OpenAICompatibleEmbeddingModel = class {
|
|
|
1513
1548
|
var _a;
|
|
1514
1549
|
return (_a = this.config.supportsParallelCalls) != null ? _a : true;
|
|
1515
1550
|
}
|
|
1551
|
+
static [WORKFLOW_SERIALIZE3](model) {
|
|
1552
|
+
return serializeModelOptions3({
|
|
1553
|
+
modelId: model.modelId,
|
|
1554
|
+
config: model.config
|
|
1555
|
+
});
|
|
1556
|
+
}
|
|
1557
|
+
static [WORKFLOW_DESERIALIZE3](options) {
|
|
1558
|
+
return new _OpenAICompatibleEmbeddingModel(options.modelId, options.config);
|
|
1559
|
+
}
|
|
1516
1560
|
get providerOptionsName() {
|
|
1517
1561
|
return this.config.provider.split(".")[0].trim();
|
|
1518
1562
|
}
|
|
@@ -1522,7 +1566,7 @@ var OpenAICompatibleEmbeddingModel = class {
|
|
|
1522
1566
|
abortSignal,
|
|
1523
1567
|
providerOptions
|
|
1524
1568
|
}) {
|
|
1525
|
-
var _a, _b, _c;
|
|
1569
|
+
var _a, _b, _c, _d, _e;
|
|
1526
1570
|
const warnings = [];
|
|
1527
1571
|
const deprecatedOptions = await parseProviderOptions3({
|
|
1528
1572
|
provider: "openai-compatible",
|
|
@@ -1571,7 +1615,7 @@ var OpenAICompatibleEmbeddingModel = class {
|
|
|
1571
1615
|
path: "/embeddings",
|
|
1572
1616
|
modelId: this.modelId
|
|
1573
1617
|
}),
|
|
1574
|
-
headers: combineHeaders3(this.config.headers(), headers),
|
|
1618
|
+
headers: combineHeaders3((_d = (_c = this.config).headers) == null ? void 0 : _d.call(_c), headers),
|
|
1575
1619
|
body: {
|
|
1576
1620
|
model: this.modelId,
|
|
1577
1621
|
input: values,
|
|
@@ -1580,7 +1624,7 @@ var OpenAICompatibleEmbeddingModel = class {
|
|
|
1580
1624
|
user: compatibleOptions.user
|
|
1581
1625
|
},
|
|
1582
1626
|
failedResponseHandler: createJsonErrorResponseHandler3(
|
|
1583
|
-
(
|
|
1627
|
+
(_e = this.config.errorStructure) != null ? _e : defaultOpenAICompatibleErrorStructure
|
|
1584
1628
|
),
|
|
1585
1629
|
successfulResponseHandler: createJsonResponseHandler3(
|
|
1586
1630
|
openaiTextEmbeddingResponseSchema
|
|
@@ -1612,10 +1656,13 @@ import {
|
|
|
1612
1656
|
createJsonResponseHandler as createJsonResponseHandler4,
|
|
1613
1657
|
downloadBlob,
|
|
1614
1658
|
postFormDataToApi,
|
|
1615
|
-
postJsonToApi as postJsonToApi4
|
|
1659
|
+
postJsonToApi as postJsonToApi4,
|
|
1660
|
+
serializeModelOptions as serializeModelOptions4,
|
|
1661
|
+
WORKFLOW_SERIALIZE as WORKFLOW_SERIALIZE4,
|
|
1662
|
+
WORKFLOW_DESERIALIZE as WORKFLOW_DESERIALIZE4
|
|
1616
1663
|
} from "@ai-sdk/provider-utils";
|
|
1617
1664
|
import { z as z8 } from "zod/v4";
|
|
1618
|
-
var OpenAICompatibleImageModel = class {
|
|
1665
|
+
var OpenAICompatibleImageModel = class _OpenAICompatibleImageModel {
|
|
1619
1666
|
constructor(modelId, config) {
|
|
1620
1667
|
this.modelId = modelId;
|
|
1621
1668
|
this.config = config;
|
|
@@ -1631,6 +1678,15 @@ var OpenAICompatibleImageModel = class {
|
|
|
1631
1678
|
get providerOptionsKey() {
|
|
1632
1679
|
return this.config.provider.split(".")[0].trim();
|
|
1633
1680
|
}
|
|
1681
|
+
static [WORKFLOW_SERIALIZE4](model) {
|
|
1682
|
+
return serializeModelOptions4({
|
|
1683
|
+
modelId: model.modelId,
|
|
1684
|
+
config: model.config
|
|
1685
|
+
});
|
|
1686
|
+
}
|
|
1687
|
+
static [WORKFLOW_DESERIALIZE4](options) {
|
|
1688
|
+
return new _OpenAICompatibleImageModel(options.modelId, options.config);
|
|
1689
|
+
}
|
|
1634
1690
|
getArgs(providerOptions, warnings) {
|
|
1635
1691
|
warnIfDeprecatedProviderOptionsKey({
|
|
1636
1692
|
rawName: this.providerOptionsKey,
|
|
@@ -1654,7 +1710,7 @@ var OpenAICompatibleImageModel = class {
|
|
|
1654
1710
|
files,
|
|
1655
1711
|
mask
|
|
1656
1712
|
}) {
|
|
1657
|
-
var _a, _b, _c, _d, _e;
|
|
1713
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
1658
1714
|
const warnings = [];
|
|
1659
1715
|
if (aspectRatio != null) {
|
|
1660
1716
|
warnings.push({
|
|
@@ -1674,7 +1730,7 @@ var OpenAICompatibleImageModel = class {
|
|
|
1674
1730
|
path: "/images/edits",
|
|
1675
1731
|
modelId: this.modelId
|
|
1676
1732
|
}),
|
|
1677
|
-
headers: combineHeaders4(this.config.headers(), headers),
|
|
1733
|
+
headers: combineHeaders4((_e = (_d = this.config).headers) == null ? void 0 : _e.call(_d), headers),
|
|
1678
1734
|
formData: convertToFormData({
|
|
1679
1735
|
model: this.modelId,
|
|
1680
1736
|
prompt,
|
|
@@ -1685,7 +1741,7 @@ var OpenAICompatibleImageModel = class {
|
|
|
1685
1741
|
...args
|
|
1686
1742
|
}),
|
|
1687
1743
|
failedResponseHandler: createJsonErrorResponseHandler4(
|
|
1688
|
-
(
|
|
1744
|
+
(_f = this.config.errorStructure) != null ? _f : defaultOpenAICompatibleErrorStructure
|
|
1689
1745
|
),
|
|
1690
1746
|
successfulResponseHandler: createJsonResponseHandler4(
|
|
1691
1747
|
openaiCompatibleImageResponseSchema
|
|
@@ -1708,7 +1764,7 @@ var OpenAICompatibleImageModel = class {
|
|
|
1708
1764
|
path: "/images/generations",
|
|
1709
1765
|
modelId: this.modelId
|
|
1710
1766
|
}),
|
|
1711
|
-
headers: combineHeaders4(this.config.headers(), headers),
|
|
1767
|
+
headers: combineHeaders4((_h = (_g = this.config).headers) == null ? void 0 : _h.call(_g), headers),
|
|
1712
1768
|
body: {
|
|
1713
1769
|
model: this.modelId,
|
|
1714
1770
|
prompt,
|
|
@@ -1718,7 +1774,7 @@ var OpenAICompatibleImageModel = class {
|
|
|
1718
1774
|
response_format: "b64_json"
|
|
1719
1775
|
},
|
|
1720
1776
|
failedResponseHandler: createJsonErrorResponseHandler4(
|
|
1721
|
-
(
|
|
1777
|
+
(_i = this.config.errorStructure) != null ? _i : defaultOpenAICompatibleErrorStructure
|
|
1722
1778
|
),
|
|
1723
1779
|
successfulResponseHandler: createJsonResponseHandler4(
|
|
1724
1780
|
openaiCompatibleImageResponseSchema
|
|
@@ -1755,7 +1811,7 @@ import {
|
|
|
1755
1811
|
} from "@ai-sdk/provider-utils";
|
|
1756
1812
|
|
|
1757
1813
|
// src/version.ts
|
|
1758
|
-
var VERSION = true ? "3.0.0-beta.
|
|
1814
|
+
var VERSION = true ? "3.0.0-beta.26" : "0.0.0-test";
|
|
1759
1815
|
|
|
1760
1816
|
// src/openai-compatible-provider.ts
|
|
1761
1817
|
function createOpenAICompatible(options) {
|