@llmgateway/ai-sdk-provider 3.2.1 → 3.3.0
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/dist/index.d.mts +40 -1
- package/dist/index.d.ts +40 -1
- package/dist/index.js +84 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +84 -0
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.d.mts +33 -2
- package/dist/internal/index.d.ts +33 -2
- package/dist/internal/index.js +78 -0
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +77 -0
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LanguageModelV2, LanguageModelV2CallOptions, LanguageModelV2Content, LanguageModelV2FinishReason, LanguageModelV2Usage, LanguageModelV2CallWarning, LanguageModelV2ResponseMetadata, SharedV2Headers, LanguageModelV2StreamPart } from '@ai-sdk/provider';
|
|
1
|
+
import { LanguageModelV2, LanguageModelV2CallOptions, LanguageModelV2Content, LanguageModelV2FinishReason, LanguageModelV2Usage, LanguageModelV2CallWarning, LanguageModelV2ResponseMetadata, SharedV2Headers, LanguageModelV2StreamPart, ImageModelV3, ImageModelV3CallOptions, SharedV3Warning } from '@ai-sdk/provider';
|
|
2
2
|
export { LanguageModelV2, LanguageModelV2Prompt } from '@ai-sdk/provider';
|
|
3
3
|
import { models, Provider } from '@llmgateway/models';
|
|
4
4
|
|
|
@@ -132,6 +132,9 @@ type LLMGatewayCompletionSettings = {
|
|
|
132
132
|
suffix?: string;
|
|
133
133
|
} & LLMGatewaySharedSettings;
|
|
134
134
|
|
|
135
|
+
type LLMGatewayImageModelId = string;
|
|
136
|
+
type LLMGatewayImageSettings = {};
|
|
137
|
+
|
|
135
138
|
type LLMGatewayChatConfig = {
|
|
136
139
|
provider: string;
|
|
137
140
|
compatibility: 'strict' | 'compatible';
|
|
@@ -209,6 +212,34 @@ declare class LLMGatewayCompletionLanguageModel implements LanguageModelV2 {
|
|
|
209
212
|
doStream(options: LanguageModelV2CallOptions): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>>;
|
|
210
213
|
}
|
|
211
214
|
|
|
215
|
+
type LLMGatewayImageConfig = {
|
|
216
|
+
provider: string;
|
|
217
|
+
headers: () => Record<string, string | undefined>;
|
|
218
|
+
url: (options: {
|
|
219
|
+
modelId: string;
|
|
220
|
+
path: string;
|
|
221
|
+
}) => string;
|
|
222
|
+
fetch?: typeof fetch;
|
|
223
|
+
};
|
|
224
|
+
declare class LLMGatewayImageModel implements ImageModelV3 {
|
|
225
|
+
readonly specificationVersion: "v3";
|
|
226
|
+
readonly provider: string;
|
|
227
|
+
readonly modelId: LLMGatewayImageModelId;
|
|
228
|
+
readonly maxImagesPerCall: number | undefined;
|
|
229
|
+
readonly settings: LLMGatewayImageSettings;
|
|
230
|
+
private readonly config;
|
|
231
|
+
constructor(modelId: LLMGatewayImageModelId, settings: LLMGatewayImageSettings, config: LLMGatewayImageConfig);
|
|
232
|
+
doGenerate(options: ImageModelV3CallOptions): Promise<{
|
|
233
|
+
images: Array<string>;
|
|
234
|
+
warnings: Array<SharedV3Warning>;
|
|
235
|
+
response: {
|
|
236
|
+
timestamp: Date;
|
|
237
|
+
modelId: string;
|
|
238
|
+
headers: Record<string, string> | undefined;
|
|
239
|
+
};
|
|
240
|
+
}>;
|
|
241
|
+
}
|
|
242
|
+
|
|
212
243
|
interface LLMGatewayProvider extends LanguageModelV2 {
|
|
213
244
|
(modelId: LLMGatewayChatModelId, settings?: LLMGatewayCompletionSettings): LLMGatewayCompletionLanguageModel;
|
|
214
245
|
(modelId: LLMGatewayChatModelId, settings?: LLMGatewayChatSettings): LLMGatewayChatLanguageModel;
|
|
@@ -222,6 +253,14 @@ interface LLMGatewayProvider extends LanguageModelV2 {
|
|
|
222
253
|
Creates an LLMGateway completion model for text generation.
|
|
223
254
|
*/
|
|
224
255
|
completion(modelId: LLMGatewayChatModelId, settings?: LLMGatewayCompletionSettings): LLMGatewayCompletionLanguageModel;
|
|
256
|
+
/**
|
|
257
|
+
Creates an LLMGateway image model for image generation.
|
|
258
|
+
*/
|
|
259
|
+
image(modelId: LLMGatewayImageModelId, settings?: LLMGatewayImageSettings): LLMGatewayImageModel;
|
|
260
|
+
/**
|
|
261
|
+
Creates an LLMGateway image model for image generation.
|
|
262
|
+
*/
|
|
263
|
+
imageModel(modelId: LLMGatewayImageModelId, settings?: LLMGatewayImageSettings): ImageModelV3;
|
|
225
264
|
}
|
|
226
265
|
interface LLMGatewayProviderSettings {
|
|
227
266
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LanguageModelV2, LanguageModelV2CallOptions, LanguageModelV2Content, LanguageModelV2FinishReason, LanguageModelV2Usage, LanguageModelV2CallWarning, LanguageModelV2ResponseMetadata, SharedV2Headers, LanguageModelV2StreamPart } from '@ai-sdk/provider';
|
|
1
|
+
import { LanguageModelV2, LanguageModelV2CallOptions, LanguageModelV2Content, LanguageModelV2FinishReason, LanguageModelV2Usage, LanguageModelV2CallWarning, LanguageModelV2ResponseMetadata, SharedV2Headers, LanguageModelV2StreamPart, ImageModelV3, ImageModelV3CallOptions, SharedV3Warning } from '@ai-sdk/provider';
|
|
2
2
|
export { LanguageModelV2, LanguageModelV2Prompt } from '@ai-sdk/provider';
|
|
3
3
|
import { models, Provider } from '@llmgateway/models';
|
|
4
4
|
|
|
@@ -132,6 +132,9 @@ type LLMGatewayCompletionSettings = {
|
|
|
132
132
|
suffix?: string;
|
|
133
133
|
} & LLMGatewaySharedSettings;
|
|
134
134
|
|
|
135
|
+
type LLMGatewayImageModelId = string;
|
|
136
|
+
type LLMGatewayImageSettings = {};
|
|
137
|
+
|
|
135
138
|
type LLMGatewayChatConfig = {
|
|
136
139
|
provider: string;
|
|
137
140
|
compatibility: 'strict' | 'compatible';
|
|
@@ -209,6 +212,34 @@ declare class LLMGatewayCompletionLanguageModel implements LanguageModelV2 {
|
|
|
209
212
|
doStream(options: LanguageModelV2CallOptions): Promise<Awaited<ReturnType<LanguageModelV2['doStream']>>>;
|
|
210
213
|
}
|
|
211
214
|
|
|
215
|
+
type LLMGatewayImageConfig = {
|
|
216
|
+
provider: string;
|
|
217
|
+
headers: () => Record<string, string | undefined>;
|
|
218
|
+
url: (options: {
|
|
219
|
+
modelId: string;
|
|
220
|
+
path: string;
|
|
221
|
+
}) => string;
|
|
222
|
+
fetch?: typeof fetch;
|
|
223
|
+
};
|
|
224
|
+
declare class LLMGatewayImageModel implements ImageModelV3 {
|
|
225
|
+
readonly specificationVersion: "v3";
|
|
226
|
+
readonly provider: string;
|
|
227
|
+
readonly modelId: LLMGatewayImageModelId;
|
|
228
|
+
readonly maxImagesPerCall: number | undefined;
|
|
229
|
+
readonly settings: LLMGatewayImageSettings;
|
|
230
|
+
private readonly config;
|
|
231
|
+
constructor(modelId: LLMGatewayImageModelId, settings: LLMGatewayImageSettings, config: LLMGatewayImageConfig);
|
|
232
|
+
doGenerate(options: ImageModelV3CallOptions): Promise<{
|
|
233
|
+
images: Array<string>;
|
|
234
|
+
warnings: Array<SharedV3Warning>;
|
|
235
|
+
response: {
|
|
236
|
+
timestamp: Date;
|
|
237
|
+
modelId: string;
|
|
238
|
+
headers: Record<string, string> | undefined;
|
|
239
|
+
};
|
|
240
|
+
}>;
|
|
241
|
+
}
|
|
242
|
+
|
|
212
243
|
interface LLMGatewayProvider extends LanguageModelV2 {
|
|
213
244
|
(modelId: LLMGatewayChatModelId, settings?: LLMGatewayCompletionSettings): LLMGatewayCompletionLanguageModel;
|
|
214
245
|
(modelId: LLMGatewayChatModelId, settings?: LLMGatewayChatSettings): LLMGatewayChatLanguageModel;
|
|
@@ -222,6 +253,14 @@ interface LLMGatewayProvider extends LanguageModelV2 {
|
|
|
222
253
|
Creates an LLMGateway completion model for text generation.
|
|
223
254
|
*/
|
|
224
255
|
completion(modelId: LLMGatewayChatModelId, settings?: LLMGatewayCompletionSettings): LLMGatewayCompletionLanguageModel;
|
|
256
|
+
/**
|
|
257
|
+
Creates an LLMGateway image model for image generation.
|
|
258
|
+
*/
|
|
259
|
+
image(modelId: LLMGatewayImageModelId, settings?: LLMGatewayImageSettings): LLMGatewayImageModel;
|
|
260
|
+
/**
|
|
261
|
+
Creates an LLMGateway image model for image generation.
|
|
262
|
+
*/
|
|
263
|
+
imageModel(modelId: LLMGatewayImageModelId, settings?: LLMGatewayImageSettings): ImageModelV3;
|
|
225
264
|
}
|
|
226
265
|
interface LLMGatewayProviderSettings {
|
|
227
266
|
/**
|
package/dist/index.js
CHANGED
|
@@ -3618,6 +3618,82 @@ var LLMGateway = class {
|
|
|
3618
3618
|
}
|
|
3619
3619
|
};
|
|
3620
3620
|
|
|
3621
|
+
// src/image/index.ts
|
|
3622
|
+
var import_v47 = require("zod/v4");
|
|
3623
|
+
var LLMGatewayImageResponseSchema = import_v47.z.object({
|
|
3624
|
+
data: import_v47.z.array(
|
|
3625
|
+
import_v47.z.object({
|
|
3626
|
+
b64_json: import_v47.z.string().optional(),
|
|
3627
|
+
url: import_v47.z.string().optional(),
|
|
3628
|
+
revised_prompt: import_v47.z.string().optional()
|
|
3629
|
+
})
|
|
3630
|
+
)
|
|
3631
|
+
});
|
|
3632
|
+
var LLMGatewayImageModel = class {
|
|
3633
|
+
constructor(modelId, settings, config) {
|
|
3634
|
+
this.specificationVersion = "v3";
|
|
3635
|
+
this.maxImagesPerCall = void 0;
|
|
3636
|
+
this.modelId = modelId;
|
|
3637
|
+
this.settings = settings;
|
|
3638
|
+
this.config = config;
|
|
3639
|
+
this.provider = config.provider;
|
|
3640
|
+
}
|
|
3641
|
+
async doGenerate(options) {
|
|
3642
|
+
const warnings = [];
|
|
3643
|
+
if (options.aspectRatio != null) {
|
|
3644
|
+
warnings.push({
|
|
3645
|
+
type: "unsupported",
|
|
3646
|
+
feature: "aspectRatio"
|
|
3647
|
+
});
|
|
3648
|
+
}
|
|
3649
|
+
if (options.seed != null) {
|
|
3650
|
+
warnings.push({
|
|
3651
|
+
type: "unsupported",
|
|
3652
|
+
feature: "seed"
|
|
3653
|
+
});
|
|
3654
|
+
}
|
|
3655
|
+
const body = {
|
|
3656
|
+
model: this.modelId,
|
|
3657
|
+
prompt: options.prompt,
|
|
3658
|
+
n: options.n,
|
|
3659
|
+
response_format: "b64_json"
|
|
3660
|
+
};
|
|
3661
|
+
if (options.size != null) {
|
|
3662
|
+
body.size = options.size;
|
|
3663
|
+
}
|
|
3664
|
+
const { value: response, responseHeaders } = await postJsonToApi({
|
|
3665
|
+
url: this.config.url({
|
|
3666
|
+
path: "/images/generations",
|
|
3667
|
+
modelId: this.modelId
|
|
3668
|
+
}),
|
|
3669
|
+
headers: combineHeaders(this.config.headers(), options.headers),
|
|
3670
|
+
body,
|
|
3671
|
+
failedResponseHandler: llmgatewayFailedResponseHandler,
|
|
3672
|
+
successfulResponseHandler: createJsonResponseHandler(
|
|
3673
|
+
LLMGatewayImageResponseSchema
|
|
3674
|
+
),
|
|
3675
|
+
abortSignal: options.abortSignal,
|
|
3676
|
+
fetch: this.config.fetch
|
|
3677
|
+
});
|
|
3678
|
+
return {
|
|
3679
|
+
images: response.data.map((item) => {
|
|
3680
|
+
if (item.b64_json) {
|
|
3681
|
+
return item.b64_json;
|
|
3682
|
+
}
|
|
3683
|
+
throw new Error(
|
|
3684
|
+
"Expected b64_json in response but got url. Set response_format to b64_json."
|
|
3685
|
+
);
|
|
3686
|
+
}),
|
|
3687
|
+
warnings,
|
|
3688
|
+
response: {
|
|
3689
|
+
timestamp: /* @__PURE__ */ new Date(),
|
|
3690
|
+
modelId: this.modelId,
|
|
3691
|
+
headers: responseHeaders
|
|
3692
|
+
}
|
|
3693
|
+
};
|
|
3694
|
+
}
|
|
3695
|
+
};
|
|
3696
|
+
|
|
3621
3697
|
// src/provider.ts
|
|
3622
3698
|
function createLLMGateway(options = {}) {
|
|
3623
3699
|
var _a16, _b16, _c, _d;
|
|
@@ -3646,6 +3722,12 @@ function createLLMGateway(options = {}) {
|
|
|
3646
3722
|
fetch: options.fetch,
|
|
3647
3723
|
extraBody: options.extraBody
|
|
3648
3724
|
});
|
|
3725
|
+
const createImageModel = (modelId, settings = {}) => new LLMGatewayImageModel(modelId, settings, {
|
|
3726
|
+
provider: "llmgateway.image",
|
|
3727
|
+
url: ({ path }) => `${baseURL}${path}`,
|
|
3728
|
+
headers: getHeaders,
|
|
3729
|
+
fetch: options.fetch
|
|
3730
|
+
});
|
|
3649
3731
|
const createLanguageModel = (modelId, settings) => {
|
|
3650
3732
|
if (new.target) {
|
|
3651
3733
|
throw new Error(
|
|
@@ -3664,6 +3746,8 @@ function createLLMGateway(options = {}) {
|
|
|
3664
3746
|
provider.languageModel = createLanguageModel;
|
|
3665
3747
|
provider.chat = createChatModel;
|
|
3666
3748
|
provider.completion = createCompletionModel;
|
|
3749
|
+
provider.image = createImageModel;
|
|
3750
|
+
provider.imageModel = createImageModel;
|
|
3667
3751
|
return provider;
|
|
3668
3752
|
}
|
|
3669
3753
|
var llmgateway = createLLMGateway({
|