@huggingface/inference 4.11.2 → 4.11.3
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/README.md +2 -0
- package/dist/commonjs/lib/getProviderHelper.d.ts.map +1 -1
- package/dist/commonjs/lib/getProviderHelper.js +6 -0
- package/dist/commonjs/package.d.ts +1 -1
- package/dist/commonjs/package.js +1 -1
- package/dist/commonjs/providers/consts.d.ts.map +1 -1
- package/dist/commonjs/providers/consts.js +1 -0
- package/dist/commonjs/providers/wavespeed.d.ts +41 -0
- package/dist/commonjs/providers/wavespeed.d.ts.map +1 -0
- package/dist/commonjs/providers/wavespeed.js +103 -0
- package/dist/commonjs/types.d.ts +8 -2
- package/dist/commonjs/types.d.ts.map +1 -1
- package/dist/commonjs/types.js +32 -1
- package/dist/esm/lib/getProviderHelper.d.ts.map +1 -1
- package/dist/esm/lib/getProviderHelper.js +6 -0
- package/dist/esm/package.d.ts +1 -1
- package/dist/esm/package.js +1 -1
- package/dist/esm/providers/consts.d.ts.map +1 -1
- package/dist/esm/providers/consts.js +1 -0
- package/dist/esm/providers/wavespeed.d.ts +41 -0
- package/dist/esm/providers/wavespeed.d.ts.map +1 -0
- package/dist/esm/providers/wavespeed.js +97 -0
- package/dist/esm/types.d.ts +8 -2
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +31 -0
- package/package.json +2 -2
- package/src/lib/getProviderHelper.ts +6 -0
- package/src/package.ts +1 -1
- package/src/providers/consts.ts +1 -0
- package/src/providers/wavespeed.ts +185 -0
- package/src/types.ts +32 -0
package/README.md
CHANGED
|
@@ -67,6 +67,7 @@ Currently, we support the following providers:
|
|
|
67
67
|
- [Cohere](https://cohere.com)
|
|
68
68
|
- [Cerebras](https://cerebras.ai/)
|
|
69
69
|
- [Groq](https://groq.com)
|
|
70
|
+
- [Wavespeed.ai](https://wavespeed.ai/)
|
|
70
71
|
- [Z.ai](https://z.ai/)
|
|
71
72
|
|
|
72
73
|
To send requests to a third-party provider, you have to pass the `provider` parameter to the inference function. The default value of the `provider` parameter is "auto", which will select the first of the providers available for the model, sorted by your preferred order in https://hf.co/settings/inference-providers.
|
|
@@ -105,6 +106,7 @@ Only a subset of models are supported when requesting third-party providers. You
|
|
|
105
106
|
- [Cerebras supported models](https://huggingface.co/api/partners/cerebras/models)
|
|
106
107
|
- [Groq supported models](https://console.groq.com/docs/models)
|
|
107
108
|
- [Novita AI supported models](https://huggingface.co/api/partners/novita/models)
|
|
109
|
+
- [Wavespeed.ai supported models](https://huggingface.co/api/partners/wavespeed/models)
|
|
108
110
|
- [Z.ai supported models](https://huggingface.co/api/partners/zai-org/models)
|
|
109
111
|
|
|
110
112
|
❗**Important note:** To be compatible, the third-party API must adhere to the "standard" shape API we expect on HF model pages for each pipeline task type.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getProviderHelper.d.ts","sourceRoot":"","sources":["../../../src/lib/getProviderHelper.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACX,6BAA6B,EAC7B,sBAAsB,EACtB,oCAAoC,EACpC,wBAAwB,EACxB,mCAAmC,EACnC,2BAA2B,EAC3B,kBAAkB,EAClB,6BAA6B,EAC7B,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,uBAAuB,EACvB,gCAAgC,EAChC,+BAA+B,EAC/B,2BAA2B,EAC3B,kBAAkB,EAClB,4BAA4B,EAC5B,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,EACrB,iCAAiC,EACjC,gCAAgC,EAChC,qCAAqC,EACrC,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"getProviderHelper.d.ts","sourceRoot":"","sources":["../../../src/lib/getProviderHelper.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACX,6BAA6B,EAC7B,sBAAsB,EACtB,oCAAoC,EACpC,wBAAwB,EACxB,mCAAmC,EACnC,2BAA2B,EAC3B,kBAAkB,EAClB,6BAA6B,EAC7B,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,uBAAuB,EACvB,gCAAgC,EAChC,+BAA+B,EAC/B,2BAA2B,EAC3B,kBAAkB,EAClB,4BAA4B,EAC5B,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,EACrB,iCAAiC,EACjC,gCAAgC,EAChC,qCAAqC,EACrC,MAAM,gCAAgC,CAAC;AAOxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG/F,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,CA6HnG,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,eAAe,GACnB,qBAAqB,GAAG,kBAAkB,CAAC;AAC9C,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,gBAAgB,GACpB,wBAAwB,GAAG,kBAAkB,CAAC;AACjD,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,iBAAiB,GACrB,wBAAwB,GAAG,kBAAkB,CAAC;AACjD,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,gBAAgB,GACpB,sBAAsB,GAAG,kBAAkB,CAAC;AAC/C,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,eAAe,GACnB,qBAAqB,GAAG,kBAAkB,CAAC;AAC9C,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,8BAA8B,GAClC,oCAAoC,GAAG,kBAAkB,CAAC;AAC7D,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,eAAe,GACnB,qBAAqB,GAAG,kBAAkB,CAAC;AAC9C,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,qBAAqB,GACzB,4BAA4B,GAAG,kBAAkB,CAAC;AACrD,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,oBAAoB,GACxB,2BAA2B,GAAG,kBAAkB,CAAC;AACpD,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,sBAAsB,GAC1B,6BAA6B,GAAG,kBAAkB,CAAC;AACtD,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,gBAAgB,GACpB,sBAAsB,GAAG,kBAAkB,CAAC;AAC/C,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,WAAW,GACf,kBAAkB,GAAG,kBAAkB,CAAC;AAC3C,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,oBAAoB,GACxB,2BAA2B,GAAG,kBAAkB,CAAC;AACpD,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,sBAAsB,GAC1B,6BAA6B,GAAG,kBAAkB,CAAC;AACtD,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,oBAAoB,GACxB,2BAA2B,GAAG,kBAAkB,CAAC;AACpD,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,6BAA6B,GACjC,mCAAmC,GAAG,kBAAkB,CAAC;AAC5D,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,eAAe,GACnB,qBAAqB,GAAG,kBAAkB,CAAC;AAC9C,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,kBAAkB,GACtB,yBAAyB,GAAG,kBAAkB,CAAC;AAClD,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,gCAAgC,GACpC,qCAAqC,GAAG,kBAAkB,CAAC;AAC9D,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,0BAA0B,GAC9B,gCAAgC,GAAG,kBAAkB,CAAC;AACzD,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,gBAAgB,GACpB,sBAAsB,GAAG,kBAAkB,CAAC;AAC/C,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,gBAAgB,GACpB,sBAAsB,GAAG,kBAAkB,CAAC;AAC/C,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,qBAAqB,GACzB,4BAA4B,GAAG,kBAAkB,CAAC;AACrD,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,0BAA0B,GAC9B,gCAAgC,GAAG,kBAAkB,CAAC;AACzD,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,wBAAwB,GAC5B,+BAA+B,GAAG,kBAAkB,CAAC;AACxD,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,oBAAoB,GACxB,2BAA2B,GAAG,kBAAkB,CAAC;AACpD,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,sBAAsB,GAC1B,6BAA6B,GAAG,kBAAkB,CAAC;AACtD,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,aAAa,GACjB,qBAAqB,GAAG,kBAAkB,CAAC;AAC9C,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,eAAe,GACnB,uBAAuB,GAAG,kBAAkB,CAAC;AAChD,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,2BAA2B,GAC/B,iCAAiC,GAAG,kBAAkB,CAAC;AAC1D,wBAAgB,iBAAiB,CAChC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,aAAa,GAAG,SAAS,GAC7B,kBAAkB,CAAC"}
|
|
@@ -56,6 +56,7 @@ const Replicate = __importStar(require("../providers/replicate.js"));
|
|
|
56
56
|
const Sambanova = __importStar(require("../providers/sambanova.js"));
|
|
57
57
|
const Scaleway = __importStar(require("../providers/scaleway.js"));
|
|
58
58
|
const Together = __importStar(require("../providers/together.js"));
|
|
59
|
+
const Wavespeed = __importStar(require("../providers/wavespeed.js"));
|
|
59
60
|
const Zai = __importStar(require("../providers/zai-org.js"));
|
|
60
61
|
const errors_js_1 = require("../errors.js");
|
|
61
62
|
exports.PROVIDERS = {
|
|
@@ -175,6 +176,11 @@ exports.PROVIDERS = {
|
|
|
175
176
|
conversational: new Together.TogetherConversationalTask(),
|
|
176
177
|
"text-generation": new Together.TogetherTextGenerationTask(),
|
|
177
178
|
},
|
|
179
|
+
wavespeed: {
|
|
180
|
+
"text-to-image": new Wavespeed.WavespeedAITextToImageTask(),
|
|
181
|
+
"text-to-video": new Wavespeed.WavespeedAITextToVideoTask(),
|
|
182
|
+
"image-to-image": new Wavespeed.WavespeedAIImageToImageTask(),
|
|
183
|
+
},
|
|
178
184
|
"zai-org": {
|
|
179
185
|
conversational: new Zai.ZaiConversationalTask(),
|
|
180
186
|
},
|
package/dist/commonjs/package.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;
|
|
4
4
|
// Generated file from package.json. Issues importing JSON directly when publishing on commonjs/ESM - see https://github.com/microsoft/TypeScript/issues/51783
|
|
5
|
-
exports.PACKAGE_VERSION = "4.11.
|
|
5
|
+
exports.PACKAGE_VERSION = "4.11.3";
|
|
6
6
|
exports.PACKAGE_NAME = "@huggingface/inference";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../../src/providers/consts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,EAAE,MAAM,CACrD,iBAAiB,EACjB,MAAM,CAAC,OAAO,EAAE,6BAA6B,CAAC,
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../../src/providers/consts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,EAAE,MAAM,CACrD,iBAAiB,EACjB,MAAM,CAAC,OAAO,EAAE,6BAA6B,CAAC,CA+B9C,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { TextToImageArgs } from "../tasks/cv/textToImage.js";
|
|
2
|
+
import type { ImageToImageArgs } from "../tasks/cv/imageToImage.js";
|
|
3
|
+
import type { TextToVideoArgs } from "../tasks/cv/textToVideo.js";
|
|
4
|
+
import type { BodyParams, RequestArgs, UrlParams } from "../types.js";
|
|
5
|
+
import type { TextToImageTaskHelper, TextToVideoTaskHelper, ImageToImageTaskHelper } from "./providerHelper.js";
|
|
6
|
+
import { TaskProviderHelper } from "./providerHelper.js";
|
|
7
|
+
/**
|
|
8
|
+
* Response structure for initial task submission
|
|
9
|
+
*/
|
|
10
|
+
interface WaveSpeedAISubmitResponse {
|
|
11
|
+
id: string;
|
|
12
|
+
urls: {
|
|
13
|
+
get: string;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Response structure for WaveSpeed AI API with submit response data
|
|
18
|
+
*/
|
|
19
|
+
interface WaveSpeedAISubmitTaskResponse {
|
|
20
|
+
code: number;
|
|
21
|
+
message: string;
|
|
22
|
+
data: WaveSpeedAISubmitResponse;
|
|
23
|
+
}
|
|
24
|
+
declare abstract class WavespeedAITask extends TaskProviderHelper {
|
|
25
|
+
constructor(url?: string);
|
|
26
|
+
makeRoute(params: UrlParams): string;
|
|
27
|
+
preparePayload(params: BodyParams<ImageToImageArgs | TextToImageArgs | TextToVideoArgs>): Record<string, unknown>;
|
|
28
|
+
getResponse(response: WaveSpeedAISubmitTaskResponse, url?: string, headers?: Record<string, string>): Promise<Blob>;
|
|
29
|
+
}
|
|
30
|
+
export declare class WavespeedAITextToImageTask extends WavespeedAITask implements TextToImageTaskHelper {
|
|
31
|
+
constructor();
|
|
32
|
+
}
|
|
33
|
+
export declare class WavespeedAITextToVideoTask extends WavespeedAITask implements TextToVideoTaskHelper {
|
|
34
|
+
constructor();
|
|
35
|
+
}
|
|
36
|
+
export declare class WavespeedAIImageToImageTask extends WavespeedAITask implements ImageToImageTaskHelper {
|
|
37
|
+
constructor();
|
|
38
|
+
preparePayloadAsync(args: ImageToImageArgs): Promise<RequestArgs>;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=wavespeed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wavespeed.d.ts","sourceRoot":"","sources":["../../../src/providers/wavespeed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAItE,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAChH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AA6BzD;;GAEG;AACH,UAAU,yBAAyB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;KACZ,CAAC;CACF;AAWD;;GAEG;AACH,UAAU,6BAA6B;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,yBAAyB,CAAC;CAChC;AAED,uBAAe,eAAgB,SAAQ,kBAAkB;gBAC5C,GAAG,CAAC,EAAE,MAAM;IAIxB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAIpC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,gBAAgB,GAAG,eAAe,GAAG,eAAe,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAkBlG,WAAW,CACzB,QAAQ,EAAE,6BAA6B,EACvC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;CA4DhB;AAED,qBAAa,0BAA2B,SAAQ,eAAgB,YAAW,qBAAqB;;CAI/F;AAED,qBAAa,0BAA2B,SAAQ,eAAgB,YAAW,qBAAqB;;CAI/F;AAED,qBAAa,2BAA4B,SAAQ,eAAgB,YAAW,sBAAsB;;IAK3F,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;CASvE"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WavespeedAIImageToImageTask = exports.WavespeedAITextToVideoTask = exports.WavespeedAITextToImageTask = void 0;
|
|
4
|
+
const delay_js_1 = require("../utils/delay.js");
|
|
5
|
+
const omit_js_1 = require("../utils/omit.js");
|
|
6
|
+
const base64FromBytes_js_1 = require("../utils/base64FromBytes.js");
|
|
7
|
+
const providerHelper_js_1 = require("./providerHelper.js");
|
|
8
|
+
const errors_js_1 = require("../errors.js");
|
|
9
|
+
const WAVESPEEDAI_API_BASE_URL = "https://api.wavespeed.ai";
|
|
10
|
+
class WavespeedAITask extends providerHelper_js_1.TaskProviderHelper {
|
|
11
|
+
constructor(url) {
|
|
12
|
+
super("wavespeed", url || WAVESPEEDAI_API_BASE_URL);
|
|
13
|
+
}
|
|
14
|
+
makeRoute(params) {
|
|
15
|
+
return `/api/v3/${params.model}`;
|
|
16
|
+
}
|
|
17
|
+
preparePayload(params) {
|
|
18
|
+
const payload = {
|
|
19
|
+
...(0, omit_js_1.omit)(params.args, ["inputs", "parameters"]),
|
|
20
|
+
...params.args.parameters,
|
|
21
|
+
prompt: params.args.inputs,
|
|
22
|
+
};
|
|
23
|
+
// Add LoRA support if adapter is specified in the mapping
|
|
24
|
+
if (params.mapping?.adapter === "lora") {
|
|
25
|
+
payload.loras = [
|
|
26
|
+
{
|
|
27
|
+
path: params.mapping.hfModelId,
|
|
28
|
+
scale: 1, // Default scale value
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
return payload;
|
|
33
|
+
}
|
|
34
|
+
async getResponse(response, url, headers) {
|
|
35
|
+
if (!headers) {
|
|
36
|
+
throw new errors_js_1.InferenceClientInputError("Headers are required for WaveSpeed AI API calls");
|
|
37
|
+
}
|
|
38
|
+
const resultUrl = response.data.urls.get;
|
|
39
|
+
// Poll for results until completion
|
|
40
|
+
while (true) {
|
|
41
|
+
const resultResponse = await fetch(resultUrl, { headers });
|
|
42
|
+
if (!resultResponse.ok) {
|
|
43
|
+
throw new errors_js_1.InferenceClientProviderApiError("Failed to fetch response status from WaveSpeed AI API", { url: resultUrl, method: "GET" }, {
|
|
44
|
+
requestId: resultResponse.headers.get("x-request-id") ?? "",
|
|
45
|
+
status: resultResponse.status,
|
|
46
|
+
body: await resultResponse.text(),
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
const result = await resultResponse.json();
|
|
50
|
+
const taskResult = result.data;
|
|
51
|
+
switch (taskResult.status) {
|
|
52
|
+
case "completed": {
|
|
53
|
+
// Get the media data from the first output URL
|
|
54
|
+
if (!taskResult.outputs?.[0]) {
|
|
55
|
+
throw new errors_js_1.InferenceClientProviderOutputError("Received malformed response from WaveSpeed AI API: No output URL in completed response");
|
|
56
|
+
}
|
|
57
|
+
const mediaResponse = await fetch(taskResult.outputs[0]);
|
|
58
|
+
if (!mediaResponse.ok) {
|
|
59
|
+
throw new errors_js_1.InferenceClientProviderApiError("Failed to fetch generation output from WaveSpeed AI API", { url: taskResult.outputs[0], method: "GET" }, {
|
|
60
|
+
requestId: mediaResponse.headers.get("x-request-id") ?? "",
|
|
61
|
+
status: mediaResponse.status,
|
|
62
|
+
body: await mediaResponse.text(),
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return await mediaResponse.blob();
|
|
66
|
+
}
|
|
67
|
+
case "failed": {
|
|
68
|
+
throw new errors_js_1.InferenceClientProviderOutputError(taskResult.error || "Task failed");
|
|
69
|
+
}
|
|
70
|
+
default: {
|
|
71
|
+
// Wait before polling again
|
|
72
|
+
await (0, delay_js_1.delay)(500);
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
class WavespeedAITextToImageTask extends WavespeedAITask {
|
|
80
|
+
constructor() {
|
|
81
|
+
super(WAVESPEEDAI_API_BASE_URL);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.WavespeedAITextToImageTask = WavespeedAITextToImageTask;
|
|
85
|
+
class WavespeedAITextToVideoTask extends WavespeedAITask {
|
|
86
|
+
constructor() {
|
|
87
|
+
super(WAVESPEEDAI_API_BASE_URL);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.WavespeedAITextToVideoTask = WavespeedAITextToVideoTask;
|
|
91
|
+
class WavespeedAIImageToImageTask extends WavespeedAITask {
|
|
92
|
+
constructor() {
|
|
93
|
+
super(WAVESPEEDAI_API_BASE_URL);
|
|
94
|
+
}
|
|
95
|
+
async preparePayloadAsync(args) {
|
|
96
|
+
return {
|
|
97
|
+
...args,
|
|
98
|
+
inputs: args.parameters?.prompt,
|
|
99
|
+
image: (0, base64FromBytes_js_1.base64FromBytes)(new Uint8Array(args.inputs instanceof ArrayBuffer ? args.inputs : await args.inputs.arrayBuffer())),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.WavespeedAIImageToImageTask = WavespeedAIImageToImageTask;
|
package/dist/commonjs/types.d.ts
CHANGED
|
@@ -36,10 +36,16 @@ export interface Options {
|
|
|
36
36
|
billTo?: string;
|
|
37
37
|
}
|
|
38
38
|
export type InferenceTask = Exclude<PipelineType, "other"> | "conversational";
|
|
39
|
-
export declare const INFERENCE_PROVIDERS: readonly ["baseten", "black-forest-labs", "cerebras", "clarifai", "cohere", "fal-ai", "featherless-ai", "fireworks-ai", "groq", "hf-inference", "hyperbolic", "nebius", "novita", "nscale", "openai", "ovhcloud", "publicai", "replicate", "sambanova", "scaleway", "together", "zai-org"];
|
|
40
|
-
export declare const PROVIDERS_OR_POLICIES: readonly ["baseten", "black-forest-labs", "cerebras", "clarifai", "cohere", "fal-ai", "featherless-ai", "fireworks-ai", "groq", "hf-inference", "hyperbolic", "nebius", "novita", "nscale", "openai", "ovhcloud", "publicai", "replicate", "sambanova", "scaleway", "together", "zai-org", "auto"];
|
|
39
|
+
export declare const INFERENCE_PROVIDERS: readonly ["baseten", "black-forest-labs", "cerebras", "clarifai", "cohere", "fal-ai", "featherless-ai", "fireworks-ai", "groq", "hf-inference", "hyperbolic", "nebius", "novita", "nscale", "openai", "ovhcloud", "publicai", "replicate", "sambanova", "scaleway", "together", "wavespeed", "zai-org"];
|
|
40
|
+
export declare const PROVIDERS_OR_POLICIES: readonly ["baseten", "black-forest-labs", "cerebras", "clarifai", "cohere", "fal-ai", "featherless-ai", "fireworks-ai", "groq", "hf-inference", "hyperbolic", "nebius", "novita", "nscale", "openai", "ovhcloud", "publicai", "replicate", "sambanova", "scaleway", "together", "wavespeed", "zai-org", "auto"];
|
|
41
41
|
export type InferenceProvider = (typeof INFERENCE_PROVIDERS)[number];
|
|
42
42
|
export type InferenceProviderOrPolicy = (typeof PROVIDERS_OR_POLICIES)[number];
|
|
43
|
+
/**
|
|
44
|
+
* The org namespace on the HF Hub i.e. hf.co/…
|
|
45
|
+
*
|
|
46
|
+
* Whenever possible, InferenceProvider should == org namespace
|
|
47
|
+
*/
|
|
48
|
+
export declare const PROVIDERS_HUB_ORGS: Record<InferenceProvider, string>;
|
|
43
49
|
export interface InferenceProviderMappingEntry {
|
|
44
50
|
adapter?: string;
|
|
45
51
|
adapterWeightsPath?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAExF;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,MAAM;IACtB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACrD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACrD,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,OAAO;IACvB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEtC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,gBAAgB,CAAC;AAE9E,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/commonjs/types.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PROVIDERS_OR_POLICIES = exports.INFERENCE_PROVIDERS = void 0;
|
|
3
|
+
exports.PROVIDERS_HUB_ORGS = exports.PROVIDERS_OR_POLICIES = exports.INFERENCE_PROVIDERS = void 0;
|
|
4
4
|
exports.INFERENCE_PROVIDERS = [
|
|
5
5
|
"baseten",
|
|
6
6
|
"black-forest-labs",
|
|
@@ -23,6 +23,37 @@ exports.INFERENCE_PROVIDERS = [
|
|
|
23
23
|
"sambanova",
|
|
24
24
|
"scaleway",
|
|
25
25
|
"together",
|
|
26
|
+
"wavespeed",
|
|
26
27
|
"zai-org",
|
|
27
28
|
];
|
|
28
29
|
exports.PROVIDERS_OR_POLICIES = [...exports.INFERENCE_PROVIDERS, "auto"];
|
|
30
|
+
/**
|
|
31
|
+
* The org namespace on the HF Hub i.e. hf.co/…
|
|
32
|
+
*
|
|
33
|
+
* Whenever possible, InferenceProvider should == org namespace
|
|
34
|
+
*/
|
|
35
|
+
exports.PROVIDERS_HUB_ORGS = {
|
|
36
|
+
baseten: "baseten",
|
|
37
|
+
"black-forest-labs": "black-forest-labs",
|
|
38
|
+
cerebras: "cerebras",
|
|
39
|
+
clarifai: "clarifai",
|
|
40
|
+
cohere: "CohereLabs",
|
|
41
|
+
"fal-ai": "fal",
|
|
42
|
+
"featherless-ai": "featherless-ai",
|
|
43
|
+
"fireworks-ai": "fireworks-ai",
|
|
44
|
+
groq: "groq",
|
|
45
|
+
"hf-inference": "hf-inference",
|
|
46
|
+
hyperbolic: "Hyperbolic",
|
|
47
|
+
nebius: "nebius",
|
|
48
|
+
novita: "novita",
|
|
49
|
+
nscale: "nscale",
|
|
50
|
+
openai: "openai",
|
|
51
|
+
ovhcloud: "ovhcloud",
|
|
52
|
+
publicai: "publicai",
|
|
53
|
+
replicate: "replicate",
|
|
54
|
+
sambanova: "sambanovasystems",
|
|
55
|
+
scaleway: "scaleway",
|
|
56
|
+
together: "togethercomputer",
|
|
57
|
+
wavespeed: "wavespeed",
|
|
58
|
+
"zai-org": "zai-org",
|
|
59
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getProviderHelper.d.ts","sourceRoot":"","sources":["../../../src/lib/getProviderHelper.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACX,6BAA6B,EAC7B,sBAAsB,EACtB,oCAAoC,EACpC,wBAAwB,EACxB,mCAAmC,EACnC,2BAA2B,EAC3B,kBAAkB,EAClB,6BAA6B,EAC7B,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,uBAAuB,EACvB,gCAAgC,EAChC,+BAA+B,EAC/B,2BAA2B,EAC3B,kBAAkB,EAClB,4BAA4B,EAC5B,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,6BAA6B,EAC7B,qBAAqB,EACrB,iCAAiC,EACjC,gCAAgC,EAChC,qCAAqC,EACrC,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"getProviderHelper.d.ts","sourceRoot":"","sources":["../../../src/lib/getProviderHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ import * as Replicate from "../providers/replicate.js";
|
|
|
19
19
|
import * as Sambanova from "../providers/sambanova.js";
|
|
20
20
|
import * as Scaleway from "../providers/scaleway.js";
|
|
21
21
|
import * as Together from "../providers/together.js";
|
|
22
|
+
import * as Wavespeed from "../providers/wavespeed.js";
|
|
22
23
|
import * as Zai from "../providers/zai-org.js";
|
|
23
24
|
import { InferenceClientInputError } from "../errors.js";
|
|
24
25
|
export const PROVIDERS = {
|
|
@@ -138,6 +139,11 @@ export const PROVIDERS = {
|
|
|
138
139
|
conversational: new Together.TogetherConversationalTask(),
|
|
139
140
|
"text-generation": new Together.TogetherTextGenerationTask(),
|
|
140
141
|
},
|
|
142
|
+
wavespeed: {
|
|
143
|
+
"text-to-image": new Wavespeed.WavespeedAITextToImageTask(),
|
|
144
|
+
"text-to-video": new Wavespeed.WavespeedAITextToVideoTask(),
|
|
145
|
+
"image-to-image": new Wavespeed.WavespeedAIImageToImageTask(),
|
|
146
|
+
},
|
|
141
147
|
"zai-org": {
|
|
142
148
|
conversational: new Zai.ZaiConversationalTask(),
|
|
143
149
|
},
|
package/dist/esm/package.d.ts
CHANGED
package/dist/esm/package.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Generated file from package.json. Issues importing JSON directly when publishing on commonjs/ESM - see https://github.com/microsoft/TypeScript/issues/51783
|
|
2
|
-
export const PACKAGE_VERSION = "4.11.
|
|
2
|
+
export const PACKAGE_VERSION = "4.11.3";
|
|
3
3
|
export const PACKAGE_NAME = "@huggingface/inference";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../../src/providers/consts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,EAAE,MAAM,CACrD,iBAAiB,EACjB,MAAM,CAAC,OAAO,EAAE,6BAA6B,CAAC,
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../../src/providers/consts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,EAAE,MAAM,CACrD,iBAAiB,EACjB,MAAM,CAAC,OAAO,EAAE,6BAA6B,CAAC,CA+B9C,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { TextToImageArgs } from "../tasks/cv/textToImage.js";
|
|
2
|
+
import type { ImageToImageArgs } from "../tasks/cv/imageToImage.js";
|
|
3
|
+
import type { TextToVideoArgs } from "../tasks/cv/textToVideo.js";
|
|
4
|
+
import type { BodyParams, RequestArgs, UrlParams } from "../types.js";
|
|
5
|
+
import type { TextToImageTaskHelper, TextToVideoTaskHelper, ImageToImageTaskHelper } from "./providerHelper.js";
|
|
6
|
+
import { TaskProviderHelper } from "./providerHelper.js";
|
|
7
|
+
/**
|
|
8
|
+
* Response structure for initial task submission
|
|
9
|
+
*/
|
|
10
|
+
interface WaveSpeedAISubmitResponse {
|
|
11
|
+
id: string;
|
|
12
|
+
urls: {
|
|
13
|
+
get: string;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Response structure for WaveSpeed AI API with submit response data
|
|
18
|
+
*/
|
|
19
|
+
interface WaveSpeedAISubmitTaskResponse {
|
|
20
|
+
code: number;
|
|
21
|
+
message: string;
|
|
22
|
+
data: WaveSpeedAISubmitResponse;
|
|
23
|
+
}
|
|
24
|
+
declare abstract class WavespeedAITask extends TaskProviderHelper {
|
|
25
|
+
constructor(url?: string);
|
|
26
|
+
makeRoute(params: UrlParams): string;
|
|
27
|
+
preparePayload(params: BodyParams<ImageToImageArgs | TextToImageArgs | TextToVideoArgs>): Record<string, unknown>;
|
|
28
|
+
getResponse(response: WaveSpeedAISubmitTaskResponse, url?: string, headers?: Record<string, string>): Promise<Blob>;
|
|
29
|
+
}
|
|
30
|
+
export declare class WavespeedAITextToImageTask extends WavespeedAITask implements TextToImageTaskHelper {
|
|
31
|
+
constructor();
|
|
32
|
+
}
|
|
33
|
+
export declare class WavespeedAITextToVideoTask extends WavespeedAITask implements TextToVideoTaskHelper {
|
|
34
|
+
constructor();
|
|
35
|
+
}
|
|
36
|
+
export declare class WavespeedAIImageToImageTask extends WavespeedAITask implements ImageToImageTaskHelper {
|
|
37
|
+
constructor();
|
|
38
|
+
preparePayloadAsync(args: ImageToImageArgs): Promise<RequestArgs>;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=wavespeed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wavespeed.d.ts","sourceRoot":"","sources":["../../../src/providers/wavespeed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAItE,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAChH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AA6BzD;;GAEG;AACH,UAAU,yBAAyB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;KACZ,CAAC;CACF;AAWD;;GAEG;AACH,UAAU,6BAA6B;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,yBAAyB,CAAC;CAChC;AAED,uBAAe,eAAgB,SAAQ,kBAAkB;gBAC5C,GAAG,CAAC,EAAE,MAAM;IAIxB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAIpC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,gBAAgB,GAAG,eAAe,GAAG,eAAe,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAkBlG,WAAW,CACzB,QAAQ,EAAE,6BAA6B,EACvC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;CA4DhB;AAED,qBAAa,0BAA2B,SAAQ,eAAgB,YAAW,qBAAqB;;CAI/F;AAED,qBAAa,0BAA2B,SAAQ,eAAgB,YAAW,qBAAqB;;CAI/F;AAED,qBAAa,2BAA4B,SAAQ,eAAgB,YAAW,sBAAsB;;IAK3F,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;CASvE"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { delay } from "../utils/delay.js";
|
|
2
|
+
import { omit } from "../utils/omit.js";
|
|
3
|
+
import { base64FromBytes } from "../utils/base64FromBytes.js";
|
|
4
|
+
import { TaskProviderHelper } from "./providerHelper.js";
|
|
5
|
+
import { InferenceClientInputError, InferenceClientProviderApiError, InferenceClientProviderOutputError, } from "../errors.js";
|
|
6
|
+
const WAVESPEEDAI_API_BASE_URL = "https://api.wavespeed.ai";
|
|
7
|
+
class WavespeedAITask extends TaskProviderHelper {
|
|
8
|
+
constructor(url) {
|
|
9
|
+
super("wavespeed", url || WAVESPEEDAI_API_BASE_URL);
|
|
10
|
+
}
|
|
11
|
+
makeRoute(params) {
|
|
12
|
+
return `/api/v3/${params.model}`;
|
|
13
|
+
}
|
|
14
|
+
preparePayload(params) {
|
|
15
|
+
const payload = {
|
|
16
|
+
...omit(params.args, ["inputs", "parameters"]),
|
|
17
|
+
...params.args.parameters,
|
|
18
|
+
prompt: params.args.inputs,
|
|
19
|
+
};
|
|
20
|
+
// Add LoRA support if adapter is specified in the mapping
|
|
21
|
+
if (params.mapping?.adapter === "lora") {
|
|
22
|
+
payload.loras = [
|
|
23
|
+
{
|
|
24
|
+
path: params.mapping.hfModelId,
|
|
25
|
+
scale: 1, // Default scale value
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
}
|
|
29
|
+
return payload;
|
|
30
|
+
}
|
|
31
|
+
async getResponse(response, url, headers) {
|
|
32
|
+
if (!headers) {
|
|
33
|
+
throw new InferenceClientInputError("Headers are required for WaveSpeed AI API calls");
|
|
34
|
+
}
|
|
35
|
+
const resultUrl = response.data.urls.get;
|
|
36
|
+
// Poll for results until completion
|
|
37
|
+
while (true) {
|
|
38
|
+
const resultResponse = await fetch(resultUrl, { headers });
|
|
39
|
+
if (!resultResponse.ok) {
|
|
40
|
+
throw new InferenceClientProviderApiError("Failed to fetch response status from WaveSpeed AI API", { url: resultUrl, method: "GET" }, {
|
|
41
|
+
requestId: resultResponse.headers.get("x-request-id") ?? "",
|
|
42
|
+
status: resultResponse.status,
|
|
43
|
+
body: await resultResponse.text(),
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
const result = await resultResponse.json();
|
|
47
|
+
const taskResult = result.data;
|
|
48
|
+
switch (taskResult.status) {
|
|
49
|
+
case "completed": {
|
|
50
|
+
// Get the media data from the first output URL
|
|
51
|
+
if (!taskResult.outputs?.[0]) {
|
|
52
|
+
throw new InferenceClientProviderOutputError("Received malformed response from WaveSpeed AI API: No output URL in completed response");
|
|
53
|
+
}
|
|
54
|
+
const mediaResponse = await fetch(taskResult.outputs[0]);
|
|
55
|
+
if (!mediaResponse.ok) {
|
|
56
|
+
throw new InferenceClientProviderApiError("Failed to fetch generation output from WaveSpeed AI API", { url: taskResult.outputs[0], method: "GET" }, {
|
|
57
|
+
requestId: mediaResponse.headers.get("x-request-id") ?? "",
|
|
58
|
+
status: mediaResponse.status,
|
|
59
|
+
body: await mediaResponse.text(),
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return await mediaResponse.blob();
|
|
63
|
+
}
|
|
64
|
+
case "failed": {
|
|
65
|
+
throw new InferenceClientProviderOutputError(taskResult.error || "Task failed");
|
|
66
|
+
}
|
|
67
|
+
default: {
|
|
68
|
+
// Wait before polling again
|
|
69
|
+
await delay(500);
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export class WavespeedAITextToImageTask extends WavespeedAITask {
|
|
77
|
+
constructor() {
|
|
78
|
+
super(WAVESPEEDAI_API_BASE_URL);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
export class WavespeedAITextToVideoTask extends WavespeedAITask {
|
|
82
|
+
constructor() {
|
|
83
|
+
super(WAVESPEEDAI_API_BASE_URL);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
export class WavespeedAIImageToImageTask extends WavespeedAITask {
|
|
87
|
+
constructor() {
|
|
88
|
+
super(WAVESPEEDAI_API_BASE_URL);
|
|
89
|
+
}
|
|
90
|
+
async preparePayloadAsync(args) {
|
|
91
|
+
return {
|
|
92
|
+
...args,
|
|
93
|
+
inputs: args.parameters?.prompt,
|
|
94
|
+
image: base64FromBytes(new Uint8Array(args.inputs instanceof ArrayBuffer ? args.inputs : await args.inputs.arrayBuffer())),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -36,10 +36,16 @@ export interface Options {
|
|
|
36
36
|
billTo?: string;
|
|
37
37
|
}
|
|
38
38
|
export type InferenceTask = Exclude<PipelineType, "other"> | "conversational";
|
|
39
|
-
export declare const INFERENCE_PROVIDERS: readonly ["baseten", "black-forest-labs", "cerebras", "clarifai", "cohere", "fal-ai", "featherless-ai", "fireworks-ai", "groq", "hf-inference", "hyperbolic", "nebius", "novita", "nscale", "openai", "ovhcloud", "publicai", "replicate", "sambanova", "scaleway", "together", "zai-org"];
|
|
40
|
-
export declare const PROVIDERS_OR_POLICIES: readonly ["baseten", "black-forest-labs", "cerebras", "clarifai", "cohere", "fal-ai", "featherless-ai", "fireworks-ai", "groq", "hf-inference", "hyperbolic", "nebius", "novita", "nscale", "openai", "ovhcloud", "publicai", "replicate", "sambanova", "scaleway", "together", "zai-org", "auto"];
|
|
39
|
+
export declare const INFERENCE_PROVIDERS: readonly ["baseten", "black-forest-labs", "cerebras", "clarifai", "cohere", "fal-ai", "featherless-ai", "fireworks-ai", "groq", "hf-inference", "hyperbolic", "nebius", "novita", "nscale", "openai", "ovhcloud", "publicai", "replicate", "sambanova", "scaleway", "together", "wavespeed", "zai-org"];
|
|
40
|
+
export declare const PROVIDERS_OR_POLICIES: readonly ["baseten", "black-forest-labs", "cerebras", "clarifai", "cohere", "fal-ai", "featherless-ai", "fireworks-ai", "groq", "hf-inference", "hyperbolic", "nebius", "novita", "nscale", "openai", "ovhcloud", "publicai", "replicate", "sambanova", "scaleway", "together", "wavespeed", "zai-org", "auto"];
|
|
41
41
|
export type InferenceProvider = (typeof INFERENCE_PROVIDERS)[number];
|
|
42
42
|
export type InferenceProviderOrPolicy = (typeof PROVIDERS_OR_POLICIES)[number];
|
|
43
|
+
/**
|
|
44
|
+
* The org namespace on the HF Hub i.e. hf.co/…
|
|
45
|
+
*
|
|
46
|
+
* Whenever possible, InferenceProvider should == org namespace
|
|
47
|
+
*/
|
|
48
|
+
export declare const PROVIDERS_HUB_ORGS: Record<InferenceProvider, string>;
|
|
43
49
|
export interface InferenceProviderMappingEntry {
|
|
44
50
|
adapter?: string;
|
|
45
51
|
adapterWeightsPath?: string;
|
package/dist/esm/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAExF;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,MAAM;IACtB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACrD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACrD,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,OAAO;IACvB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEtC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,gBAAgB,CAAC;AAE9E,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/types.js
CHANGED
|
@@ -20,6 +20,37 @@ export const INFERENCE_PROVIDERS = [
|
|
|
20
20
|
"sambanova",
|
|
21
21
|
"scaleway",
|
|
22
22
|
"together",
|
|
23
|
+
"wavespeed",
|
|
23
24
|
"zai-org",
|
|
24
25
|
];
|
|
25
26
|
export const PROVIDERS_OR_POLICIES = [...INFERENCE_PROVIDERS, "auto"];
|
|
27
|
+
/**
|
|
28
|
+
* The org namespace on the HF Hub i.e. hf.co/…
|
|
29
|
+
*
|
|
30
|
+
* Whenever possible, InferenceProvider should == org namespace
|
|
31
|
+
*/
|
|
32
|
+
export const PROVIDERS_HUB_ORGS = {
|
|
33
|
+
baseten: "baseten",
|
|
34
|
+
"black-forest-labs": "black-forest-labs",
|
|
35
|
+
cerebras: "cerebras",
|
|
36
|
+
clarifai: "clarifai",
|
|
37
|
+
cohere: "CohereLabs",
|
|
38
|
+
"fal-ai": "fal",
|
|
39
|
+
"featherless-ai": "featherless-ai",
|
|
40
|
+
"fireworks-ai": "fireworks-ai",
|
|
41
|
+
groq: "groq",
|
|
42
|
+
"hf-inference": "hf-inference",
|
|
43
|
+
hyperbolic: "Hyperbolic",
|
|
44
|
+
nebius: "nebius",
|
|
45
|
+
novita: "novita",
|
|
46
|
+
nscale: "nscale",
|
|
47
|
+
openai: "openai",
|
|
48
|
+
ovhcloud: "ovhcloud",
|
|
49
|
+
publicai: "publicai",
|
|
50
|
+
replicate: "replicate",
|
|
51
|
+
sambanova: "sambanovasystems",
|
|
52
|
+
scaleway: "scaleway",
|
|
53
|
+
together: "togethercomputer",
|
|
54
|
+
wavespeed: "wavespeed",
|
|
55
|
+
"zai-org": "zai-org",
|
|
56
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@huggingface/inference",
|
|
3
|
-
"version": "4.11.
|
|
3
|
+
"version": "4.11.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "Hugging Face and Tim Mikeladze <tim.mikeladze@gmail.com>",
|
|
6
6
|
"description": "Typescript client for the Hugging Face Inference Providers and Inference Endpoints",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
},
|
|
41
41
|
"type": "module",
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@huggingface/tasks": "^0.19.
|
|
43
|
+
"@huggingface/tasks": "^0.19.52",
|
|
44
44
|
"@huggingface/jinja": "^0.5.1"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
@@ -52,6 +52,7 @@ import * as Replicate from "../providers/replicate.js";
|
|
|
52
52
|
import * as Sambanova from "../providers/sambanova.js";
|
|
53
53
|
import * as Scaleway from "../providers/scaleway.js";
|
|
54
54
|
import * as Together from "../providers/together.js";
|
|
55
|
+
import * as Wavespeed from "../providers/wavespeed.js";
|
|
55
56
|
import * as Zai from "../providers/zai-org.js";
|
|
56
57
|
import type { InferenceProvider, InferenceProviderOrPolicy, InferenceTask } from "../types.js";
|
|
57
58
|
import { InferenceClientInputError } from "../errors.js";
|
|
@@ -173,6 +174,11 @@ export const PROVIDERS: Record<InferenceProvider, Partial<Record<InferenceTask,
|
|
|
173
174
|
conversational: new Together.TogetherConversationalTask(),
|
|
174
175
|
"text-generation": new Together.TogetherTextGenerationTask(),
|
|
175
176
|
},
|
|
177
|
+
wavespeed: {
|
|
178
|
+
"text-to-image": new Wavespeed.WavespeedAITextToImageTask(),
|
|
179
|
+
"text-to-video": new Wavespeed.WavespeedAITextToVideoTask(),
|
|
180
|
+
"image-to-image": new Wavespeed.WavespeedAIImageToImageTask(),
|
|
181
|
+
},
|
|
176
182
|
"zai-org": {
|
|
177
183
|
conversational: new Zai.ZaiConversationalTask(),
|
|
178
184
|
},
|
package/src/package.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Generated file from package.json. Issues importing JSON directly when publishing on commonjs/ESM - see https://github.com/microsoft/TypeScript/issues/51783
|
|
2
|
-
export const PACKAGE_VERSION = "4.11.
|
|
2
|
+
export const PACKAGE_VERSION = "4.11.3";
|
|
3
3
|
export const PACKAGE_NAME = "@huggingface/inference";
|
package/src/providers/consts.ts
CHANGED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import type { TextToImageArgs } from "../tasks/cv/textToImage.js";
|
|
2
|
+
import type { ImageToImageArgs } from "../tasks/cv/imageToImage.js";
|
|
3
|
+
import type { TextToVideoArgs } from "../tasks/cv/textToVideo.js";
|
|
4
|
+
import type { BodyParams, RequestArgs, UrlParams } from "../types.js";
|
|
5
|
+
import { delay } from "../utils/delay.js";
|
|
6
|
+
import { omit } from "../utils/omit.js";
|
|
7
|
+
import { base64FromBytes } from "../utils/base64FromBytes.js";
|
|
8
|
+
import type { TextToImageTaskHelper, TextToVideoTaskHelper, ImageToImageTaskHelper } from "./providerHelper.js";
|
|
9
|
+
import { TaskProviderHelper } from "./providerHelper.js";
|
|
10
|
+
import {
|
|
11
|
+
InferenceClientInputError,
|
|
12
|
+
InferenceClientProviderApiError,
|
|
13
|
+
InferenceClientProviderOutputError,
|
|
14
|
+
} from "../errors.js";
|
|
15
|
+
|
|
16
|
+
const WAVESPEEDAI_API_BASE_URL = "https://api.wavespeed.ai";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Response structure for task status and results
|
|
20
|
+
*/
|
|
21
|
+
interface WaveSpeedAITaskResponse {
|
|
22
|
+
id: string;
|
|
23
|
+
model: string;
|
|
24
|
+
outputs: string[];
|
|
25
|
+
urls: {
|
|
26
|
+
get: string;
|
|
27
|
+
};
|
|
28
|
+
has_nsfw_contents: boolean[];
|
|
29
|
+
status: "created" | "processing" | "completed" | "failed";
|
|
30
|
+
created_at: string;
|
|
31
|
+
error: string;
|
|
32
|
+
executionTime: number;
|
|
33
|
+
timings: {
|
|
34
|
+
inference: number;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Response structure for initial task submission
|
|
40
|
+
*/
|
|
41
|
+
interface WaveSpeedAISubmitResponse {
|
|
42
|
+
id: string;
|
|
43
|
+
urls: {
|
|
44
|
+
get: string;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Response structure for WaveSpeed AI API
|
|
50
|
+
*/
|
|
51
|
+
interface WaveSpeedAIResponse {
|
|
52
|
+
code: number;
|
|
53
|
+
message: string;
|
|
54
|
+
data: WaveSpeedAITaskResponse;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Response structure for WaveSpeed AI API with submit response data
|
|
59
|
+
*/
|
|
60
|
+
interface WaveSpeedAISubmitTaskResponse {
|
|
61
|
+
code: number;
|
|
62
|
+
message: string;
|
|
63
|
+
data: WaveSpeedAISubmitResponse;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
abstract class WavespeedAITask extends TaskProviderHelper {
|
|
67
|
+
constructor(url?: string) {
|
|
68
|
+
super("wavespeed", url || WAVESPEEDAI_API_BASE_URL);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
makeRoute(params: UrlParams): string {
|
|
72
|
+
return `/api/v3/${params.model}`;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
preparePayload(params: BodyParams<ImageToImageArgs | TextToImageArgs | TextToVideoArgs>): Record<string, unknown> {
|
|
76
|
+
const payload: Record<string, unknown> = {
|
|
77
|
+
...omit(params.args, ["inputs", "parameters"]),
|
|
78
|
+
...params.args.parameters,
|
|
79
|
+
prompt: params.args.inputs,
|
|
80
|
+
};
|
|
81
|
+
// Add LoRA support if adapter is specified in the mapping
|
|
82
|
+
if (params.mapping?.adapter === "lora") {
|
|
83
|
+
payload.loras = [
|
|
84
|
+
{
|
|
85
|
+
path: params.mapping.hfModelId,
|
|
86
|
+
scale: 1, // Default scale value
|
|
87
|
+
},
|
|
88
|
+
];
|
|
89
|
+
}
|
|
90
|
+
return payload;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
override async getResponse(
|
|
94
|
+
response: WaveSpeedAISubmitTaskResponse,
|
|
95
|
+
url?: string,
|
|
96
|
+
headers?: Record<string, string>
|
|
97
|
+
): Promise<Blob> {
|
|
98
|
+
if (!headers) {
|
|
99
|
+
throw new InferenceClientInputError("Headers are required for WaveSpeed AI API calls");
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
const resultUrl = response.data.urls.get;
|
|
103
|
+
|
|
104
|
+
// Poll for results until completion
|
|
105
|
+
while (true) {
|
|
106
|
+
const resultResponse = await fetch(resultUrl, { headers });
|
|
107
|
+
|
|
108
|
+
if (!resultResponse.ok) {
|
|
109
|
+
throw new InferenceClientProviderApiError(
|
|
110
|
+
"Failed to fetch response status from WaveSpeed AI API",
|
|
111
|
+
{ url: resultUrl, method: "GET" },
|
|
112
|
+
{
|
|
113
|
+
requestId: resultResponse.headers.get("x-request-id") ?? "",
|
|
114
|
+
status: resultResponse.status,
|
|
115
|
+
body: await resultResponse.text(),
|
|
116
|
+
}
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const result: WaveSpeedAIResponse = await resultResponse.json();
|
|
121
|
+
const taskResult = result.data;
|
|
122
|
+
|
|
123
|
+
switch (taskResult.status) {
|
|
124
|
+
case "completed": {
|
|
125
|
+
// Get the media data from the first output URL
|
|
126
|
+
if (!taskResult.outputs?.[0]) {
|
|
127
|
+
throw new InferenceClientProviderOutputError(
|
|
128
|
+
"Received malformed response from WaveSpeed AI API: No output URL in completed response"
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
const mediaResponse = await fetch(taskResult.outputs[0]);
|
|
132
|
+
if (!mediaResponse.ok) {
|
|
133
|
+
throw new InferenceClientProviderApiError(
|
|
134
|
+
"Failed to fetch generation output from WaveSpeed AI API",
|
|
135
|
+
{ url: taskResult.outputs[0], method: "GET" },
|
|
136
|
+
{
|
|
137
|
+
requestId: mediaResponse.headers.get("x-request-id") ?? "",
|
|
138
|
+
status: mediaResponse.status,
|
|
139
|
+
body: await mediaResponse.text(),
|
|
140
|
+
}
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
return await mediaResponse.blob();
|
|
144
|
+
}
|
|
145
|
+
case "failed": {
|
|
146
|
+
throw new InferenceClientProviderOutputError(taskResult.error || "Task failed");
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
default: {
|
|
150
|
+
// Wait before polling again
|
|
151
|
+
await delay(500);
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export class WavespeedAITextToImageTask extends WavespeedAITask implements TextToImageTaskHelper {
|
|
160
|
+
constructor() {
|
|
161
|
+
super(WAVESPEEDAI_API_BASE_URL);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export class WavespeedAITextToVideoTask extends WavespeedAITask implements TextToVideoTaskHelper {
|
|
166
|
+
constructor() {
|
|
167
|
+
super(WAVESPEEDAI_API_BASE_URL);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export class WavespeedAIImageToImageTask extends WavespeedAITask implements ImageToImageTaskHelper {
|
|
172
|
+
constructor() {
|
|
173
|
+
super(WAVESPEEDAI_API_BASE_URL);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
async preparePayloadAsync(args: ImageToImageArgs): Promise<RequestArgs> {
|
|
177
|
+
return {
|
|
178
|
+
...args,
|
|
179
|
+
inputs: args.parameters?.prompt,
|
|
180
|
+
image: base64FromBytes(
|
|
181
|
+
new Uint8Array(args.inputs instanceof ArrayBuffer ? args.inputs : await (args.inputs as Blob).arrayBuffer())
|
|
182
|
+
),
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
}
|
package/src/types.ts
CHANGED
|
@@ -66,6 +66,7 @@ export const INFERENCE_PROVIDERS = [
|
|
|
66
66
|
"sambanova",
|
|
67
67
|
"scaleway",
|
|
68
68
|
"together",
|
|
69
|
+
"wavespeed",
|
|
69
70
|
"zai-org",
|
|
70
71
|
] as const;
|
|
71
72
|
|
|
@@ -75,6 +76,37 @@ export type InferenceProvider = (typeof INFERENCE_PROVIDERS)[number];
|
|
|
75
76
|
|
|
76
77
|
export type InferenceProviderOrPolicy = (typeof PROVIDERS_OR_POLICIES)[number];
|
|
77
78
|
|
|
79
|
+
/**
|
|
80
|
+
* The org namespace on the HF Hub i.e. hf.co/…
|
|
81
|
+
*
|
|
82
|
+
* Whenever possible, InferenceProvider should == org namespace
|
|
83
|
+
*/
|
|
84
|
+
export const PROVIDERS_HUB_ORGS: Record<InferenceProvider, string> = {
|
|
85
|
+
baseten: "baseten",
|
|
86
|
+
"black-forest-labs": "black-forest-labs",
|
|
87
|
+
cerebras: "cerebras",
|
|
88
|
+
clarifai: "clarifai",
|
|
89
|
+
cohere: "CohereLabs",
|
|
90
|
+
"fal-ai": "fal",
|
|
91
|
+
"featherless-ai": "featherless-ai",
|
|
92
|
+
"fireworks-ai": "fireworks-ai",
|
|
93
|
+
groq: "groq",
|
|
94
|
+
"hf-inference": "hf-inference",
|
|
95
|
+
hyperbolic: "Hyperbolic",
|
|
96
|
+
nebius: "nebius",
|
|
97
|
+
novita: "novita",
|
|
98
|
+
nscale: "nscale",
|
|
99
|
+
openai: "openai",
|
|
100
|
+
ovhcloud: "ovhcloud",
|
|
101
|
+
publicai: "publicai",
|
|
102
|
+
replicate: "replicate",
|
|
103
|
+
sambanova: "sambanovasystems",
|
|
104
|
+
scaleway: "scaleway",
|
|
105
|
+
together: "togethercomputer",
|
|
106
|
+
wavespeed: "wavespeed",
|
|
107
|
+
"zai-org": "zai-org",
|
|
108
|
+
};
|
|
109
|
+
|
|
78
110
|
export interface InferenceProviderMappingEntry {
|
|
79
111
|
adapter?: string;
|
|
80
112
|
adapterWeightsPath?: string;
|