@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.
Files changed (146) hide show
  1. package/dist/commonjs/lib/getProviderHelper.d.ts.map +1 -1
  2. package/dist/commonjs/lib/getProviderHelper.js +8 -4
  3. package/dist/commonjs/lib/makeRequestOptions.d.ts +2 -1
  4. package/dist/commonjs/lib/makeRequestOptions.d.ts.map +1 -1
  5. package/dist/commonjs/lib/makeRequestOptions.js +4 -2
  6. package/dist/commonjs/package.d.ts +1 -1
  7. package/dist/commonjs/package.d.ts.map +1 -1
  8. package/dist/commonjs/package.js +1 -1
  9. package/dist/commonjs/providers/fal-ai.d.ts +13 -3
  10. package/dist/commonjs/providers/fal-ai.d.ts.map +1 -1
  11. package/dist/commonjs/providers/fal-ai.js +49 -2
  12. package/dist/commonjs/providers/hf-inference.d.ts +3 -2
  13. package/dist/commonjs/providers/hf-inference.d.ts.map +1 -1
  14. package/dist/commonjs/providers/hf-inference.js +14 -8
  15. package/dist/commonjs/providers/hyperbolic.d.ts +2 -2
  16. package/dist/commonjs/providers/hyperbolic.d.ts.map +1 -1
  17. package/dist/commonjs/providers/hyperbolic.js +4 -1
  18. package/dist/commonjs/providers/nebius.d.ts +5 -4
  19. package/dist/commonjs/providers/nebius.d.ts.map +1 -1
  20. package/dist/commonjs/providers/nebius.js +11 -8
  21. package/dist/commonjs/providers/nscale.d.ts +2 -2
  22. package/dist/commonjs/providers/nscale.d.ts.map +1 -1
  23. package/dist/commonjs/providers/nscale.js +4 -1
  24. package/dist/commonjs/providers/providerHelper.d.ts +3 -3
  25. package/dist/commonjs/providers/providerHelper.d.ts.map +1 -1
  26. package/dist/commonjs/providers/providerHelper.js +3 -0
  27. package/dist/commonjs/providers/replicate.d.ts +2 -2
  28. package/dist/commonjs/providers/replicate.d.ts.map +1 -1
  29. package/dist/commonjs/providers/replicate.js +11 -3
  30. package/dist/commonjs/providers/together.d.ts +5 -4
  31. package/dist/commonjs/providers/together.d.ts.map +1 -1
  32. package/dist/commonjs/providers/together.js +11 -8
  33. package/dist/commonjs/providers/wavespeed.d.ts +14 -4
  34. package/dist/commonjs/providers/wavespeed.d.ts.map +1 -1
  35. package/dist/commonjs/providers/wavespeed.js +30 -2
  36. package/dist/commonjs/providers/zai-org.d.ts +2 -2
  37. package/dist/commonjs/providers/zai-org.d.ts.map +1 -1
  38. package/dist/commonjs/providers/zai-org.js +3 -1
  39. package/dist/commonjs/snippets/getInferenceSnippets.js +11 -20
  40. package/dist/commonjs/tasks/cv/textToImage.d.ts +5 -2
  41. package/dist/commonjs/tasks/cv/textToImage.d.ts.map +1 -1
  42. package/dist/commonjs/types.d.ts +4 -0
  43. package/dist/commonjs/types.d.ts.map +1 -1
  44. package/dist/commonjs/utils/dataUrlFromBlob.d.ts +2 -0
  45. package/dist/commonjs/utils/dataUrlFromBlob.d.ts.map +1 -0
  46. package/dist/commonjs/utils/dataUrlFromBlob.js +9 -0
  47. package/dist/esm/lib/getProviderHelper.d.ts.map +1 -1
  48. package/dist/esm/lib/getProviderHelper.js +8 -4
  49. package/dist/esm/lib/makeRequestOptions.d.ts +2 -1
  50. package/dist/esm/lib/makeRequestOptions.d.ts.map +1 -1
  51. package/dist/esm/lib/makeRequestOptions.js +4 -2
  52. package/dist/esm/package.d.ts +1 -1
  53. package/dist/esm/package.d.ts.map +1 -1
  54. package/dist/esm/package.js +1 -1
  55. package/dist/esm/providers/fal-ai.d.ts +13 -3
  56. package/dist/esm/providers/fal-ai.d.ts.map +1 -1
  57. package/dist/esm/providers/fal-ai.js +46 -1
  58. package/dist/esm/providers/hf-inference.d.ts +3 -2
  59. package/dist/esm/providers/hf-inference.d.ts.map +1 -1
  60. package/dist/esm/providers/hf-inference.js +15 -9
  61. package/dist/esm/providers/hyperbolic.d.ts +2 -2
  62. package/dist/esm/providers/hyperbolic.d.ts.map +1 -1
  63. package/dist/esm/providers/hyperbolic.js +5 -2
  64. package/dist/esm/providers/nebius.d.ts +5 -4
  65. package/dist/esm/providers/nebius.d.ts.map +1 -1
  66. package/dist/esm/providers/nebius.js +11 -8
  67. package/dist/esm/providers/nscale.d.ts +2 -2
  68. package/dist/esm/providers/nscale.d.ts.map +1 -1
  69. package/dist/esm/providers/nscale.js +5 -2
  70. package/dist/esm/providers/providerHelper.d.ts +3 -3
  71. package/dist/esm/providers/providerHelper.d.ts.map +1 -1
  72. package/dist/esm/providers/providerHelper.js +3 -0
  73. package/dist/esm/providers/replicate.d.ts +2 -2
  74. package/dist/esm/providers/replicate.d.ts.map +1 -1
  75. package/dist/esm/providers/replicate.js +11 -3
  76. package/dist/esm/providers/together.d.ts +5 -4
  77. package/dist/esm/providers/together.d.ts.map +1 -1
  78. package/dist/esm/providers/together.js +11 -8
  79. package/dist/esm/providers/wavespeed.d.ts +14 -4
  80. package/dist/esm/providers/wavespeed.d.ts.map +1 -1
  81. package/dist/esm/providers/wavespeed.js +27 -1
  82. package/dist/esm/providers/zai-org.d.ts +2 -2
  83. package/dist/esm/providers/zai-org.d.ts.map +1 -1
  84. package/dist/esm/providers/zai-org.js +3 -1
  85. package/dist/esm/snippets/getInferenceSnippets.js +11 -20
  86. package/dist/esm/tasks/cv/textToImage.d.ts +5 -2
  87. package/dist/esm/tasks/cv/textToImage.d.ts.map +1 -1
  88. package/dist/esm/types.d.ts +4 -0
  89. package/dist/esm/types.d.ts.map +1 -1
  90. package/dist/esm/utils/dataUrlFromBlob.d.ts +2 -0
  91. package/dist/esm/utils/dataUrlFromBlob.d.ts.map +1 -0
  92. package/dist/esm/utils/dataUrlFromBlob.js +6 -0
  93. package/package.json +34 -34
  94. package/src/InferenceClient.ts +2 -2
  95. package/src/errors.ts +1 -1
  96. package/src/lib/getDefaultTask.ts +1 -1
  97. package/src/lib/getInferenceProviderMapping.ts +11 -11
  98. package/src/lib/getProviderHelper.ts +45 -41
  99. package/src/lib/makeRequestOptions.ts +17 -14
  100. package/src/package.ts +1 -1
  101. package/src/providers/black-forest-labs.ts +3 -3
  102. package/src/providers/fal-ai.ts +92 -36
  103. package/src/providers/featherless-ai.ts +1 -1
  104. package/src/providers/hf-inference.ts +66 -57
  105. package/src/providers/hyperbolic.ts +10 -5
  106. package/src/providers/nebius.ts +19 -13
  107. package/src/providers/novita.ts +7 -7
  108. package/src/providers/nscale.ts +9 -4
  109. package/src/providers/ovhcloud.ts +1 -1
  110. package/src/providers/providerHelper.ts +19 -8
  111. package/src/providers/replicate.ts +14 -6
  112. package/src/providers/sambanova.ts +1 -1
  113. package/src/providers/together.ts +19 -13
  114. package/src/providers/wavespeed.ts +56 -12
  115. package/src/providers/zai-org.ts +11 -9
  116. package/src/snippets/getInferenceSnippets.ts +26 -26
  117. package/src/tasks/audio/audioClassification.ts +1 -1
  118. package/src/tasks/audio/automaticSpeechRecognition.ts +1 -1
  119. package/src/tasks/audio/utils.ts +1 -1
  120. package/src/tasks/custom/request.ts +2 -2
  121. package/src/tasks/custom/streamingRequest.ts +2 -2
  122. package/src/tasks/cv/imageClassification.ts +1 -1
  123. package/src/tasks/cv/imageSegmentation.ts +1 -1
  124. package/src/tasks/cv/textToImage.ts +10 -6
  125. package/src/tasks/cv/textToVideo.ts +1 -1
  126. package/src/tasks/cv/zeroShotImageClassification.ts +3 -3
  127. package/src/tasks/multimodal/documentQuestionAnswering.ts +2 -2
  128. package/src/tasks/multimodal/visualQuestionAnswering.ts +1 -1
  129. package/src/tasks/nlp/chatCompletion.ts +1 -1
  130. package/src/tasks/nlp/chatCompletionStream.ts +1 -1
  131. package/src/tasks/nlp/featureExtraction.ts +1 -1
  132. package/src/tasks/nlp/questionAnswering.ts +2 -2
  133. package/src/tasks/nlp/sentenceSimilarity.ts +1 -1
  134. package/src/tasks/nlp/tableQuestionAnswering.ts +2 -2
  135. package/src/tasks/nlp/textClassification.ts +1 -1
  136. package/src/tasks/nlp/textGeneration.ts +1 -1
  137. package/src/tasks/nlp/textGenerationStream.ts +1 -1
  138. package/src/tasks/nlp/tokenClassification.ts +2 -2
  139. package/src/tasks/nlp/zeroShotClassification.ts +2 -2
  140. package/src/tasks/tabular/tabularClassification.ts +1 -1
  141. package/src/tasks/tabular/tabularRegression.ts +1 -1
  142. package/src/types.ts +5 -0
  143. package/src/utils/dataUrlFromBlob.ts +7 -0
  144. package/src/utils/pick.ts +1 -1
  145. package/src/utils/request.ts +20 -20
  146. 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
- } satisfies InferenceProviderMappingEntry)
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.9";
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
  }