@huggingface/inference 4.13.9 → 4.13.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commonjs/lib/getProviderHelper.d.ts.map +1 -1
- package/dist/commonjs/lib/getProviderHelper.js +8 -4
- package/dist/commonjs/lib/makeRequestOptions.d.ts +2 -1
- package/dist/commonjs/lib/makeRequestOptions.d.ts.map +1 -1
- package/dist/commonjs/lib/makeRequestOptions.js +4 -2
- 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/fal-ai.d.ts +13 -3
- package/dist/commonjs/providers/fal-ai.d.ts.map +1 -1
- package/dist/commonjs/providers/fal-ai.js +49 -2
- package/dist/commonjs/providers/hf-inference.d.ts +3 -2
- package/dist/commonjs/providers/hf-inference.d.ts.map +1 -1
- package/dist/commonjs/providers/hf-inference.js +14 -8
- package/dist/commonjs/providers/hyperbolic.d.ts +2 -2
- package/dist/commonjs/providers/hyperbolic.d.ts.map +1 -1
- package/dist/commonjs/providers/hyperbolic.js +4 -1
- package/dist/commonjs/providers/nebius.d.ts +5 -4
- package/dist/commonjs/providers/nebius.d.ts.map +1 -1
- package/dist/commonjs/providers/nebius.js +11 -8
- package/dist/commonjs/providers/nscale.d.ts +2 -2
- package/dist/commonjs/providers/nscale.d.ts.map +1 -1
- package/dist/commonjs/providers/nscale.js +4 -1
- package/dist/commonjs/providers/providerHelper.d.ts +3 -3
- package/dist/commonjs/providers/providerHelper.d.ts.map +1 -1
- package/dist/commonjs/providers/providerHelper.js +3 -0
- package/dist/commonjs/providers/replicate.d.ts +2 -2
- package/dist/commonjs/providers/replicate.d.ts.map +1 -1
- package/dist/commonjs/providers/replicate.js +11 -3
- package/dist/commonjs/providers/together.d.ts +5 -4
- package/dist/commonjs/providers/together.d.ts.map +1 -1
- package/dist/commonjs/providers/together.js +11 -8
- package/dist/commonjs/providers/wavespeed.d.ts +14 -4
- package/dist/commonjs/providers/wavespeed.d.ts.map +1 -1
- package/dist/commonjs/providers/wavespeed.js +30 -2
- package/dist/commonjs/providers/zai-org.d.ts +2 -2
- package/dist/commonjs/providers/zai-org.d.ts.map +1 -1
- package/dist/commonjs/providers/zai-org.js +3 -1
- package/dist/commonjs/snippets/getInferenceSnippets.js +11 -20
- package/dist/commonjs/tasks/cv/textToImage.d.ts +5 -2
- package/dist/commonjs/tasks/cv/textToImage.d.ts.map +1 -1
- package/dist/commonjs/types.d.ts +4 -0
- package/dist/commonjs/types.d.ts.map +1 -1
- package/dist/commonjs/utils/dataUrlFromBlob.d.ts +2 -0
- package/dist/commonjs/utils/dataUrlFromBlob.d.ts.map +1 -0
- package/dist/commonjs/utils/dataUrlFromBlob.js +9 -0
- package/dist/esm/lib/getProviderHelper.d.ts.map +1 -1
- package/dist/esm/lib/getProviderHelper.js +8 -4
- package/dist/esm/lib/makeRequestOptions.d.ts +2 -1
- package/dist/esm/lib/makeRequestOptions.d.ts.map +1 -1
- package/dist/esm/lib/makeRequestOptions.js +4 -2
- 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/fal-ai.d.ts +13 -3
- package/dist/esm/providers/fal-ai.d.ts.map +1 -1
- package/dist/esm/providers/fal-ai.js +46 -1
- package/dist/esm/providers/hf-inference.d.ts +3 -2
- package/dist/esm/providers/hf-inference.d.ts.map +1 -1
- package/dist/esm/providers/hf-inference.js +15 -9
- package/dist/esm/providers/hyperbolic.d.ts +2 -2
- package/dist/esm/providers/hyperbolic.d.ts.map +1 -1
- package/dist/esm/providers/hyperbolic.js +5 -2
- package/dist/esm/providers/nebius.d.ts +5 -4
- package/dist/esm/providers/nebius.d.ts.map +1 -1
- package/dist/esm/providers/nebius.js +11 -8
- package/dist/esm/providers/nscale.d.ts +2 -2
- package/dist/esm/providers/nscale.d.ts.map +1 -1
- package/dist/esm/providers/nscale.js +5 -2
- package/dist/esm/providers/providerHelper.d.ts +3 -3
- package/dist/esm/providers/providerHelper.d.ts.map +1 -1
- package/dist/esm/providers/providerHelper.js +3 -0
- package/dist/esm/providers/replicate.d.ts +2 -2
- package/dist/esm/providers/replicate.d.ts.map +1 -1
- package/dist/esm/providers/replicate.js +11 -3
- package/dist/esm/providers/together.d.ts +5 -4
- package/dist/esm/providers/together.d.ts.map +1 -1
- package/dist/esm/providers/together.js +11 -8
- package/dist/esm/providers/wavespeed.d.ts +14 -4
- package/dist/esm/providers/wavespeed.d.ts.map +1 -1
- package/dist/esm/providers/wavespeed.js +27 -1
- package/dist/esm/providers/zai-org.d.ts +2 -2
- package/dist/esm/providers/zai-org.d.ts.map +1 -1
- package/dist/esm/providers/zai-org.js +3 -1
- package/dist/esm/snippets/getInferenceSnippets.js +11 -20
- package/dist/esm/tasks/cv/textToImage.d.ts +5 -2
- package/dist/esm/tasks/cv/textToImage.d.ts.map +1 -1
- package/dist/esm/types.d.ts +4 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/utils/dataUrlFromBlob.d.ts +2 -0
- package/dist/esm/utils/dataUrlFromBlob.d.ts.map +1 -0
- package/dist/esm/utils/dataUrlFromBlob.js +6 -0
- package/package.json +34 -34
- package/src/InferenceClient.ts +2 -2
- package/src/errors.ts +1 -1
- package/src/lib/getDefaultTask.ts +1 -1
- package/src/lib/getInferenceProviderMapping.ts +11 -11
- package/src/lib/getProviderHelper.ts +45 -41
- package/src/lib/makeRequestOptions.ts +17 -14
- package/src/package.ts +1 -1
- package/src/providers/black-forest-labs.ts +3 -3
- package/src/providers/fal-ai.ts +92 -36
- package/src/providers/featherless-ai.ts +1 -1
- package/src/providers/hf-inference.ts +66 -57
- package/src/providers/hyperbolic.ts +10 -5
- package/src/providers/nebius.ts +19 -13
- package/src/providers/novita.ts +7 -7
- package/src/providers/nscale.ts +9 -4
- package/src/providers/ovhcloud.ts +1 -1
- package/src/providers/providerHelper.ts +19 -8
- package/src/providers/replicate.ts +14 -6
- package/src/providers/sambanova.ts +1 -1
- package/src/providers/together.ts +19 -13
- package/src/providers/wavespeed.ts +56 -12
- package/src/providers/zai-org.ts +11 -9
- package/src/snippets/getInferenceSnippets.ts +26 -26
- package/src/tasks/audio/audioClassification.ts +1 -1
- package/src/tasks/audio/automaticSpeechRecognition.ts +1 -1
- package/src/tasks/audio/utils.ts +1 -1
- package/src/tasks/custom/request.ts +2 -2
- package/src/tasks/custom/streamingRequest.ts +2 -2
- package/src/tasks/cv/imageClassification.ts +1 -1
- package/src/tasks/cv/imageSegmentation.ts +1 -1
- package/src/tasks/cv/textToImage.ts +10 -6
- package/src/tasks/cv/textToVideo.ts +1 -1
- package/src/tasks/cv/zeroShotImageClassification.ts +3 -3
- package/src/tasks/multimodal/documentQuestionAnswering.ts +2 -2
- package/src/tasks/multimodal/visualQuestionAnswering.ts +1 -1
- package/src/tasks/nlp/chatCompletion.ts +1 -1
- package/src/tasks/nlp/chatCompletionStream.ts +1 -1
- package/src/tasks/nlp/featureExtraction.ts +1 -1
- package/src/tasks/nlp/questionAnswering.ts +2 -2
- package/src/tasks/nlp/sentenceSimilarity.ts +1 -1
- package/src/tasks/nlp/tableQuestionAnswering.ts +2 -2
- package/src/tasks/nlp/textClassification.ts +1 -1
- package/src/tasks/nlp/textGeneration.ts +1 -1
- package/src/tasks/nlp/textGenerationStream.ts +1 -1
- package/src/tasks/nlp/tokenClassification.ts +2 -2
- package/src/tasks/nlp/zeroShotClassification.ts +2 -2
- package/src/tasks/tabular/tabularClassification.ts +1 -1
- package/src/tasks/tabular/tabularRegression.ts +1 -1
- package/src/types.ts +5 -0
- package/src/utils/dataUrlFromBlob.ts +7 -0
- package/src/utils/pick.ts +1 -1
- package/src/utils/request.ts +20 -20
- package/src/utils/typedEntries.ts +1 -1
|
@@ -28,7 +28,7 @@ function normalizeInferenceProviderMapping(
|
|
|
28
28
|
adapter?: string;
|
|
29
29
|
adapterWeightsPath?: string;
|
|
30
30
|
}
|
|
31
|
-
|
|
31
|
+
>,
|
|
32
32
|
): InferenceProviderMappingEntry[] {
|
|
33
33
|
if (!inferenceProviderMapping) {
|
|
34
34
|
return [];
|
|
@@ -56,7 +56,7 @@ export async function fetchInferenceProviderMappingForModel(
|
|
|
56
56
|
accessToken?: string,
|
|
57
57
|
options?: {
|
|
58
58
|
fetch?: (input: RequestInfo, init?: RequestInit) => Promise<Response>;
|
|
59
|
-
}
|
|
59
|
+
},
|
|
60
60
|
): Promise<InferenceProviderMappingEntry[]> {
|
|
61
61
|
let inferenceProviderMapping: InferenceProviderMappingEntry[] | null;
|
|
62
62
|
if (inferenceProviderMappingCache.has(modelId)) {
|
|
@@ -74,14 +74,14 @@ export async function fetchInferenceProviderMappingForModel(
|
|
|
74
74
|
throw new InferenceClientHubApiError(
|
|
75
75
|
`Failed to fetch inference provider mapping for model ${modelId}: ${error.error}`,
|
|
76
76
|
{ url, method: "GET" },
|
|
77
|
-
{ requestId: resp.headers.get("x-request-id") ?? "", status: resp.status, body: error }
|
|
77
|
+
{ requestId: resp.headers.get("x-request-id") ?? "", status: resp.status, body: error },
|
|
78
78
|
);
|
|
79
79
|
}
|
|
80
80
|
} else {
|
|
81
81
|
throw new InferenceClientHubApiError(
|
|
82
82
|
`Failed to fetch inference provider mapping for model ${modelId}`,
|
|
83
83
|
{ url, method: "GET" },
|
|
84
|
-
{ requestId: resp.headers.get("x-request-id") ?? "", status: resp.status, body: await resp.text() }
|
|
84
|
+
{ requestId: resp.headers.get("x-request-id") ?? "", status: resp.status, body: await resp.text() },
|
|
85
85
|
);
|
|
86
86
|
}
|
|
87
87
|
}
|
|
@@ -96,14 +96,14 @@ export async function fetchInferenceProviderMappingForModel(
|
|
|
96
96
|
throw new InferenceClientHubApiError(
|
|
97
97
|
`Failed to fetch inference provider mapping for model ${modelId}: malformed API response, invalid JSON`,
|
|
98
98
|
{ url, method: "GET" },
|
|
99
|
-
{ requestId: resp.headers.get("x-request-id") ?? "", status: resp.status, body: await resp.text() }
|
|
99
|
+
{ requestId: resp.headers.get("x-request-id") ?? "", status: resp.status, body: await resp.text() },
|
|
100
100
|
);
|
|
101
101
|
}
|
|
102
102
|
if (!payload?.inferenceProviderMapping) {
|
|
103
103
|
throw new InferenceClientHubApiError(
|
|
104
104
|
`We have not been able to find inference provider information for model ${modelId}.`,
|
|
105
105
|
{ url, method: "GET" },
|
|
106
|
-
{ requestId: resp.headers.get("x-request-id") ?? "", status: resp.status, body: await resp.text() }
|
|
106
|
+
{ requestId: resp.headers.get("x-request-id") ?? "", status: resp.status, body: await resp.text() },
|
|
107
107
|
);
|
|
108
108
|
}
|
|
109
109
|
inferenceProviderMapping = normalizeInferenceProviderMapping(modelId, payload.inferenceProviderMapping);
|
|
@@ -121,7 +121,7 @@ export async function getInferenceProviderMapping(
|
|
|
121
121
|
},
|
|
122
122
|
options: {
|
|
123
123
|
fetch?: (input: RequestInfo, init?: RequestInit) => Promise<Response>;
|
|
124
|
-
}
|
|
124
|
+
},
|
|
125
125
|
): Promise<InferenceProviderMappingEntry | null> {
|
|
126
126
|
const logger = getLogger();
|
|
127
127
|
if (params.provider === ("auto" as InferenceProvider) && params.task === "conversational") {
|
|
@@ -147,12 +147,12 @@ export async function getInferenceProviderMapping(
|
|
|
147
147
|
: [params.task];
|
|
148
148
|
if (!typedInclude(equivalentTasks, providerMapping.task)) {
|
|
149
149
|
throw new InferenceClientInputError(
|
|
150
|
-
`Model ${params.modelId} is not supported for task ${params.task} and provider ${params.provider}. Supported task: ${providerMapping.task}
|
|
150
|
+
`Model ${params.modelId} is not supported for task ${params.task} and provider ${params.provider}. Supported task: ${providerMapping.task}.`,
|
|
151
151
|
);
|
|
152
152
|
}
|
|
153
153
|
if (providerMapping.status === "staging") {
|
|
154
154
|
logger.warn(
|
|
155
|
-
`Model ${params.modelId} is in staging mode for provider ${params.provider}. Meant for test purposes only
|
|
155
|
+
`Model ${params.modelId} is in staging mode for provider ${params.provider}. Meant for test purposes only.`,
|
|
156
156
|
);
|
|
157
157
|
}
|
|
158
158
|
return providerMapping;
|
|
@@ -163,7 +163,7 @@ export async function getInferenceProviderMapping(
|
|
|
163
163
|
export async function resolveProvider(
|
|
164
164
|
provider?: InferenceProviderOrPolicy,
|
|
165
165
|
modelId?: string,
|
|
166
|
-
endpointUrl?: string
|
|
166
|
+
endpointUrl?: string,
|
|
167
167
|
): Promise<InferenceProvider> {
|
|
168
168
|
const logger = getLogger();
|
|
169
169
|
if (endpointUrl) {
|
|
@@ -175,7 +175,7 @@ export async function resolveProvider(
|
|
|
175
175
|
}
|
|
176
176
|
if (!provider) {
|
|
177
177
|
logger.log(
|
|
178
|
-
"Defaulting to 'auto' which will select the first provider available for the model, sorted by the user's order in https://hf.co/settings/inference-providers."
|
|
178
|
+
"Defaulting to 'auto' which will select the first provider available for the model, sorted by the user's order in https://hf.co/settings/inference-providers.",
|
|
179
179
|
);
|
|
180
180
|
provider = "auto";
|
|
181
181
|
}
|
|
@@ -76,13 +76,15 @@ export const PROVIDERS: Record<InferenceProvider, Partial<Record<InferenceTask,
|
|
|
76
76
|
conversational: new Cohere.CohereConversationalTask(),
|
|
77
77
|
},
|
|
78
78
|
"fal-ai": {
|
|
79
|
-
"text-to-image": new FalAI.FalAITextToImageTask(),
|
|
80
|
-
"text-to-speech": new FalAI.FalAITextToSpeechTask(),
|
|
81
|
-
"text-to-video": new FalAI.FalAITextToVideoTask(),
|
|
82
|
-
"image-to-image": new FalAI.FalAIImageToImageTask(),
|
|
83
79
|
"automatic-speech-recognition": new FalAI.FalAIAutomaticSpeechRecognitionTask(),
|
|
80
|
+
"image-text-to-image": new FalAI.FalAIImageTextToImageTask(),
|
|
81
|
+
"image-text-to-video": new FalAI.FalAIImageTextToVideoTask(),
|
|
82
|
+
"image-to-image": new FalAI.FalAIImageToImageTask(),
|
|
84
83
|
"image-segmentation": new FalAI.FalAIImageSegmentationTask(),
|
|
85
84
|
"image-to-video": new FalAI.FalAIImageToVideoTask(),
|
|
85
|
+
"text-to-image": new FalAI.FalAITextToImageTask(),
|
|
86
|
+
"text-to-speech": new FalAI.FalAITextToSpeechTask(),
|
|
87
|
+
"text-to-video": new FalAI.FalAITextToVideoTask(),
|
|
86
88
|
},
|
|
87
89
|
"featherless-ai": {
|
|
88
90
|
conversational: new FeatherlessAI.FeatherlessAIConversationalTask(),
|
|
@@ -181,6 +183,8 @@ export const PROVIDERS: Record<InferenceProvider, Partial<Record<InferenceTask,
|
|
|
181
183
|
"text-to-video": new Wavespeed.WavespeedAITextToVideoTask(),
|
|
182
184
|
"image-to-image": new Wavespeed.WavespeedAIImageToImageTask(),
|
|
183
185
|
"image-to-video": new Wavespeed.WavespeedAIImageToVideoTask(),
|
|
186
|
+
"image-text-to-image": new Wavespeed.WavespeedAIImageTextToImageTask(),
|
|
187
|
+
"image-text-to-video": new Wavespeed.WavespeedAIImageTextToVideoTask(),
|
|
184
188
|
},
|
|
185
189
|
"zai-org": {
|
|
186
190
|
conversational: new Zai.ZaiConversationalTask(),
|
|
@@ -193,157 +197,157 @@ export const PROVIDERS: Record<InferenceProvider, Partial<Record<InferenceTask,
|
|
|
193
197
|
*/
|
|
194
198
|
export function getProviderHelper(
|
|
195
199
|
provider: InferenceProviderOrPolicy,
|
|
196
|
-
task: "text-to-image"
|
|
200
|
+
task: "text-to-image",
|
|
197
201
|
): TextToImageTaskHelper & TaskProviderHelper;
|
|
198
202
|
export function getProviderHelper(
|
|
199
203
|
provider: InferenceProviderOrPolicy,
|
|
200
|
-
task: "conversational"
|
|
204
|
+
task: "conversational",
|
|
201
205
|
): ConversationalTaskHelper & TaskProviderHelper;
|
|
202
206
|
export function getProviderHelper(
|
|
203
207
|
provider: InferenceProviderOrPolicy,
|
|
204
|
-
task: "text-generation"
|
|
208
|
+
task: "text-generation",
|
|
205
209
|
): TextGenerationTaskHelper & TaskProviderHelper;
|
|
206
210
|
export function getProviderHelper(
|
|
207
211
|
provider: InferenceProviderOrPolicy,
|
|
208
|
-
task: "text-to-speech"
|
|
212
|
+
task: "text-to-speech",
|
|
209
213
|
): TextToSpeechTaskHelper & TaskProviderHelper;
|
|
210
214
|
export function getProviderHelper(
|
|
211
215
|
provider: InferenceProviderOrPolicy,
|
|
212
|
-
task: "text-to-audio"
|
|
216
|
+
task: "text-to-audio",
|
|
213
217
|
): TextToAudioTaskHelper & TaskProviderHelper;
|
|
214
218
|
export function getProviderHelper(
|
|
215
219
|
provider: InferenceProviderOrPolicy,
|
|
216
|
-
task: "automatic-speech-recognition"
|
|
220
|
+
task: "automatic-speech-recognition",
|
|
217
221
|
): AutomaticSpeechRecognitionTaskHelper & TaskProviderHelper;
|
|
218
222
|
export function getProviderHelper(
|
|
219
223
|
provider: InferenceProviderOrPolicy,
|
|
220
|
-
task: "text-to-video"
|
|
224
|
+
task: "text-to-video",
|
|
221
225
|
): TextToVideoTaskHelper & TaskProviderHelper;
|
|
222
226
|
export function getProviderHelper(
|
|
223
227
|
provider: InferenceProviderOrPolicy,
|
|
224
|
-
task: "text-classification"
|
|
228
|
+
task: "text-classification",
|
|
225
229
|
): TextClassificationTaskHelper & TaskProviderHelper;
|
|
226
230
|
export function getProviderHelper(
|
|
227
231
|
provider: InferenceProviderOrPolicy,
|
|
228
|
-
task: "question-answering"
|
|
232
|
+
task: "question-answering",
|
|
229
233
|
): QuestionAnsweringTaskHelper & TaskProviderHelper;
|
|
230
234
|
export function getProviderHelper(
|
|
231
235
|
provider: InferenceProviderOrPolicy,
|
|
232
|
-
task: "audio-classification"
|
|
236
|
+
task: "audio-classification",
|
|
233
237
|
): AudioClassificationTaskHelper & TaskProviderHelper;
|
|
234
238
|
export function getProviderHelper(
|
|
235
239
|
provider: InferenceProviderOrPolicy,
|
|
236
|
-
task: "audio-to-audio"
|
|
240
|
+
task: "audio-to-audio",
|
|
237
241
|
): AudioToAudioTaskHelper & TaskProviderHelper;
|
|
238
242
|
export function getProviderHelper(
|
|
239
243
|
provider: InferenceProviderOrPolicy,
|
|
240
|
-
task: "fill-mask"
|
|
244
|
+
task: "fill-mask",
|
|
241
245
|
): FillMaskTaskHelper & TaskProviderHelper;
|
|
242
246
|
export function getProviderHelper(
|
|
243
247
|
provider: InferenceProviderOrPolicy,
|
|
244
|
-
task: "feature-extraction"
|
|
248
|
+
task: "feature-extraction",
|
|
245
249
|
): FeatureExtractionTaskHelper & TaskProviderHelper;
|
|
246
250
|
export function getProviderHelper(
|
|
247
251
|
provider: InferenceProviderOrPolicy,
|
|
248
|
-
task: "image-classification"
|
|
252
|
+
task: "image-classification",
|
|
249
253
|
): ImageClassificationTaskHelper & TaskProviderHelper;
|
|
250
254
|
export function getProviderHelper(
|
|
251
255
|
provider: InferenceProviderOrPolicy,
|
|
252
|
-
task: "image-segmentation"
|
|
256
|
+
task: "image-segmentation",
|
|
253
257
|
): ImageSegmentationTaskHelper & TaskProviderHelper;
|
|
254
258
|
export function getProviderHelper(
|
|
255
259
|
provider: InferenceProviderOrPolicy,
|
|
256
|
-
task: "document-question-answering"
|
|
260
|
+
task: "document-question-answering",
|
|
257
261
|
): DocumentQuestionAnsweringTaskHelper & TaskProviderHelper;
|
|
258
262
|
export function getProviderHelper(
|
|
259
263
|
provider: InferenceProviderOrPolicy,
|
|
260
|
-
task: "image-to-text"
|
|
264
|
+
task: "image-to-text",
|
|
261
265
|
): ImageToTextTaskHelper & TaskProviderHelper;
|
|
262
266
|
export function getProviderHelper(
|
|
263
267
|
provider: InferenceProviderOrPolicy,
|
|
264
|
-
task: "object-detection"
|
|
268
|
+
task: "object-detection",
|
|
265
269
|
): ObjectDetectionTaskHelper & TaskProviderHelper;
|
|
266
270
|
export function getProviderHelper(
|
|
267
271
|
provider: InferenceProviderOrPolicy,
|
|
268
|
-
task: "zero-shot-image-classification"
|
|
272
|
+
task: "zero-shot-image-classification",
|
|
269
273
|
): ZeroShotImageClassificationTaskHelper & TaskProviderHelper;
|
|
270
274
|
export function getProviderHelper(
|
|
271
275
|
provider: InferenceProviderOrPolicy,
|
|
272
|
-
task: "zero-shot-classification"
|
|
276
|
+
task: "zero-shot-classification",
|
|
273
277
|
): ZeroShotClassificationTaskHelper & TaskProviderHelper;
|
|
274
278
|
export function getProviderHelper(
|
|
275
279
|
provider: InferenceProviderOrPolicy,
|
|
276
|
-
task: "image-to-image"
|
|
280
|
+
task: "image-to-image",
|
|
277
281
|
): ImageToImageTaskHelper & TaskProviderHelper;
|
|
278
282
|
export function getProviderHelper(
|
|
279
283
|
provider: InferenceProviderOrPolicy,
|
|
280
|
-
task: "image-to-video"
|
|
284
|
+
task: "image-to-video",
|
|
281
285
|
): ImageToVideoTaskHelper & TaskProviderHelper;
|
|
282
286
|
export function getProviderHelper(
|
|
283
287
|
provider: InferenceProviderOrPolicy,
|
|
284
|
-
task: "image-text-to-image"
|
|
288
|
+
task: "image-text-to-image",
|
|
285
289
|
): ImageTextToImageTaskHelper & TaskProviderHelper;
|
|
286
290
|
export function getProviderHelper(
|
|
287
291
|
provider: InferenceProviderOrPolicy,
|
|
288
|
-
task: "image-text-to-video"
|
|
292
|
+
task: "image-text-to-video",
|
|
289
293
|
): ImageTextToVideoTaskHelper & TaskProviderHelper;
|
|
290
294
|
export function getProviderHelper(
|
|
291
295
|
provider: InferenceProviderOrPolicy,
|
|
292
|
-
task: "sentence-similarity"
|
|
296
|
+
task: "sentence-similarity",
|
|
293
297
|
): SentenceSimilarityTaskHelper & TaskProviderHelper;
|
|
294
298
|
export function getProviderHelper(
|
|
295
299
|
provider: InferenceProviderOrPolicy,
|
|
296
|
-
task: "table-question-answering"
|
|
300
|
+
task: "table-question-answering",
|
|
297
301
|
): TableQuestionAnsweringTaskHelper & TaskProviderHelper;
|
|
298
302
|
export function getProviderHelper(
|
|
299
303
|
provider: InferenceProviderOrPolicy,
|
|
300
|
-
task: "tabular-classification"
|
|
304
|
+
task: "tabular-classification",
|
|
301
305
|
): TabularClassificationTaskHelper & TaskProviderHelper;
|
|
302
306
|
export function getProviderHelper(
|
|
303
307
|
provider: InferenceProviderOrPolicy,
|
|
304
|
-
task: "tabular-regression"
|
|
308
|
+
task: "tabular-regression",
|
|
305
309
|
): TabularRegressionTaskHelper & TaskProviderHelper;
|
|
306
310
|
export function getProviderHelper(
|
|
307
311
|
provider: InferenceProviderOrPolicy,
|
|
308
|
-
task: "token-classification"
|
|
312
|
+
task: "token-classification",
|
|
309
313
|
): TokenClassificationTaskHelper & TaskProviderHelper;
|
|
310
314
|
export function getProviderHelper(
|
|
311
315
|
provider: InferenceProviderOrPolicy,
|
|
312
|
-
task: "translation"
|
|
316
|
+
task: "translation",
|
|
313
317
|
): TranslationTaskHelper & TaskProviderHelper;
|
|
314
318
|
export function getProviderHelper(
|
|
315
319
|
provider: InferenceProviderOrPolicy,
|
|
316
|
-
task: "summarization"
|
|
320
|
+
task: "summarization",
|
|
317
321
|
): SummarizationTaskHelper & TaskProviderHelper;
|
|
318
322
|
export function getProviderHelper(
|
|
319
323
|
provider: InferenceProviderOrPolicy,
|
|
320
|
-
task: "visual-question-answering"
|
|
324
|
+
task: "visual-question-answering",
|
|
321
325
|
): VisualQuestionAnsweringTaskHelper & TaskProviderHelper;
|
|
322
326
|
export function getProviderHelper(
|
|
323
327
|
provider: InferenceProviderOrPolicy,
|
|
324
|
-
task: InferenceTask | undefined
|
|
328
|
+
task: InferenceTask | undefined,
|
|
325
329
|
): TaskProviderHelper;
|
|
326
330
|
export function getProviderHelper(
|
|
327
331
|
provider: InferenceProviderOrPolicy,
|
|
328
|
-
task: InferenceTask | undefined
|
|
332
|
+
task: InferenceTask | undefined,
|
|
329
333
|
): TaskProviderHelper {
|
|
330
334
|
if ((provider === "hf-inference" && !task) || provider === "auto") {
|
|
331
335
|
return new HFInference.HFInferenceTask();
|
|
332
336
|
}
|
|
333
337
|
if (!task) {
|
|
334
338
|
throw new InferenceClientInputError(
|
|
335
|
-
"you need to provide a task name when using an external provider, e.g. 'text-to-image'"
|
|
339
|
+
"you need to provide a task name when using an external provider, e.g. 'text-to-image'",
|
|
336
340
|
);
|
|
337
341
|
}
|
|
338
342
|
if (!(provider in PROVIDERS)) {
|
|
339
343
|
throw new InferenceClientInputError(
|
|
340
|
-
`Provider '${provider}' not supported. Available providers: ${Object.keys(PROVIDERS)}
|
|
344
|
+
`Provider '${provider}' not supported. Available providers: ${Object.keys(PROVIDERS)}`,
|
|
341
345
|
);
|
|
342
346
|
}
|
|
343
347
|
const providerTasks = PROVIDERS[provider];
|
|
344
348
|
if (!providerTasks || !(task in providerTasks)) {
|
|
345
349
|
throw new InferenceClientInputError(
|
|
346
|
-
`Task '${task}' not supported for provider '${provider}'. Available tasks: ${Object.keys(providerTasks ?? {})}
|
|
350
|
+
`Task '${task}' not supported for provider '${provider}'. Available tasks: ${Object.keys(providerTasks ?? {})}`,
|
|
347
351
|
);
|
|
348
352
|
}
|
|
349
353
|
return providerTasks[task] as TaskProviderHelper;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { HF_HEADER_X_BILL_TO, HF_HUB_URL } from "../config.js";
|
|
2
2
|
import { PACKAGE_NAME, PACKAGE_VERSION } from "../package.js";
|
|
3
|
-
import type { InferenceTask, InferenceProviderMappingEntry, Options, RequestArgs } from "../types.js";
|
|
3
|
+
import type { InferenceTask, InferenceProviderMappingEntry, Options, OutputType, RequestArgs } from "../types.js";
|
|
4
4
|
import { getInferenceProviderMapping } from "./getInferenceProviderMapping.js";
|
|
5
5
|
import type { getProviderHelper } from "./getProviderHelper.js";
|
|
6
6
|
import { isUrl } from "./isUrl.js";
|
|
@@ -25,7 +25,7 @@ export async function makeRequestOptions(
|
|
|
25
25
|
options?: Options & {
|
|
26
26
|
/** In most cases (unless we pass a endpointUrl) we know the task */
|
|
27
27
|
task?: InferenceTask;
|
|
28
|
-
}
|
|
28
|
+
},
|
|
29
29
|
): Promise<{ url: string; info: RequestInit }> {
|
|
30
30
|
const { model: maybeModel } = args;
|
|
31
31
|
const provider = providerHelper.provider;
|
|
@@ -46,7 +46,7 @@ export async function makeRequestOptions(
|
|
|
46
46
|
providerHelper,
|
|
47
47
|
args,
|
|
48
48
|
undefined,
|
|
49
|
-
options
|
|
49
|
+
options,
|
|
50
50
|
);
|
|
51
51
|
}
|
|
52
52
|
|
|
@@ -71,7 +71,7 @@ export async function makeRequestOptions(
|
|
|
71
71
|
status: "live",
|
|
72
72
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
73
73
|
task: task!,
|
|
74
|
-
|
|
74
|
+
} satisfies InferenceProviderMappingEntry)
|
|
75
75
|
: await getInferenceProviderMapping(
|
|
76
76
|
{
|
|
77
77
|
modelId: hfModel,
|
|
@@ -80,11 +80,11 @@ export async function makeRequestOptions(
|
|
|
80
80
|
provider,
|
|
81
81
|
accessToken: args.accessToken,
|
|
82
82
|
},
|
|
83
|
-
{ fetch: options?.fetch }
|
|
84
|
-
|
|
83
|
+
{ fetch: options?.fetch },
|
|
84
|
+
);
|
|
85
85
|
if (!inferenceProviderMapping) {
|
|
86
86
|
throw new InferenceClientInputError(
|
|
87
|
-
`We have not been able to find inference provider information for model ${hfModel}
|
|
87
|
+
`We have not been able to find inference provider information for model ${hfModel}.`,
|
|
88
88
|
);
|
|
89
89
|
}
|
|
90
90
|
|
|
@@ -94,7 +94,7 @@ export async function makeRequestOptions(
|
|
|
94
94
|
providerHelper,
|
|
95
95
|
args,
|
|
96
96
|
inferenceProviderMapping,
|
|
97
|
-
options
|
|
97
|
+
options,
|
|
98
98
|
);
|
|
99
99
|
}
|
|
100
100
|
|
|
@@ -112,15 +112,16 @@ export function makeRequestOptionsFromResolvedModel(
|
|
|
112
112
|
mapping: InferenceProviderMappingEntry | undefined,
|
|
113
113
|
options?: Options & {
|
|
114
114
|
task?: InferenceTask;
|
|
115
|
-
|
|
115
|
+
outputType?: OutputType;
|
|
116
|
+
},
|
|
116
117
|
): { url: string; info: RequestInit } {
|
|
117
|
-
const { accessToken, endpointUrl, provider: maybeProvider, model, ...remainingArgs } = args;
|
|
118
|
+
const { accessToken, endpointUrl, provider: maybeProvider, model, urlTransform, ...remainingArgs } = args;
|
|
118
119
|
void model;
|
|
119
120
|
void maybeProvider;
|
|
120
121
|
|
|
121
122
|
const provider = providerHelper.provider;
|
|
122
123
|
|
|
123
|
-
const { includeCredentials, task, signal, billTo } = options ?? {};
|
|
124
|
+
const { includeCredentials, task, signal, billTo, outputType } = options ?? {};
|
|
124
125
|
const authMethod = (() => {
|
|
125
126
|
if (providerHelper.clientSideRoutingOnly) {
|
|
126
127
|
// Closed-source providers require an accessToken (cannot be routed).
|
|
@@ -145,6 +146,7 @@ export function makeRequestOptionsFromResolvedModel(
|
|
|
145
146
|
authMethod,
|
|
146
147
|
model: modelId,
|
|
147
148
|
task,
|
|
149
|
+
urlTransform,
|
|
148
150
|
});
|
|
149
151
|
// Make headers
|
|
150
152
|
const headers = providerHelper.prepareHeaders(
|
|
@@ -152,7 +154,7 @@ export function makeRequestOptionsFromResolvedModel(
|
|
|
152
154
|
accessToken,
|
|
153
155
|
authMethod,
|
|
154
156
|
},
|
|
155
|
-
"data" in args && !!args.data
|
|
157
|
+
"data" in args && !!args.data,
|
|
156
158
|
);
|
|
157
159
|
if (billTo) {
|
|
158
160
|
headers[HF_HEADER_X_BILL_TO] = billTo;
|
|
@@ -172,6 +174,7 @@ export function makeRequestOptionsFromResolvedModel(
|
|
|
172
174
|
model: resolvedModel,
|
|
173
175
|
task,
|
|
174
176
|
mapping,
|
|
177
|
+
outputType,
|
|
175
178
|
});
|
|
176
179
|
/**
|
|
177
180
|
* For edge runtimes, leave 'credentials' undefined, otherwise cloudflare workers will error
|
|
@@ -200,7 +203,7 @@ async function loadDefaultModel(task: InferenceTask): Promise<string> {
|
|
|
200
203
|
const taskInfo = tasks[task];
|
|
201
204
|
if ((taskInfo?.models.length ?? 0) <= 0) {
|
|
202
205
|
throw new InferenceClientInputError(
|
|
203
|
-
`No default model defined for task ${task}, please define the model explicitly
|
|
206
|
+
`No default model defined for task ${task}, please define the model explicitly.`,
|
|
204
207
|
);
|
|
205
208
|
}
|
|
206
209
|
return taskInfo.models[0].id;
|
|
@@ -214,7 +217,7 @@ async function loadTaskInfo(): Promise<Record<string, { models: { id: string }[]
|
|
|
214
217
|
throw new InferenceClientHubApiError(
|
|
215
218
|
"Failed to load tasks definitions from Hugging Face Hub.",
|
|
216
219
|
{ url, method: "GET" },
|
|
217
|
-
{ requestId: res.headers.get("x-request-id") ?? "", status: res.status, body: await res.text() }
|
|
220
|
+
{ requestId: res.headers.get("x-request-id") ?? "", status: res.status, body: await res.text() },
|
|
218
221
|
);
|
|
219
222
|
}
|
|
220
223
|
return await res.json();
|
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.13.
|
|
2
|
+
export const PACKAGE_VERSION = "4.13.11";
|
|
3
3
|
export const PACKAGE_NAME = "@huggingface/inference";
|
|
@@ -66,7 +66,7 @@ export class BlackForestLabsTextToImageTask extends TaskProviderHelper implement
|
|
|
66
66
|
response: BlackForestLabsResponse,
|
|
67
67
|
url?: string,
|
|
68
68
|
headers?: HeadersInit,
|
|
69
|
-
outputType?: "url" | "blob" | "json"
|
|
69
|
+
outputType?: "url" | "blob" | "json",
|
|
70
70
|
): Promise<string | Blob | Record<string, unknown>> {
|
|
71
71
|
const logger = getLogger();
|
|
72
72
|
const urlObj = new URL(response.polling_url);
|
|
@@ -79,7 +79,7 @@ export class BlackForestLabsTextToImageTask extends TaskProviderHelper implement
|
|
|
79
79
|
throw new InferenceClientProviderApiError(
|
|
80
80
|
"Failed to fetch result from black forest labs API",
|
|
81
81
|
{ url: urlObj.toString(), method: "GET", headers: { "Content-Type": "application/json" } },
|
|
82
|
-
{ requestId: resp.headers.get("x-request-id") ?? "", status: resp.status, body: await resp.text() }
|
|
82
|
+
{ requestId: resp.headers.get("x-request-id") ?? "", status: resp.status, body: await resp.text() },
|
|
83
83
|
);
|
|
84
84
|
}
|
|
85
85
|
const payload = await resp.json();
|
|
@@ -106,7 +106,7 @@ export class BlackForestLabsTextToImageTask extends TaskProviderHelper implement
|
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
throw new InferenceClientProviderOutputError(
|
|
109
|
-
`Timed out while waiting for the result from black forest labs API - aborting after 5 attempts
|
|
109
|
+
`Timed out while waiting for the result from black forest labs API - aborting after 5 attempts`,
|
|
110
110
|
);
|
|
111
111
|
}
|
|
112
112
|
}
|