@huggingface/inference 3.14.0 → 4.0.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/README.md +104 -1
- package/dist/commonjs/errors.d.ts +46 -0
- package/dist/commonjs/errors.d.ts.map +1 -0
- package/dist/commonjs/errors.js +70 -0
- package/dist/commonjs/index.d.ts +1 -1
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +2 -3
- package/dist/commonjs/lib/getInferenceProviderMapping.d.ts.map +1 -1
- package/dist/commonjs/lib/getInferenceProviderMapping.js +27 -16
- package/dist/commonjs/lib/getProviderHelper.d.ts.map +1 -1
- package/dist/commonjs/lib/getProviderHelper.js +5 -3
- package/dist/commonjs/lib/makeRequestOptions.d.ts.map +1 -1
- package/dist/commonjs/lib/makeRequestOptions.js +12 -11
- package/dist/commonjs/package.d.ts +1 -1
- package/dist/commonjs/package.d.ts.map +1 -1
- package/dist/commonjs/package.js +1 -1
- package/dist/commonjs/providers/black-forest-labs.d.ts.map +1 -1
- package/dist/commonjs/providers/black-forest-labs.js +4 -4
- package/dist/commonjs/providers/fal-ai.d.ts.map +1 -1
- package/dist/commonjs/providers/fal-ai.js +29 -17
- package/dist/commonjs/providers/featherless-ai.d.ts.map +1 -1
- package/dist/commonjs/providers/featherless-ai.js +10 -4
- package/dist/commonjs/providers/hf-inference.d.ts.map +1 -1
- package/dist/commonjs/providers/hf-inference.js +27 -30
- package/dist/commonjs/providers/hyperbolic.d.ts.map +1 -1
- package/dist/commonjs/providers/hyperbolic.js +3 -3
- package/dist/commonjs/providers/nebius.d.ts.map +1 -1
- package/dist/commonjs/providers/nebius.js +2 -2
- package/dist/commonjs/providers/novita.d.ts +5 -6
- package/dist/commonjs/providers/novita.d.ts.map +1 -1
- package/dist/commonjs/providers/novita.js +66 -16
- package/dist/commonjs/providers/nscale.d.ts.map +1 -1
- package/dist/commonjs/providers/nscale.js +2 -2
- package/dist/commonjs/providers/ovhcloud.d.ts.map +1 -1
- package/dist/commonjs/providers/ovhcloud.js +2 -2
- package/dist/commonjs/providers/providerHelper.js +3 -3
- package/dist/commonjs/providers/replicate.js +4 -4
- package/dist/commonjs/providers/sambanova.d.ts +16 -0
- package/dist/commonjs/providers/sambanova.d.ts.map +1 -1
- package/dist/commonjs/providers/sambanova.js +2 -18
- package/dist/commonjs/providers/together.d.ts.map +1 -1
- package/dist/commonjs/providers/together.js +3 -3
- package/dist/commonjs/tasks/audio/automaticSpeechRecognition.d.ts.map +1 -1
- package/dist/commonjs/tasks/audio/automaticSpeechRecognition.js +2 -2
- package/dist/commonjs/utils/request.d.ts.map +1 -1
- package/dist/commonjs/utils/request.js +77 -12
- package/dist/commonjs/vendor/type-fest/basic.d.ts +33 -0
- package/dist/commonjs/vendor/type-fest/basic.d.ts.map +1 -0
- package/dist/commonjs/vendor/type-fest/basic.js +2 -0
- package/dist/esm/errors.d.ts +46 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/errors.js +62 -0
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/lib/getInferenceProviderMapping.d.ts.map +1 -1
- package/dist/esm/lib/getInferenceProviderMapping.js +27 -16
- package/dist/esm/lib/getProviderHelper.d.ts.map +1 -1
- package/dist/esm/lib/getProviderHelper.js +5 -3
- package/dist/esm/lib/makeRequestOptions.d.ts.map +1 -1
- package/dist/esm/lib/makeRequestOptions.js +12 -11
- package/dist/esm/package.d.ts +1 -1
- package/dist/esm/package.d.ts.map +1 -1
- package/dist/esm/package.js +1 -1
- package/dist/esm/providers/black-forest-labs.d.ts.map +1 -1
- package/dist/esm/providers/black-forest-labs.js +4 -4
- package/dist/esm/providers/fal-ai.d.ts.map +1 -1
- package/dist/esm/providers/fal-ai.js +29 -17
- package/dist/esm/providers/featherless-ai.d.ts.map +1 -1
- package/dist/esm/providers/featherless-ai.js +10 -4
- package/dist/esm/providers/hf-inference.d.ts.map +1 -1
- package/dist/esm/providers/hf-inference.js +27 -30
- package/dist/esm/providers/hyperbolic.d.ts.map +1 -1
- package/dist/esm/providers/hyperbolic.js +3 -3
- package/dist/esm/providers/nebius.d.ts.map +1 -1
- package/dist/esm/providers/nebius.js +2 -2
- package/dist/esm/providers/novita.d.ts +5 -6
- package/dist/esm/providers/novita.d.ts.map +1 -1
- package/dist/esm/providers/novita.js +66 -16
- package/dist/esm/providers/nscale.d.ts.map +1 -1
- package/dist/esm/providers/nscale.js +2 -2
- package/dist/esm/providers/ovhcloud.d.ts.map +1 -1
- package/dist/esm/providers/ovhcloud.js +2 -2
- package/dist/esm/providers/providerHelper.js +3 -3
- package/dist/esm/providers/replicate.js +4 -4
- package/dist/esm/providers/sambanova.d.ts +16 -0
- package/dist/esm/providers/sambanova.d.ts.map +1 -1
- package/dist/esm/providers/sambanova.js +2 -18
- package/dist/esm/providers/together.d.ts.map +1 -1
- package/dist/esm/providers/together.js +3 -3
- package/dist/esm/tasks/audio/automaticSpeechRecognition.d.ts.map +1 -1
- package/dist/esm/tasks/audio/automaticSpeechRecognition.js +2 -2
- package/dist/esm/utils/request.d.ts.map +1 -1
- package/dist/esm/utils/request.js +77 -12
- package/dist/esm/vendor/type-fest/basic.d.ts +33 -0
- package/dist/esm/vendor/type-fest/basic.d.ts.map +1 -0
- package/dist/esm/vendor/type-fest/basic.js +1 -0
- package/package.json +2 -2
- package/src/errors.ts +82 -0
- package/src/index.ts +1 -1
- package/src/lib/getInferenceProviderMapping.ts +42 -22
- package/src/lib/getProviderHelper.ts +9 -3
- package/src/lib/makeRequestOptions.ts +20 -11
- package/src/package.ts +1 -1
- package/src/providers/black-forest-labs.ts +14 -4
- package/src/providers/fal-ai.ts +59 -23
- package/src/providers/featherless-ai.ts +10 -4
- package/src/providers/hf-inference.ts +75 -34
- package/src/providers/hyperbolic.ts +3 -4
- package/src/providers/nebius.ts +2 -2
- package/src/providers/novita.ts +103 -23
- package/src/providers/nscale.ts +2 -2
- package/src/providers/ovhcloud.ts +2 -2
- package/src/providers/providerHelper.ts +3 -3
- package/src/providers/replicate.ts +4 -4
- package/src/providers/sambanova.ts +3 -4
- package/src/providers/together.ts +3 -3
- package/src/tasks/audio/automaticSpeechRecognition.ts +2 -2
- package/src/tasks/cv/textToVideo.ts +2 -2
- package/src/utils/request.ts +127 -14
- package/src/vendor/type-fest/basic.ts +31 -0
- package/src/vendor/type-fest/license-cc0 +121 -0
- package/src/vendor/type-fest/license-mit +9 -0
- package/dist/commonjs/lib/InferenceOutputError.d.ts +0 -4
- package/dist/commonjs/lib/InferenceOutputError.d.ts.map +0 -1
- package/dist/commonjs/lib/InferenceOutputError.js +0 -10
- package/dist/esm/lib/InferenceOutputError.d.ts +0 -4
- package/dist/esm/lib/InferenceOutputError.d.ts.map +0 -1
- package/dist/esm/lib/InferenceOutputError.js +0 -6
- package/src/lib/InferenceOutputError.ts +0 -8
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HF_ROUTER_URL } from "../config.js";
|
|
2
|
-
import {
|
|
2
|
+
import { InferenceClientProviderOutputError } from "../errors.js";
|
|
3
3
|
import { toArray } from "../utils/toArray.js";
|
|
4
4
|
import { TaskProviderHelper } from "./providerHelper.js";
|
|
5
5
|
import { base64FromBytes } from "../utils/base64FromBytes.js";
|
|
@@ -32,7 +32,7 @@ export class HFInferenceTask extends TaskProviderHelper {
|
|
|
32
32
|
export class HFInferenceTextToImageTask extends HFInferenceTask {
|
|
33
33
|
async getResponse(response, url, headers, outputType) {
|
|
34
34
|
if (!response) {
|
|
35
|
-
throw new
|
|
35
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference text-to-image API: response is undefined");
|
|
36
36
|
}
|
|
37
37
|
if (typeof response == "object") {
|
|
38
38
|
if ("data" in response && Array.isArray(response.data) && response.data[0].b64_json) {
|
|
@@ -59,7 +59,7 @@ export class HFInferenceTextToImageTask extends HFInferenceTask {
|
|
|
59
59
|
}
|
|
60
60
|
return response;
|
|
61
61
|
}
|
|
62
|
-
throw new
|
|
62
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference text-to-image API: expected a Blob");
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
export class HFInferenceConversationalTask extends HFInferenceTask {
|
|
@@ -96,19 +96,16 @@ export class HFInferenceTextGenerationTask extends HFInferenceTask {
|
|
|
96
96
|
if (Array.isArray(res) && res.every((x) => "generated_text" in x && typeof x?.generated_text === "string")) {
|
|
97
97
|
return res?.[0];
|
|
98
98
|
}
|
|
99
|
-
throw new
|
|
99
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference text generation API: expected Array<{generated_text: string}>");
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
export class HFInferenceAudioClassificationTask extends HFInferenceTask {
|
|
103
103
|
async getResponse(response) {
|
|
104
|
-
// Add type checking/validation for the 'unknown' input
|
|
105
104
|
if (Array.isArray(response) &&
|
|
106
105
|
response.every((x) => typeof x === "object" && x !== null && typeof x.label === "string" && typeof x.score === "number")) {
|
|
107
|
-
// If validation passes, it's safe to return as AudioClassificationOutput
|
|
108
106
|
return response;
|
|
109
107
|
}
|
|
110
|
-
|
|
111
|
-
throw new InferenceOutputError("Expected Array<{label: string, score: number}> but received different format");
|
|
108
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference audio-classification API: expected Array<{label: string, score: number}> but received different format");
|
|
112
109
|
}
|
|
113
110
|
}
|
|
114
111
|
export class HFInferenceAutomaticSpeechRecognitionTask extends HFInferenceTask {
|
|
@@ -127,7 +124,7 @@ export class HFInferenceAutomaticSpeechRecognitionTask extends HFInferenceTask {
|
|
|
127
124
|
export class HFInferenceAudioToAudioTask extends HFInferenceTask {
|
|
128
125
|
async getResponse(response) {
|
|
129
126
|
if (!Array.isArray(response)) {
|
|
130
|
-
throw new
|
|
127
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference audio-to-audio API: expected Array");
|
|
131
128
|
}
|
|
132
129
|
if (!response.every((elem) => {
|
|
133
130
|
return (typeof elem === "object" &&
|
|
@@ -139,7 +136,7 @@ export class HFInferenceAudioToAudioTask extends HFInferenceTask {
|
|
|
139
136
|
"blob" in elem &&
|
|
140
137
|
typeof elem.blob === "string");
|
|
141
138
|
})) {
|
|
142
|
-
throw new
|
|
139
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference audio-to-audio API: expected Array<{label: string, audio: Blob}>");
|
|
143
140
|
}
|
|
144
141
|
return response;
|
|
145
142
|
}
|
|
@@ -155,7 +152,7 @@ export class HFInferenceDocumentQuestionAnsweringTask extends HFInferenceTask {
|
|
|
155
152
|
(typeof elem.start === "number" || typeof elem.start === "undefined"))) {
|
|
156
153
|
return response[0];
|
|
157
154
|
}
|
|
158
|
-
throw new
|
|
155
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference document-question-answering API: expected Array<{answer: string, end: number, score: number, start: number}>");
|
|
159
156
|
}
|
|
160
157
|
}
|
|
161
158
|
export class HFInferenceFeatureExtractionTask extends HFInferenceTask {
|
|
@@ -173,7 +170,7 @@ export class HFInferenceFeatureExtractionTask extends HFInferenceTask {
|
|
|
173
170
|
if (Array.isArray(response) && isNumArrayRec(response, 3, 0)) {
|
|
174
171
|
return response;
|
|
175
172
|
}
|
|
176
|
-
throw new
|
|
173
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference feature-extraction API: expected Array<number[][][] | number[][] | number[] | number>");
|
|
177
174
|
}
|
|
178
175
|
}
|
|
179
176
|
export class HFInferenceImageClassificationTask extends HFInferenceTask {
|
|
@@ -181,7 +178,7 @@ export class HFInferenceImageClassificationTask extends HFInferenceTask {
|
|
|
181
178
|
if (Array.isArray(response) && response.every((x) => typeof x.label === "string" && typeof x.score === "number")) {
|
|
182
179
|
return response;
|
|
183
180
|
}
|
|
184
|
-
throw new
|
|
181
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference image-classification API: expected Array<{label: string, score: number}>");
|
|
185
182
|
}
|
|
186
183
|
}
|
|
187
184
|
export class HFInferenceImageSegmentationTask extends HFInferenceTask {
|
|
@@ -192,13 +189,13 @@ export class HFInferenceImageSegmentationTask extends HFInferenceTask {
|
|
|
192
189
|
(x.score === undefined || typeof x.score === "number"))) {
|
|
193
190
|
return response;
|
|
194
191
|
}
|
|
195
|
-
throw new
|
|
192
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference image-segmentation API: expected Array<{label: string, mask: string, score: number}>");
|
|
196
193
|
}
|
|
197
194
|
}
|
|
198
195
|
export class HFInferenceImageToTextTask extends HFInferenceTask {
|
|
199
196
|
async getResponse(response) {
|
|
200
197
|
if (typeof response?.generated_text !== "string") {
|
|
201
|
-
throw new
|
|
198
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference image-to-text API: expected {generated_text: string}");
|
|
202
199
|
}
|
|
203
200
|
return response;
|
|
204
201
|
}
|
|
@@ -223,7 +220,7 @@ export class HFInferenceImageToImageTask extends HFInferenceTask {
|
|
|
223
220
|
if (response instanceof Blob) {
|
|
224
221
|
return response;
|
|
225
222
|
}
|
|
226
|
-
throw new
|
|
223
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference image-to-image API: expected Blob");
|
|
227
224
|
}
|
|
228
225
|
}
|
|
229
226
|
export class HFInferenceObjectDetectionTask extends HFInferenceTask {
|
|
@@ -237,7 +234,7 @@ export class HFInferenceObjectDetectionTask extends HFInferenceTask {
|
|
|
237
234
|
typeof x.box.ymax === "number")) {
|
|
238
235
|
return response;
|
|
239
236
|
}
|
|
240
|
-
throw new
|
|
237
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference object-detection API: expected Array<{label: string, score: number, box: {xmin: number, ymin: number, xmax: number, ymax: number}}>");
|
|
241
238
|
}
|
|
242
239
|
}
|
|
243
240
|
export class HFInferenceZeroShotImageClassificationTask extends HFInferenceTask {
|
|
@@ -245,7 +242,7 @@ export class HFInferenceZeroShotImageClassificationTask extends HFInferenceTask
|
|
|
245
242
|
if (Array.isArray(response) && response.every((x) => typeof x.label === "string" && typeof x.score === "number")) {
|
|
246
243
|
return response;
|
|
247
244
|
}
|
|
248
|
-
throw new
|
|
245
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference zero-shot-image-classification API: expected Array<{label: string, score: number}>");
|
|
249
246
|
}
|
|
250
247
|
}
|
|
251
248
|
export class HFInferenceTextClassificationTask extends HFInferenceTask {
|
|
@@ -254,7 +251,7 @@ export class HFInferenceTextClassificationTask extends HFInferenceTask {
|
|
|
254
251
|
if (Array.isArray(output) && output.every((x) => typeof x?.label === "string" && typeof x.score === "number")) {
|
|
255
252
|
return output;
|
|
256
253
|
}
|
|
257
|
-
throw new
|
|
254
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference text-classification API: expected Array<{label: string, score: number}>");
|
|
258
255
|
}
|
|
259
256
|
}
|
|
260
257
|
export class HFInferenceQuestionAnsweringTask extends HFInferenceTask {
|
|
@@ -274,7 +271,7 @@ export class HFInferenceQuestionAnsweringTask extends HFInferenceTask {
|
|
|
274
271
|
typeof response.start === "number") {
|
|
275
272
|
return Array.isArray(response) ? response[0] : response;
|
|
276
273
|
}
|
|
277
|
-
throw new
|
|
274
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference question-answering API: expected Array<{answer: string, end: number, score: number, start: number}>");
|
|
278
275
|
}
|
|
279
276
|
}
|
|
280
277
|
export class HFInferenceFillMaskTask extends HFInferenceTask {
|
|
@@ -286,7 +283,7 @@ export class HFInferenceFillMaskTask extends HFInferenceTask {
|
|
|
286
283
|
typeof x.token_str === "string")) {
|
|
287
284
|
return response;
|
|
288
285
|
}
|
|
289
|
-
throw new
|
|
286
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference fill-mask API: expected Array<{score: number, sequence: string, token: number, token_str: string}>");
|
|
290
287
|
}
|
|
291
288
|
}
|
|
292
289
|
export class HFInferenceZeroShotClassificationTask extends HFInferenceTask {
|
|
@@ -299,7 +296,7 @@ export class HFInferenceZeroShotClassificationTask extends HFInferenceTask {
|
|
|
299
296
|
typeof x.sequence === "string")) {
|
|
300
297
|
return response;
|
|
301
298
|
}
|
|
302
|
-
throw new
|
|
299
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference zero-shot-classification API: expected Array<{labels: string[], scores: number[], sequence: string}>");
|
|
303
300
|
}
|
|
304
301
|
}
|
|
305
302
|
export class HFInferenceSentenceSimilarityTask extends HFInferenceTask {
|
|
@@ -307,7 +304,7 @@ export class HFInferenceSentenceSimilarityTask extends HFInferenceTask {
|
|
|
307
304
|
if (Array.isArray(response) && response.every((x) => typeof x === "number")) {
|
|
308
305
|
return response;
|
|
309
306
|
}
|
|
310
|
-
throw new
|
|
307
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference sentence-similarity API: expected Array<number>");
|
|
311
308
|
}
|
|
312
309
|
}
|
|
313
310
|
export class HFInferenceTableQuestionAnsweringTask extends HFInferenceTask {
|
|
@@ -331,7 +328,7 @@ export class HFInferenceTableQuestionAnsweringTask extends HFInferenceTask {
|
|
|
331
328
|
: HFInferenceTableQuestionAnsweringTask.validate(response)) {
|
|
332
329
|
return Array.isArray(response) ? response[0] : response;
|
|
333
330
|
}
|
|
334
|
-
throw new
|
|
331
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference table-question-answering API: expected {aggregator: string, answer: string, cells: string[], coordinates: number[][]}");
|
|
335
332
|
}
|
|
336
333
|
}
|
|
337
334
|
export class HFInferenceTokenClassificationTask extends HFInferenceTask {
|
|
@@ -344,7 +341,7 @@ export class HFInferenceTokenClassificationTask extends HFInferenceTask {
|
|
|
344
341
|
typeof x.word === "string")) {
|
|
345
342
|
return response;
|
|
346
343
|
}
|
|
347
|
-
throw new
|
|
344
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference token-classification API: expected Array<{end: number, entity_group: string, score: number, start: number, word: string}>");
|
|
348
345
|
}
|
|
349
346
|
}
|
|
350
347
|
export class HFInferenceTranslationTask extends HFInferenceTask {
|
|
@@ -352,7 +349,7 @@ export class HFInferenceTranslationTask extends HFInferenceTask {
|
|
|
352
349
|
if (Array.isArray(response) && response.every((x) => typeof x?.translation_text === "string")) {
|
|
353
350
|
return response?.length === 1 ? response?.[0] : response;
|
|
354
351
|
}
|
|
355
|
-
throw new
|
|
352
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference translation API: expected Array<{translation_text: string}>");
|
|
356
353
|
}
|
|
357
354
|
}
|
|
358
355
|
export class HFInferenceSummarizationTask extends HFInferenceTask {
|
|
@@ -360,7 +357,7 @@ export class HFInferenceSummarizationTask extends HFInferenceTask {
|
|
|
360
357
|
if (Array.isArray(response) && response.every((x) => typeof x?.summary_text === "string")) {
|
|
361
358
|
return response?.[0];
|
|
362
359
|
}
|
|
363
|
-
throw new
|
|
360
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference summarization API: expected Array<{summary_text: string}>");
|
|
364
361
|
}
|
|
365
362
|
}
|
|
366
363
|
export class HFInferenceTextToSpeechTask extends HFInferenceTask {
|
|
@@ -373,7 +370,7 @@ export class HFInferenceTabularClassificationTask extends HFInferenceTask {
|
|
|
373
370
|
if (Array.isArray(response) && response.every((x) => typeof x === "number")) {
|
|
374
371
|
return response;
|
|
375
372
|
}
|
|
376
|
-
throw new
|
|
373
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference tabular-classification API: expected Array<number>");
|
|
377
374
|
}
|
|
378
375
|
}
|
|
379
376
|
export class HFInferenceVisualQuestionAnsweringTask extends HFInferenceTask {
|
|
@@ -382,7 +379,7 @@ export class HFInferenceVisualQuestionAnsweringTask extends HFInferenceTask {
|
|
|
382
379
|
response.every((elem) => typeof elem === "object" && !!elem && typeof elem?.answer === "string" && typeof elem.score === "number")) {
|
|
383
380
|
return response[0];
|
|
384
381
|
}
|
|
385
|
-
throw new
|
|
382
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference visual-question-answering API: expected Array<{answer: string, score: number}>");
|
|
386
383
|
}
|
|
387
384
|
}
|
|
388
385
|
export class HFInferenceTabularRegressionTask extends HFInferenceTask {
|
|
@@ -390,7 +387,7 @@ export class HFInferenceTabularRegressionTask extends HFInferenceTask {
|
|
|
390
387
|
if (Array.isArray(response) && response.every((x) => typeof x === "number")) {
|
|
391
388
|
return response;
|
|
392
389
|
}
|
|
393
|
-
throw new
|
|
390
|
+
throw new InferenceClientProviderOutputError("Received malformed response from HF-Inference tabular-regression API: expected Array<number>");
|
|
394
391
|
}
|
|
395
392
|
}
|
|
396
393
|
export class HFInferenceTextToAudioTask extends HFInferenceTask {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hyperbolic.d.ts","sourceRoot":"","sources":["../../../src/providers/hyperbolic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"hyperbolic.d.ts","sourceRoot":"","sources":["../../../src/providers/hyperbolic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EACN,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,qBAAqB,EAC1B,MAAM,qBAAqB,CAAC;AAI7B,MAAM,WAAW,8BAA+B,SAAQ,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC;IAC5F,OAAO,EAAE,KAAK,CAAC;QACd,OAAO,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7B,CAAC,CAAC;CACH;AAED,UAAU,2BAA2B;IACpC,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjC;AAED,qBAAa,4BAA6B,SAAQ,sBAAsB;;CAIvE;AAED,qBAAa,4BAA6B,SAAQ,sBAAsB;;IAK9D,SAAS,IAAI,MAAM;IAInB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAcrD,WAAW,CAAC,QAAQ,EAAE,8BAA8B,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAenG;AAED,qBAAa,yBAA0B,SAAQ,kBAAmB,YAAW,qBAAqB;;IAKjG,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAKpC,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IASrD,WAAW,CAChB,QAAQ,EAAE,2BAA2B,EACrC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,EACrB,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAgBzB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { InferenceOutputError } from "../lib/InferenceOutputError.js";
|
|
2
1
|
import { omit } from "../utils/omit.js";
|
|
3
2
|
import { BaseConversationalTask, BaseTextGenerationTask, TaskProviderHelper, } from "./providerHelper.js";
|
|
3
|
+
import { InferenceClientProviderOutputError } from "../errors.js";
|
|
4
4
|
const HYPERBOLIC_API_BASE_URL = "https://api.hyperbolic.xyz";
|
|
5
5
|
export class HyperbolicConversationalTask extends BaseConversationalTask {
|
|
6
6
|
constructor() {
|
|
@@ -37,7 +37,7 @@ export class HyperbolicTextGenerationTask extends BaseTextGenerationTask {
|
|
|
37
37
|
generated_text: completion.message.content,
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
-
throw new
|
|
40
|
+
throw new InferenceClientProviderOutputError("Received malformed response from Hyperbolic text generation API");
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
export class HyperbolicTextToImageTask extends TaskProviderHelper {
|
|
@@ -67,6 +67,6 @@ export class HyperbolicTextToImageTask extends TaskProviderHelper {
|
|
|
67
67
|
}
|
|
68
68
|
return fetch(`data:image/jpeg;base64,${response.images[0].image}`).then((res) => res.blob());
|
|
69
69
|
}
|
|
70
|
-
throw new
|
|
70
|
+
throw new InferenceClientProviderOutputError("Received malformed response from Hyperbolic text-to-image API");
|
|
71
71
|
}
|
|
72
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nebius.d.ts","sourceRoot":"","sources":["../../../src/providers/nebius.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"nebius.d.ts","sourceRoot":"","sources":["../../../src/providers/nebius.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EACN,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,MAAM,qBAAqB,CAAC;AAK7B,UAAU,2BAA2B;IACpC,IAAI,EAAE,KAAK,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACH;AAED,UAAU,wBAAwB;IACjC,IAAI,EAAE,KAAK,CAAC;QACX,SAAS,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC,CAAC;CACH;AAED,qBAAa,wBAAyB,SAAQ,sBAAsB;;CAInE;AAED,qBAAa,wBAAyB,SAAQ,sBAAsB;;CAInE;AAED,qBAAa,qBAAsB,SAAQ,kBAAmB,YAAW,qBAAqB;;IAK7F,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAU3D,SAAS,IAAI,MAAM;IAIb,WAAW,CAChB,QAAQ,EAAE,2BAA2B,EACrC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,EACrB,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAkBzB;AAED,qBAAa,2BAA4B,SAAQ,kBAAmB,YAAW,2BAA2B;;IAKzG,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAO3D,SAAS,IAAI,MAAM;IAIb,WAAW,CAAC,QAAQ,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAGvF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { InferenceOutputError } from "../lib/InferenceOutputError.js";
|
|
2
1
|
import { omit } from "../utils/omit.js";
|
|
3
2
|
import { BaseConversationalTask, BaseTextGenerationTask, TaskProviderHelper, } from "./providerHelper.js";
|
|
3
|
+
import { InferenceClientProviderOutputError } from "../errors.js";
|
|
4
4
|
const NEBIUS_API_BASE_URL = "https://api.studio.nebius.ai";
|
|
5
5
|
export class NebiusConversationalTask extends BaseConversationalTask {
|
|
6
6
|
constructor() {
|
|
@@ -41,7 +41,7 @@ export class NebiusTextToImageTask extends TaskProviderHelper {
|
|
|
41
41
|
}
|
|
42
42
|
return fetch(`data:image/jpeg;base64,${base64Data}`).then((res) => res.blob());
|
|
43
43
|
}
|
|
44
|
-
throw new
|
|
44
|
+
throw new InferenceClientProviderOutputError("Received malformed response from Nebius text-to-image API");
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
export class NebiusFeatureExtractionTask extends TaskProviderHelper {
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
+
import type { TextToVideoArgs } from "../tasks/index.js";
|
|
1
2
|
import type { BodyParams, UrlParams } from "../types.js";
|
|
2
3
|
import { BaseConversationalTask, BaseTextGenerationTask, TaskProviderHelper, type TextToVideoTaskHelper } from "./providerHelper.js";
|
|
3
|
-
export interface
|
|
4
|
-
|
|
5
|
-
video_url: string;
|
|
6
|
-
};
|
|
4
|
+
export interface NovitaAsyncAPIOutput {
|
|
5
|
+
task_id: string;
|
|
7
6
|
}
|
|
8
7
|
export declare class NovitaTextGenerationTask extends BaseTextGenerationTask {
|
|
9
8
|
constructor();
|
|
@@ -16,7 +15,7 @@ export declare class NovitaConversationalTask extends BaseConversationalTask {
|
|
|
16
15
|
export declare class NovitaTextToVideoTask extends TaskProviderHelper implements TextToVideoTaskHelper {
|
|
17
16
|
constructor();
|
|
18
17
|
makeRoute(params: UrlParams): string;
|
|
19
|
-
preparePayload(params: BodyParams): Record<string, unknown>;
|
|
20
|
-
getResponse(response:
|
|
18
|
+
preparePayload(params: BodyParams<TextToVideoArgs>): Record<string, unknown>;
|
|
19
|
+
getResponse(response: NovitaAsyncAPIOutput, url?: string, headers?: Record<string, string>): Promise<Blob>;
|
|
21
20
|
}
|
|
22
21
|
//# sourceMappingURL=novita.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"novita.d.ts","sourceRoot":"","sources":["../../../src/providers/novita.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"novita.d.ts","sourceRoot":"","sources":["../../../src/providers/novita.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,EACN,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,qBAAqB,EAC1B,MAAM,qBAAqB,CAAC;AAS7B,MAAM,WAAW,oBAAoB;IACpC,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,wBAAyB,SAAQ,sBAAsB;;IAK1D,SAAS,IAAI,MAAM;CAG5B;AAED,qBAAa,wBAAyB,SAAQ,sBAAsB;;IAK1D,SAAS,IAAI,MAAM;CAG5B;AAED,qBAAa,qBAAsB,SAAQ,kBAAmB,YAAW,qBAAqB;;IAKpF,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAIpC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAUtE,WAAW,CACzB,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC;CAoFhB"}
|
|
@@ -14,10 +14,11 @@
|
|
|
14
14
|
*
|
|
15
15
|
* Thanks!
|
|
16
16
|
*/
|
|
17
|
-
import { InferenceOutputError } from "../lib/InferenceOutputError.js";
|
|
18
17
|
import { isUrl } from "../lib/isUrl.js";
|
|
18
|
+
import { delay } from "../utils/delay.js";
|
|
19
19
|
import { omit } from "../utils/omit.js";
|
|
20
20
|
import { BaseConversationalTask, BaseTextGenerationTask, TaskProviderHelper, } from "./providerHelper.js";
|
|
21
|
+
import { InferenceClientInputError, InferenceClientProviderApiError, InferenceClientProviderOutputError, } from "../errors.js";
|
|
21
22
|
const NOVITA_API_BASE_URL = "https://api.novita.ai";
|
|
22
23
|
export class NovitaTextGenerationTask extends BaseTextGenerationTask {
|
|
23
24
|
constructor() {
|
|
@@ -40,28 +41,77 @@ export class NovitaTextToVideoTask extends TaskProviderHelper {
|
|
|
40
41
|
super("novita", NOVITA_API_BASE_URL);
|
|
41
42
|
}
|
|
42
43
|
makeRoute(params) {
|
|
43
|
-
return `/v3/
|
|
44
|
+
return `/v3/async/${params.model}`;
|
|
44
45
|
}
|
|
45
46
|
preparePayload(params) {
|
|
47
|
+
const { num_inference_steps, ...restParameters } = params.args.parameters ?? {};
|
|
46
48
|
return {
|
|
47
49
|
...omit(params.args, ["inputs", "parameters"]),
|
|
48
|
-
...
|
|
50
|
+
...restParameters,
|
|
51
|
+
steps: num_inference_steps,
|
|
49
52
|
prompt: params.args.inputs,
|
|
50
53
|
};
|
|
51
54
|
}
|
|
52
|
-
async getResponse(response) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
55
|
+
async getResponse(response, url, headers) {
|
|
56
|
+
if (!url || !headers) {
|
|
57
|
+
throw new InferenceClientInputError("URL and headers are required for text-to-video task");
|
|
58
|
+
}
|
|
59
|
+
const taskId = response.task_id;
|
|
60
|
+
if (!taskId) {
|
|
61
|
+
throw new InferenceClientProviderOutputError("Received malformed response from Novita text-to-video API: no task ID found in the response");
|
|
62
|
+
}
|
|
63
|
+
const parsedUrl = new URL(url);
|
|
64
|
+
const baseUrl = `${parsedUrl.protocol}//${parsedUrl.host}${parsedUrl.host === "router.huggingface.co" ? "/novita" : ""}`;
|
|
65
|
+
const resultUrl = `${baseUrl}/v3/async/task-result?task_id=${taskId}`;
|
|
66
|
+
let status = "";
|
|
67
|
+
let taskResult;
|
|
68
|
+
while (status !== "TASK_STATUS_SUCCEED" && status !== "TASK_STATUS_FAILED") {
|
|
69
|
+
await delay(500);
|
|
70
|
+
const resultResponse = await fetch(resultUrl, { headers });
|
|
71
|
+
if (!resultResponse.ok) {
|
|
72
|
+
throw new InferenceClientProviderApiError("Failed to fetch task result", { url: resultUrl, method: "GET", headers }, {
|
|
73
|
+
requestId: resultResponse.headers.get("x-request-id") ?? "",
|
|
74
|
+
status: resultResponse.status,
|
|
75
|
+
body: await resultResponse.text(),
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
try {
|
|
79
|
+
taskResult = await resultResponse.json();
|
|
80
|
+
if (taskResult &&
|
|
81
|
+
typeof taskResult === "object" &&
|
|
82
|
+
"task" in taskResult &&
|
|
83
|
+
taskResult.task &&
|
|
84
|
+
typeof taskResult.task === "object" &&
|
|
85
|
+
"status" in taskResult.task &&
|
|
86
|
+
typeof taskResult.task.status === "string") {
|
|
87
|
+
status = taskResult.task.status;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
throw new InferenceClientProviderOutputError("Received malformed response from Novita text-to-video API: failed to get task status");
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
throw new InferenceClientProviderOutputError("Received malformed response from Novita text-to-video API: failed to parse task result");
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (status === "TASK_STATUS_FAILED") {
|
|
98
|
+
throw new InferenceClientProviderOutputError("Novita text-to-video task failed");
|
|
99
|
+
}
|
|
100
|
+
if (typeof taskResult === "object" &&
|
|
101
|
+
!!taskResult &&
|
|
102
|
+
"videos" in taskResult &&
|
|
103
|
+
typeof taskResult.videos === "object" &&
|
|
104
|
+
!!taskResult.videos &&
|
|
105
|
+
Array.isArray(taskResult.videos) &&
|
|
106
|
+
taskResult.videos.length > 0 &&
|
|
107
|
+
"video_url" in taskResult.videos[0] &&
|
|
108
|
+
typeof taskResult.videos[0].video_url === "string" &&
|
|
109
|
+
isUrl(taskResult.videos[0].video_url)) {
|
|
110
|
+
const urlResponse = await fetch(taskResult.videos[0].video_url);
|
|
111
|
+
return await urlResponse.blob();
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
throw new InferenceClientProviderOutputError(`Received malformed response from Novita text-to-video API: expected { videos: [{ video_url: string }] } format, got instead: ${JSON.stringify(taskResult)}`);
|
|
63
115
|
}
|
|
64
|
-
const urlResponse = await fetch(response.video.video_url);
|
|
65
|
-
return await urlResponse.blob();
|
|
66
116
|
}
|
|
67
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nscale.d.ts","sourceRoot":"","sources":["../../../src/providers/nscale.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"nscale.d.ts","sourceRoot":"","sources":["../../../src/providers/nscale.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAK7G,UAAU,gCAAgC;IACzC,IAAI,EAAE,KAAK,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACH;AAED,qBAAa,wBAAyB,SAAQ,sBAAsB;;CAInE;AAED,qBAAa,qBAAsB,SAAQ,kBAAmB,YAAW,qBAAqB;;IAK7F,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAU7E,SAAS,IAAI,MAAM;IAIb,WAAW,CAChB,QAAQ,EAAE,gCAAgC,EAC1C,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,EACrB,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAkBzB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { InferenceOutputError } from "../lib/InferenceOutputError.js";
|
|
2
1
|
import { omit } from "../utils/omit.js";
|
|
3
2
|
import { BaseConversationalTask, TaskProviderHelper } from "./providerHelper.js";
|
|
3
|
+
import { InferenceClientProviderOutputError } from "../errors.js";
|
|
4
4
|
const NSCALE_API_BASE_URL = "https://inference.api.nscale.com";
|
|
5
5
|
export class NscaleConversationalTask extends BaseConversationalTask {
|
|
6
6
|
constructor() {
|
|
@@ -36,6 +36,6 @@ export class NscaleTextToImageTask extends TaskProviderHelper {
|
|
|
36
36
|
}
|
|
37
37
|
return fetch(`data:image/jpeg;base64,${base64Data}`).then((res) => res.blob());
|
|
38
38
|
}
|
|
39
|
-
throw new
|
|
39
|
+
throw new InferenceClientProviderOutputError("Received malformed response from Nscale text-to-image API");
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ovhcloud.d.ts","sourceRoot":"","sources":["../../../src/providers/ovhcloud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ovhcloud.d.ts","sourceRoot":"","sources":["../../../src/providers/ovhcloud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AACvH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAK9D,UAAU,4BAA6B,SAAQ,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC;IACnF,OAAO,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,gCAAgC,CAAC;QAChD,QAAQ,EAAE,OAAO,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACH;AAED,qBAAa,0BAA2B,SAAQ,sBAAsB;;CAIrE;AAED,qBAAa,0BAA2B,SAAQ,sBAAsB;;IAK5D,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAc1E,WAAW,CAAC,QAAQ,EAAE,4BAA4B,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAcjG"}
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
* Thanks!
|
|
16
16
|
*/
|
|
17
17
|
import { BaseConversationalTask, BaseTextGenerationTask } from "./providerHelper.js";
|
|
18
|
-
import { InferenceOutputError } from "../lib/InferenceOutputError.js";
|
|
19
18
|
import { omit } from "../utils/omit.js";
|
|
19
|
+
import { InferenceClientProviderOutputError } from "../errors.js";
|
|
20
20
|
const OVHCLOUD_API_BASE_URL = "https://oai.endpoints.kepler.ai.cloud.ovh.net";
|
|
21
21
|
export class OvhCloudConversationalTask extends BaseConversationalTask {
|
|
22
22
|
constructor() {
|
|
@@ -50,6 +50,6 @@ export class OvhCloudTextGenerationTask extends BaseTextGenerationTask {
|
|
|
50
50
|
generated_text: completion.text,
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
|
-
throw new
|
|
53
|
+
throw new InferenceClientProviderOutputError("Received malformed response from OVHcloud text generation API");
|
|
54
54
|
}
|
|
55
55
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HF_ROUTER_URL } from "../config.js";
|
|
2
|
-
import {
|
|
2
|
+
import { InferenceClientProviderOutputError } from "../errors.js";
|
|
3
3
|
import { toArray } from "../utils/toArray.js";
|
|
4
4
|
/**
|
|
5
5
|
* Base class for task-specific provider helpers
|
|
@@ -74,7 +74,7 @@ export class BaseConversationalTask extends TaskProviderHelper {
|
|
|
74
74
|
typeof response?.usage === "object") {
|
|
75
75
|
return response;
|
|
76
76
|
}
|
|
77
|
-
throw new
|
|
77
|
+
throw new InferenceClientProviderOutputError("Expected ChatCompletionOutput");
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
export class BaseTextGenerationTask extends TaskProviderHelper {
|
|
@@ -97,6 +97,6 @@ export class BaseTextGenerationTask extends TaskProviderHelper {
|
|
|
97
97
|
res.every((x) => typeof x === "object" && !!x && "generated_text" in x && typeof x.generated_text === "string")) {
|
|
98
98
|
return res[0];
|
|
99
99
|
}
|
|
100
|
-
throw new
|
|
100
|
+
throw new InferenceClientProviderOutputError("Expected Array<{generated_text: string}>");
|
|
101
101
|
}
|
|
102
102
|
}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*
|
|
15
15
|
* Thanks!
|
|
16
16
|
*/
|
|
17
|
-
import {
|
|
17
|
+
import { InferenceClientProviderOutputError } from "../errors.js";
|
|
18
18
|
import { isUrl } from "../lib/isUrl.js";
|
|
19
19
|
import { omit } from "../utils/omit.js";
|
|
20
20
|
import { TaskProviderHelper } from "./providerHelper.js";
|
|
@@ -81,7 +81,7 @@ export class ReplicateTextToImageTask extends ReplicateTask {
|
|
|
81
81
|
const urlResponse = await fetch(res.output[0]);
|
|
82
82
|
return await urlResponse.blob();
|
|
83
83
|
}
|
|
84
|
-
throw new
|
|
84
|
+
throw new InferenceClientProviderOutputError("Received malformed response from Replicate text-to-image API");
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
export class ReplicateTextToSpeechTask extends ReplicateTask {
|
|
@@ -111,7 +111,7 @@ export class ReplicateTextToSpeechTask extends ReplicateTask {
|
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
|
-
throw new
|
|
114
|
+
throw new InferenceClientProviderOutputError("Received malformed response from Replicate text-to-speech API");
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
117
|
export class ReplicateTextToVideoTask extends ReplicateTask {
|
|
@@ -124,6 +124,6 @@ export class ReplicateTextToVideoTask extends ReplicateTask {
|
|
|
124
124
|
const urlResponse = await fetch(response.output);
|
|
125
125
|
return await urlResponse.blob();
|
|
126
126
|
}
|
|
127
|
-
throw new
|
|
127
|
+
throw new InferenceClientProviderOutputError("Received malformed response from Replicate text-to-video API");
|
|
128
128
|
}
|
|
129
129
|
}
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* See the registered mapping of HF model ID => Sambanova model ID here:
|
|
3
|
+
*
|
|
4
|
+
* https://huggingface.co/api/partners/sambanova/models
|
|
5
|
+
*
|
|
6
|
+
* This is a publicly available mapping.
|
|
7
|
+
*
|
|
8
|
+
* If you want to try to run inference for a new model locally before it's registered on huggingface.co,
|
|
9
|
+
* you can add it to the dictionary "HARDCODED_MODEL_ID_MAPPING" in consts.ts, for dev purposes.
|
|
10
|
+
*
|
|
11
|
+
* - If you work at Sambanova and want to update this mapping, please use the model mapping API we provide on huggingface.co
|
|
12
|
+
* - If you're a community member and want to add a new supported HF model to Sambanova, please open an issue on the present repo
|
|
13
|
+
* and we will tag Sambanova team members.
|
|
14
|
+
*
|
|
15
|
+
* Thanks!
|
|
16
|
+
*/
|
|
1
17
|
import type { FeatureExtractionOutput } from "@huggingface/tasks";
|
|
2
18
|
import type { BodyParams } from "../types.js";
|
|
3
19
|
import type { FeatureExtractionTaskHelper } from "./providerHelper.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sambanova.d.ts","sourceRoot":"","sources":["../../../src/providers/sambanova.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sambanova.d.ts","sourceRoot":"","sources":["../../../src/providers/sambanova.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGjF,qBAAa,2BAA4B,SAAQ,sBAAsB;;CAItE;AAED,qBAAa,8BAA+B,SAAQ,kBAAmB,YAAW,2BAA2B;;IAKnG,SAAS,IAAI,MAAM;IAIb,WAAW,CAAC,QAAQ,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAStF,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAOpE"}
|
|
@@ -1,21 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* See the registered mapping of HF model ID => Sambanova model ID here:
|
|
3
|
-
*
|
|
4
|
-
* https://huggingface.co/api/partners/sambanova/models
|
|
5
|
-
*
|
|
6
|
-
* This is a publicly available mapping.
|
|
7
|
-
*
|
|
8
|
-
* If you want to try to run inference for a new model locally before it's registered on huggingface.co,
|
|
9
|
-
* you can add it to the dictionary "HARDCODED_MODEL_ID_MAPPING" in consts.ts, for dev purposes.
|
|
10
|
-
*
|
|
11
|
-
* - If you work at Sambanova and want to update this mapping, please use the model mapping API we provide on huggingface.co
|
|
12
|
-
* - If you're a community member and want to add a new supported HF model to Sambanova, please open an issue on the present repo
|
|
13
|
-
* and we will tag Sambanova team members.
|
|
14
|
-
*
|
|
15
|
-
* Thanks!
|
|
16
|
-
*/
|
|
17
|
-
import { InferenceOutputError } from "../lib/InferenceOutputError.js";
|
|
18
1
|
import { BaseConversationalTask, TaskProviderHelper } from "./providerHelper.js";
|
|
2
|
+
import { InferenceClientProviderOutputError } from "../errors.js";
|
|
19
3
|
export class SambanovaConversationalTask extends BaseConversationalTask {
|
|
20
4
|
constructor() {
|
|
21
5
|
super("sambanova", "https://api.sambanova.ai");
|
|
@@ -32,7 +16,7 @@ export class SambanovaFeatureExtractionTask extends TaskProviderHelper {
|
|
|
32
16
|
if (typeof response === "object" && "data" in response && Array.isArray(response.data)) {
|
|
33
17
|
return response.data.map((item) => item.embedding);
|
|
34
18
|
}
|
|
35
|
-
throw new
|
|
19
|
+
throw new InferenceClientProviderOutputError("Received malformed response from Sambanova feature-extraction (embeddings) API");
|
|
36
20
|
}
|
|
37
21
|
preparePayload(params) {
|
|
38
22
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"together.d.ts","sourceRoot":"","sources":["../../../src/providers/together.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"together.d.ts","sourceRoot":"","sources":["../../../src/providers/together.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AACvH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EACN,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,qBAAqB,EAC1B,MAAM,qBAAqB,CAAC;AAK7B,UAAU,4BAA6B,SAAQ,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC;IACnF,OAAO,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,gCAAgC,CAAC;QAChD,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,OAAO,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACH;AAED,UAAU,6BAA6B;IACtC,IAAI,EAAE,KAAK,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACH;AAED,qBAAa,0BAA2B,SAAQ,sBAAsB;;CAIrE;AAED,qBAAa,0BAA2B,SAAQ,sBAAsB;;IAK5D,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQrD,WAAW,CAAC,QAAQ,EAAE,4BAA4B,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAcjG;AAED,qBAAa,uBAAwB,SAAQ,kBAAmB,YAAW,qBAAqB;;IAK/F,SAAS,IAAI,MAAM;IAInB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAUrD,WAAW,CAAC,QAAQ,EAAE,6BAA6B,EAAE,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAkB/G"}
|