@llmgateway/ai-sdk-provider 3.2.1 → 3.4.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 +81 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +81 -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 +75 -0
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +74 -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,79 @@ 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.seed != null) {
|
|
3644
|
+
warnings.push({
|
|
3645
|
+
type: "unsupported",
|
|
3646
|
+
feature: "seed"
|
|
3647
|
+
});
|
|
3648
|
+
}
|
|
3649
|
+
const body = {
|
|
3650
|
+
model: this.modelId,
|
|
3651
|
+
prompt: options.prompt,
|
|
3652
|
+
n: options.n,
|
|
3653
|
+
response_format: "b64_json"
|
|
3654
|
+
};
|
|
3655
|
+
if (options.size != null) {
|
|
3656
|
+
body.size = options.size;
|
|
3657
|
+
}
|
|
3658
|
+
if (options.aspectRatio != null) {
|
|
3659
|
+
body.aspect_ratio = options.aspectRatio;
|
|
3660
|
+
}
|
|
3661
|
+
const { value: response, responseHeaders } = await postJsonToApi({
|
|
3662
|
+
url: this.config.url({
|
|
3663
|
+
path: "/images/generations",
|
|
3664
|
+
modelId: this.modelId
|
|
3665
|
+
}),
|
|
3666
|
+
headers: combineHeaders(this.config.headers(), options.headers),
|
|
3667
|
+
body,
|
|
3668
|
+
failedResponseHandler: llmgatewayFailedResponseHandler,
|
|
3669
|
+
successfulResponseHandler: createJsonResponseHandler(
|
|
3670
|
+
LLMGatewayImageResponseSchema
|
|
3671
|
+
),
|
|
3672
|
+
abortSignal: options.abortSignal,
|
|
3673
|
+
fetch: this.config.fetch
|
|
3674
|
+
});
|
|
3675
|
+
return {
|
|
3676
|
+
images: response.data.map((item) => {
|
|
3677
|
+
if (item.b64_json) {
|
|
3678
|
+
return item.b64_json;
|
|
3679
|
+
}
|
|
3680
|
+
throw new Error(
|
|
3681
|
+
"Expected b64_json in response but got url. Set response_format to b64_json."
|
|
3682
|
+
);
|
|
3683
|
+
}),
|
|
3684
|
+
warnings,
|
|
3685
|
+
response: {
|
|
3686
|
+
timestamp: /* @__PURE__ */ new Date(),
|
|
3687
|
+
modelId: this.modelId,
|
|
3688
|
+
headers: responseHeaders
|
|
3689
|
+
}
|
|
3690
|
+
};
|
|
3691
|
+
}
|
|
3692
|
+
};
|
|
3693
|
+
|
|
3621
3694
|
// src/provider.ts
|
|
3622
3695
|
function createLLMGateway(options = {}) {
|
|
3623
3696
|
var _a16, _b16, _c, _d;
|
|
@@ -3646,6 +3719,12 @@ function createLLMGateway(options = {}) {
|
|
|
3646
3719
|
fetch: options.fetch,
|
|
3647
3720
|
extraBody: options.extraBody
|
|
3648
3721
|
});
|
|
3722
|
+
const createImageModel = (modelId, settings = {}) => new LLMGatewayImageModel(modelId, settings, {
|
|
3723
|
+
provider: "llmgateway.image",
|
|
3724
|
+
url: ({ path }) => `${baseURL}${path}`,
|
|
3725
|
+
headers: getHeaders,
|
|
3726
|
+
fetch: options.fetch
|
|
3727
|
+
});
|
|
3649
3728
|
const createLanguageModel = (modelId, settings) => {
|
|
3650
3729
|
if (new.target) {
|
|
3651
3730
|
throw new Error(
|
|
@@ -3664,6 +3743,8 @@ function createLLMGateway(options = {}) {
|
|
|
3664
3743
|
provider.languageModel = createLanguageModel;
|
|
3665
3744
|
provider.chat = createChatModel;
|
|
3666
3745
|
provider.completion = createCompletionModel;
|
|
3746
|
+
provider.image = createImageModel;
|
|
3747
|
+
provider.imageModel = createImageModel;
|
|
3667
3748
|
return provider;
|
|
3668
3749
|
}
|
|
3669
3750
|
var llmgateway = createLLMGateway({
|