@huggingface/inference 4.3.2 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/commonjs/index.d.ts +1 -0
  2. package/dist/commonjs/index.d.ts.map +1 -1
  3. package/dist/commonjs/index.js +3 -1
  4. package/dist/commonjs/lib/getInferenceProviderMapping.d.ts.map +1 -1
  5. package/dist/commonjs/lib/getInferenceProviderMapping.js +6 -3
  6. package/dist/commonjs/lib/logger.d.ts +4 -0
  7. package/dist/commonjs/lib/logger.d.ts.map +1 -0
  8. package/dist/commonjs/lib/logger.js +11 -0
  9. package/dist/commonjs/package.d.ts +1 -1
  10. package/dist/commonjs/package.js +1 -1
  11. package/dist/commonjs/providers/black-forest-labs.d.ts.map +1 -1
  12. package/dist/commonjs/providers/black-forest-labs.js +3 -1
  13. package/dist/commonjs/snippets/getInferenceSnippets.d.ts.map +1 -1
  14. package/dist/commonjs/snippets/getInferenceSnippets.js +4 -2
  15. package/dist/commonjs/tasks/custom/request.d.ts.map +1 -1
  16. package/dist/commonjs/tasks/custom/request.js +3 -1
  17. package/dist/commonjs/tasks/custom/streamingRequest.d.ts.map +1 -1
  18. package/dist/commonjs/tasks/custom/streamingRequest.js +3 -1
  19. package/dist/commonjs/types.d.ts +7 -0
  20. package/dist/commonjs/types.d.ts.map +1 -1
  21. package/dist/esm/index.d.ts +1 -0
  22. package/dist/esm/index.d.ts.map +1 -1
  23. package/dist/esm/index.js +1 -0
  24. package/dist/esm/lib/getInferenceProviderMapping.d.ts.map +1 -1
  25. package/dist/esm/lib/getInferenceProviderMapping.js +6 -3
  26. package/dist/esm/lib/logger.d.ts +4 -0
  27. package/dist/esm/lib/logger.d.ts.map +1 -0
  28. package/dist/esm/lib/logger.js +7 -0
  29. package/dist/esm/package.d.ts +1 -1
  30. package/dist/esm/package.js +1 -1
  31. package/dist/esm/providers/black-forest-labs.d.ts.map +1 -1
  32. package/dist/esm/providers/black-forest-labs.js +3 -1
  33. package/dist/esm/snippets/getInferenceSnippets.d.ts.map +1 -1
  34. package/dist/esm/snippets/getInferenceSnippets.js +4 -2
  35. package/dist/esm/tasks/custom/request.d.ts.map +1 -1
  36. package/dist/esm/tasks/custom/request.js +3 -1
  37. package/dist/esm/tasks/custom/streamingRequest.d.ts.map +1 -1
  38. package/dist/esm/tasks/custom/streamingRequest.js +3 -1
  39. package/dist/esm/types.d.ts +7 -0
  40. package/dist/esm/types.d.ts.map +1 -1
  41. package/package.json +1 -1
  42. package/src/index.ts +1 -0
  43. package/src/lib/getInferenceProviderMapping.ts +6 -3
  44. package/src/lib/logger.ts +11 -0
  45. package/src/package.ts +1 -1
  46. package/src/providers/black-forest-labs.ts +3 -1
  47. package/src/snippets/getInferenceSnippets.ts +4 -2
  48. package/src/tasks/custom/request.ts +3 -1
  49. package/src/tasks/custom/streamingRequest.ts +3 -1
  50. package/src/types.ts +8 -0
@@ -5,5 +5,6 @@ export * from "./tasks/index.js";
5
5
  import * as snippets from "./snippets/index.js";
6
6
  export * from "./lib/getProviderHelper.js";
7
7
  export * from "./lib/makeRequestOptions.js";
8
+ export { setLogger } from "./lib/logger.js";
8
9
  export { snippets };
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC7F,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC7F,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -36,7 +36,7 @@ var __importStar = (this && this.__importStar) || (function () {
36
36
  };
37
37
  })();
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.snippets = exports.HfInference = exports.InferenceClientEndpoint = exports.InferenceClient = void 0;
39
+ exports.snippets = exports.setLogger = exports.HfInference = exports.InferenceClientEndpoint = exports.InferenceClient = void 0;
40
40
  var InferenceClient_js_1 = require("./InferenceClient.js");
41
41
  Object.defineProperty(exports, "InferenceClient", { enumerable: true, get: function () { return InferenceClient_js_1.InferenceClient; } });
42
42
  Object.defineProperty(exports, "InferenceClientEndpoint", { enumerable: true, get: function () { return InferenceClient_js_1.InferenceClientEndpoint; } });
@@ -48,3 +48,5 @@ const snippets = __importStar(require("./snippets/index.js"));
48
48
  exports.snippets = snippets;
49
49
  __exportStar(require("./lib/getProviderHelper.js"), exports);
50
50
  __exportStar(require("./lib/makeRequestOptions.js"), exports);
51
+ var logger_js_1 = require("./lib/logger.js");
52
+ Object.defineProperty(exports, "setLogger", { enumerable: true, get: function () { return logger_js_1.setLogger; } });
@@ -1 +1 @@
1
- {"version":3,"file":"getInferenceProviderMapping.d.ts","sourceRoot":"","sources":["../../../src/lib/getInferenceProviderMapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAIxH,eAAO,MAAM,6BAA6B,8CAAsD,CAAC;AA4CjG,wBAAsB,qCAAqC,CAC1D,OAAO,EAAE,OAAO,EAChB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;IACT,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtE,GACC,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAqD1C;AAED,wBAAsB,2BAA2B,CAChD,MAAM,EAAE;IACP,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE,UAAU,CAAC;CACjB,EACD,OAAO,EAAE;IACR,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtE,GACC,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAwB/C;AAED,wBAAsB,eAAe,CACpC,QAAQ,CAAC,EAAE,yBAAyB,EACpC,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,CAAC,CA0B5B"}
1
+ {"version":3,"file":"getInferenceProviderMapping.d.ts","sourceRoot":"","sources":["../../../src/lib/getInferenceProviderMapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAKxH,eAAO,MAAM,6BAA6B,8CAAsD,CAAC;AA4CjG,wBAAsB,qCAAqC,CAC1D,OAAO,EAAE,OAAO,EAChB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;IACT,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtE,GACC,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAqD1C;AAED,wBAAsB,2BAA2B,CAChD,MAAM,EAAE;IACP,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE,UAAU,CAAC;CACjB,EACD,OAAO,EAAE;IACR,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtE,GACC,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAyB/C;AAED,wBAAsB,eAAe,CACpC,QAAQ,CAAC,EAAE,yBAAyB,EACpC,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,CAAC,CA2B5B"}
@@ -9,6 +9,7 @@ const consts_js_1 = require("../providers/consts.js");
9
9
  const hf_inference_js_1 = require("../providers/hf-inference.js");
10
10
  const typedInclude_js_1 = require("../utils/typedInclude.js");
11
11
  const errors_js_1 = require("../errors.js");
12
+ const logger_js_1 = require("./logger.js");
12
13
  exports.inferenceProviderMappingCache = new Map();
13
14
  /**
14
15
  * Normalize inferenceProviderMapping to always return an array format.
@@ -73,6 +74,7 @@ async function fetchInferenceProviderMappingForModel(modelId, accessToken, optio
73
74
  return inferenceProviderMapping;
74
75
  }
75
76
  async function getInferenceProviderMapping(params, options) {
77
+ const logger = (0, logger_js_1.getLogger)();
76
78
  if (consts_js_1.HARDCODED_MODEL_INFERENCE_MAPPING[params.provider][params.modelId]) {
77
79
  return consts_js_1.HARDCODED_MODEL_INFERENCE_MAPPING[params.provider][params.modelId];
78
80
  }
@@ -86,13 +88,14 @@ async function getInferenceProviderMapping(params, options) {
86
88
  throw new errors_js_1.InferenceClientInputError(`Model ${params.modelId} is not supported for task ${params.task} and provider ${params.provider}. Supported task: ${providerMapping.task}.`);
87
89
  }
88
90
  if (providerMapping.status === "staging") {
89
- console.warn(`Model ${params.modelId} is in staging mode for provider ${params.provider}. Meant for test purposes only.`);
91
+ logger.warn(`Model ${params.modelId} is in staging mode for provider ${params.provider}. Meant for test purposes only.`);
90
92
  }
91
93
  return providerMapping;
92
94
  }
93
95
  return null;
94
96
  }
95
97
  async function resolveProvider(provider, modelId, endpointUrl) {
98
+ const logger = (0, logger_js_1.getLogger)();
96
99
  if (endpointUrl) {
97
100
  if (provider) {
98
101
  throw new errors_js_1.InferenceClientInputError("Specifying both endpointUrl and provider is not supported.");
@@ -101,7 +104,7 @@ async function resolveProvider(provider, modelId, endpointUrl) {
101
104
  return "hf-inference";
102
105
  }
103
106
  if (!provider) {
104
- console.log("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.");
107
+ logger.log("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.");
105
108
  provider = "auto";
106
109
  }
107
110
  if (provider === "auto") {
@@ -110,7 +113,7 @@ async function resolveProvider(provider, modelId, endpointUrl) {
110
113
  }
111
114
  const mappings = await fetchInferenceProviderMappingForModel(modelId);
112
115
  provider = mappings[0]?.provider;
113
- console.log("Auto selected provider:", provider);
116
+ logger.log("Auto selected provider:", provider);
114
117
  }
115
118
  if (!provider) {
116
119
  throw new errors_js_1.InferenceClientInputError(`No Inference Provider available for model ${modelId}.`);
@@ -0,0 +1,4 @@
1
+ import type { Logger } from "../types.js";
2
+ export declare function setLogger(logger: Logger): void;
3
+ export declare function getLogger(): Logger;
4
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/lib/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI1C,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setLogger = setLogger;
4
+ exports.getLogger = getLogger;
5
+ let globalLogger = console;
6
+ function setLogger(logger) {
7
+ globalLogger = logger;
8
+ }
9
+ function getLogger() {
10
+ return globalLogger;
11
+ }
@@ -1,3 +1,3 @@
1
- export declare const PACKAGE_VERSION = "4.3.2";
1
+ export declare const PACKAGE_VERSION = "4.4.0";
2
2
  export declare const PACKAGE_NAME = "@huggingface/inference";
3
3
  //# sourceMappingURL=package.d.ts.map
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;
4
4
  // Generated file from package.json. Issues importing JSON directly when publishing on commonjs/ESM - see https://github.com/microsoft/TypeScript/issues/51783
5
- exports.PACKAGE_VERSION = "4.3.2";
5
+ exports.PACKAGE_VERSION = "4.4.0";
6
6
  exports.PACKAGE_NAME = "@huggingface/inference";
@@ -1 +1 @@
1
- {"version":3,"file":"black-forest-labs.d.ts","sourceRoot":"","sources":["../../../src/providers/black-forest-labs.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGvE,OAAO,EAAE,kBAAkB,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGrF,UAAU,uBAAuB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,8BAA+B,SAAQ,kBAAmB,YAAW,qBAAqB;;IAKtG,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQlD,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAWtF,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAO9B,WAAW,CAChB,QAAQ,EAAE,uBAAuB,EACjC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,EACrB,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAsCzB"}
1
+ {"version":3,"file":"black-forest-labs.d.ts","sourceRoot":"","sources":["../../../src/providers/black-forest-labs.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGvE,OAAO,EAAE,kBAAkB,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGrF,UAAU,uBAAuB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,8BAA+B,SAAQ,kBAAmB,YAAW,qBAAqB;;IAKtG,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQlD,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAWtF,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAO9B,WAAW,CAChB,QAAQ,EAAE,uBAAuB,EACjC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,EACrB,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAuCzB"}
@@ -18,6 +18,7 @@ exports.BlackForestLabsTextToImageTask = void 0;
18
18
  * Thanks!
19
19
  */
20
20
  const errors_js_1 = require("../errors.js");
21
+ const logger_js_1 = require("../lib/logger.js");
21
22
  const delay_js_1 = require("../utils/delay.js");
22
23
  const omit_js_1 = require("../utils/omit.js");
23
24
  const providerHelper_js_1 = require("./providerHelper.js");
@@ -49,10 +50,11 @@ class BlackForestLabsTextToImageTask extends providerHelper_js_1.TaskProviderHel
49
50
  return `/v1/${params.model}`;
50
51
  }
51
52
  async getResponse(response, url, headers, outputType) {
53
+ const logger = (0, logger_js_1.getLogger)();
52
54
  const urlObj = new URL(response.polling_url);
53
55
  for (let step = 0; step < 5; step++) {
54
56
  await (0, delay_js_1.delay)(1000);
55
- console.debug(`Polling Black Forest Labs API for the result... ${step + 1}/5`);
57
+ logger.debug(`Polling Black Forest Labs API for the result... ${step + 1}/5`);
56
58
  urlObj.searchParams.set("attempt", step.toString(10));
57
59
  const resp = await fetch(urlObj, { headers: { "Content-Type": "application/json" } });
58
60
  if (!resp.ok) {
@@ -1 +1 @@
1
- {"version":3,"file":"getInferenceSnippets.d.ts","sourceRoot":"","sources":["../../../src/snippets/getInferenceSnippets.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EAGrB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,KAAK,EAAE,6BAA6B,EAAE,yBAAyB,EAA8B,MAAM,aAAa,CAAC;AAGxH,MAAM,MAAM,uBAAuB,GAAG;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AA2V5B,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,yBAAyB,EACnC,wBAAwB,CAAC,EAAE,6BAA6B,EACxD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,gBAAgB,EAAE,CAIpB"}
1
+ {"version":3,"file":"getInferenceSnippets.d.ts","sourceRoot":"","sources":["../../../src/snippets/getInferenceSnippets.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EAGrB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,KAAK,EAAE,6BAA6B,EAAE,yBAAyB,EAA8B,MAAM,aAAa,CAAC;AAIxH,MAAM,MAAM,uBAAuB,GAAG;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AA4V5B,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,yBAAyB,EACnC,wBAAwB,CAAC,EAAE,6BAA6B,EACxD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,gBAAgB,EAAE,CAIpB"}
@@ -6,6 +6,7 @@ const tasks_1 = require("@huggingface/tasks");
6
6
  const getProviderHelper_js_1 = require("../lib/getProviderHelper.js");
7
7
  const makeRequestOptions_js_1 = require("../lib/makeRequestOptions.js");
8
8
  const templates_exported_js_1 = require("./templates.exported.js");
9
+ const logger_js_1 = require("../lib/logger.js");
9
10
  const PYTHON_CLIENTS = ["huggingface_hub", "fal_client", "requests", "openai"];
10
11
  const JS_CLIENTS = ["fetch", "huggingface.js", "openai"];
11
12
  const SH_CLIENTS = ["curl"];
@@ -83,6 +84,7 @@ const ACCESS_TOKEN_DIRECT_REQUEST_PLACEHOLDER = "not_hf_token_placeholder";
83
84
  // Snippet generators
84
85
  const snippetGenerator = (templateName, inputPreparationFn) => {
85
86
  return (model, provider, inferenceProviderMapping, opts) => {
87
+ const logger = (0, logger_js_1.getLogger)();
86
88
  const providerModelId = inferenceProviderMapping?.providerId ?? model.id;
87
89
  /// Hacky: hard-code conversational templates here
88
90
  let task = model.pipeline_tag;
@@ -98,7 +100,7 @@ const snippetGenerator = (templateName, inputPreparationFn) => {
98
100
  providerHelper = (0, getProviderHelper_js_1.getProviderHelper)(provider, task);
99
101
  }
100
102
  catch (e) {
101
- console.error(`Failed to get provider helper for ${provider} (${task})`, e);
103
+ logger.error(`Failed to get provider helper for ${provider} (${task})`, e);
102
104
  return [];
103
105
  }
104
106
  const placeholder = opts?.directRequest
@@ -125,7 +127,7 @@ const snippetGenerator = (templateName, inputPreparationFn) => {
125
127
  providerInputs = JSON.parse(bodyAsObj);
126
128
  }
127
129
  catch (e) {
128
- console.error("Failed to parse body as JSON", e);
130
+ logger.error("Failed to parse body as JSON", e);
129
131
  }
130
132
  }
131
133
  /// Prepare template injection data
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../src/tasks/custom/request.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG1E;;;GAGG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC9B,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,OAAO,GAAG;IACnB,oEAAoE;IACpE,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB,GACC,OAAO,CAAC,CAAC,CAAC,CAQZ"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../src/tasks/custom/request.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI1E;;;GAGG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC9B,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,OAAO,GAAG;IACnB,oEAAoE;IACpE,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB,GACC,OAAO,CAAC,CAAC,CAAC,CASZ"}
@@ -4,12 +4,14 @@ exports.request = request;
4
4
  const getInferenceProviderMapping_js_1 = require("../../lib/getInferenceProviderMapping.js");
5
5
  const getProviderHelper_js_1 = require("../../lib/getProviderHelper.js");
6
6
  const request_js_1 = require("../../utils/request.js");
7
+ const logger_js_1 = require("../../lib/logger.js");
7
8
  /**
8
9
  * Primitive to make custom calls to the inference provider
9
10
  * @deprecated Use specific task functions instead. This function will be removed in a future version.
10
11
  */
11
12
  async function request(args, options) {
12
- console.warn("The request method is deprecated and will be removed in a future version of huggingface.js. Use specific task functions instead.");
13
+ const logger = (0, logger_js_1.getLogger)();
14
+ logger.warn("The request method is deprecated and will be removed in a future version of huggingface.js. Use specific task functions instead.");
13
15
  const provider = await (0, getInferenceProviderMapping_js_1.resolveProvider)(args.provider, args.model, args.endpointUrl);
14
16
  const providerHelper = (0, getProviderHelper_js_1.getProviderHelper)(provider, options?.task);
15
17
  const result = await (0, request_js_1.innerRequest)(args, providerHelper, options);
@@ -1 +1 @@
1
- {"version":3,"file":"streamingRequest.d.ts","sourceRoot":"","sources":["../../../../src/tasks/custom/streamingRequest.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG1E;;;GAGG;AACH,wBAAuB,gBAAgB,CAAC,CAAC,EACxC,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,OAAO,GAAG;IACnB,oEAAoE;IACpE,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB,GACC,cAAc,CAAC,CAAC,CAAC,CAOnB"}
1
+ {"version":3,"file":"streamingRequest.d.ts","sourceRoot":"","sources":["../../../../src/tasks/custom/streamingRequest.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI1E;;;GAGG;AACH,wBAAuB,gBAAgB,CAAC,CAAC,EACxC,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,OAAO,GAAG;IACnB,oEAAoE;IACpE,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB,GACC,cAAc,CAAC,CAAC,CAAC,CAQnB"}
@@ -4,12 +4,14 @@ exports.streamingRequest = streamingRequest;
4
4
  const getInferenceProviderMapping_js_1 = require("../../lib/getInferenceProviderMapping.js");
5
5
  const getProviderHelper_js_1 = require("../../lib/getProviderHelper.js");
6
6
  const request_js_1 = require("../../utils/request.js");
7
+ const logger_js_1 = require("../../lib/logger.js");
7
8
  /**
8
9
  * Primitive to make custom inference calls that expect server-sent events, and returns the response through a generator
9
10
  * @deprecated Use specific task functions instead. This function will be removed in a future version.
10
11
  */
11
12
  async function* streamingRequest(args, options) {
12
- console.warn("The streamingRequest method is deprecated and will be removed in a future version of huggingface.js. Use specific task functions instead.");
13
+ const logger = (0, logger_js_1.getLogger)();
14
+ logger.warn("The streamingRequest method is deprecated and will be removed in a future version of huggingface.js. Use specific task functions instead.");
13
15
  const provider = await (0, getInferenceProviderMapping_js_1.resolveProvider)(args.provider, args.model, args.endpointUrl);
14
16
  const providerHelper = (0, getProviderHelper_js_1.getProviderHelper)(provider, options?.task);
15
17
  yield* (0, request_js_1.innerStreamingRequest)(args, providerHelper, options);
@@ -3,6 +3,13 @@ import type { ChatCompletionInput, PipelineType, WidgetType } from "@huggingface
3
3
  * HF model id, like "meta-llama/Llama-3.3-70B-Instruct"
4
4
  */
5
5
  export type ModelId = string;
6
+ export interface Logger {
7
+ debug: (message: string, ...args: unknown[]) => void;
8
+ info: (message: string, ...args: unknown[]) => void;
9
+ warn: (message: string, ...args: unknown[]) => void;
10
+ error: (message: string, ...args: unknown[]) => void;
11
+ log: (message: string, ...args: unknown[]) => void;
12
+ }
6
13
  export interface Options {
7
14
  /**
8
15
  * (Default: true) Boolean. If a request 503s, the request will be retried with the same parameters.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAExF;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,OAAO;IACvB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEtC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,gBAAgB,CAAC;AAE9E,eAAO,MAAM,mBAAmB,kOAkBtB,CAAC;AAEX,eAAO,MAAM,qBAAqB,0OAA4C,CAAC;AAE/E,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/E,MAAM,WAAW,6BAA6B;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,cAAc,GAAG,YAAY,CAAC;CACrC;AAED,MAAM,WAAW,QAAQ;IACxB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,yBAAyB,CAAC;CACrC;AAED,MAAM,MAAM,WAAW,GAAG,QAAQ,GACjC,CACG;IAAE,IAAI,EAAE,IAAI,GAAG,WAAW,CAAA;CAAE,GAC5B;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GACnB;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GACrB,mBAAmB,CACrB,GAAG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,qBAAqB,GAAG,cAAc,CAAC;AAEtF,MAAM,WAAW,YAAY;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtF,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,6BAA6B,GAAG,SAAS,CAAC;IACpD,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,6 @@ export * from "./tasks/index.js";
5
5
  import * as snippets from "./snippets/index.js";
6
6
  export * from "./lib/getProviderHelper.js";
7
7
  export * from "./lib/makeRequestOptions.js";
8
+ export { setLogger } from "./lib/logger.js";
8
9
  export { snippets };
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC7F,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC7F,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,CAAC"}
package/dist/esm/index.js CHANGED
@@ -5,4 +5,5 @@ export * from "./tasks/index.js";
5
5
  import * as snippets from "./snippets/index.js";
6
6
  export * from "./lib/getProviderHelper.js";
7
7
  export * from "./lib/makeRequestOptions.js";
8
+ export { setLogger } from "./lib/logger.js";
8
9
  export { snippets };
@@ -1 +1 @@
1
- {"version":3,"file":"getInferenceProviderMapping.d.ts","sourceRoot":"","sources":["../../../src/lib/getInferenceProviderMapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAIxH,eAAO,MAAM,6BAA6B,8CAAsD,CAAC;AA4CjG,wBAAsB,qCAAqC,CAC1D,OAAO,EAAE,OAAO,EAChB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;IACT,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtE,GACC,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAqD1C;AAED,wBAAsB,2BAA2B,CAChD,MAAM,EAAE;IACP,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE,UAAU,CAAC;CACjB,EACD,OAAO,EAAE;IACR,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtE,GACC,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAwB/C;AAED,wBAAsB,eAAe,CACpC,QAAQ,CAAC,EAAE,yBAAyB,EACpC,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,CAAC,CA0B5B"}
1
+ {"version":3,"file":"getInferenceProviderMapping.d.ts","sourceRoot":"","sources":["../../../src/lib/getInferenceProviderMapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAKxH,eAAO,MAAM,6BAA6B,8CAAsD,CAAC;AA4CjG,wBAAsB,qCAAqC,CAC1D,OAAO,EAAE,OAAO,EAChB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;IACT,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtE,GACC,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAqD1C;AAED,wBAAsB,2BAA2B,CAChD,MAAM,EAAE;IACP,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE,UAAU,CAAC;CACjB,EACD,OAAO,EAAE;IACR,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtE,GACC,OAAO,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAyB/C;AAED,wBAAsB,eAAe,CACpC,QAAQ,CAAC,EAAE,yBAAyB,EACpC,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,CAAC,CA2B5B"}
@@ -3,6 +3,7 @@ import { HARDCODED_MODEL_INFERENCE_MAPPING } from "../providers/consts.js";
3
3
  import { EQUIVALENT_SENTENCE_TRANSFORMERS_TASKS } from "../providers/hf-inference.js";
4
4
  import { typedInclude } from "../utils/typedInclude.js";
5
5
  import { InferenceClientHubApiError, InferenceClientInputError } from "../errors.js";
6
+ import { getLogger } from "./logger.js";
6
7
  export const inferenceProviderMappingCache = new Map();
7
8
  /**
8
9
  * Normalize inferenceProviderMapping to always return an array format.
@@ -67,6 +68,7 @@ export async function fetchInferenceProviderMappingForModel(modelId, accessToken
67
68
  return inferenceProviderMapping;
68
69
  }
69
70
  export async function getInferenceProviderMapping(params, options) {
71
+ const logger = getLogger();
70
72
  if (HARDCODED_MODEL_INFERENCE_MAPPING[params.provider][params.modelId]) {
71
73
  return HARDCODED_MODEL_INFERENCE_MAPPING[params.provider][params.modelId];
72
74
  }
@@ -80,13 +82,14 @@ export async function getInferenceProviderMapping(params, options) {
80
82
  throw new InferenceClientInputError(`Model ${params.modelId} is not supported for task ${params.task} and provider ${params.provider}. Supported task: ${providerMapping.task}.`);
81
83
  }
82
84
  if (providerMapping.status === "staging") {
83
- console.warn(`Model ${params.modelId} is in staging mode for provider ${params.provider}. Meant for test purposes only.`);
85
+ logger.warn(`Model ${params.modelId} is in staging mode for provider ${params.provider}. Meant for test purposes only.`);
84
86
  }
85
87
  return providerMapping;
86
88
  }
87
89
  return null;
88
90
  }
89
91
  export async function resolveProvider(provider, modelId, endpointUrl) {
92
+ const logger = getLogger();
90
93
  if (endpointUrl) {
91
94
  if (provider) {
92
95
  throw new InferenceClientInputError("Specifying both endpointUrl and provider is not supported.");
@@ -95,7 +98,7 @@ export async function resolveProvider(provider, modelId, endpointUrl) {
95
98
  return "hf-inference";
96
99
  }
97
100
  if (!provider) {
98
- console.log("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.");
101
+ logger.log("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.");
99
102
  provider = "auto";
100
103
  }
101
104
  if (provider === "auto") {
@@ -104,7 +107,7 @@ export async function resolveProvider(provider, modelId, endpointUrl) {
104
107
  }
105
108
  const mappings = await fetchInferenceProviderMappingForModel(modelId);
106
109
  provider = mappings[0]?.provider;
107
- console.log("Auto selected provider:", provider);
110
+ logger.log("Auto selected provider:", provider);
108
111
  }
109
112
  if (!provider) {
110
113
  throw new InferenceClientInputError(`No Inference Provider available for model ${modelId}.`);
@@ -0,0 +1,4 @@
1
+ import type { Logger } from "../types.js";
2
+ export declare function setLogger(logger: Logger): void;
3
+ export declare function getLogger(): Logger;
4
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/lib/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI1C,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC"}
@@ -0,0 +1,7 @@
1
+ let globalLogger = console;
2
+ export function setLogger(logger) {
3
+ globalLogger = logger;
4
+ }
5
+ export function getLogger() {
6
+ return globalLogger;
7
+ }
@@ -1,3 +1,3 @@
1
- export declare const PACKAGE_VERSION = "4.3.2";
1
+ export declare const PACKAGE_VERSION = "4.4.0";
2
2
  export declare const PACKAGE_NAME = "@huggingface/inference";
3
3
  //# sourceMappingURL=package.d.ts.map
@@ -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.3.2";
2
+ export const PACKAGE_VERSION = "4.4.0";
3
3
  export const PACKAGE_NAME = "@huggingface/inference";
@@ -1 +1 @@
1
- {"version":3,"file":"black-forest-labs.d.ts","sourceRoot":"","sources":["../../../src/providers/black-forest-labs.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGvE,OAAO,EAAE,kBAAkB,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGrF,UAAU,uBAAuB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,8BAA+B,SAAQ,kBAAmB,YAAW,qBAAqB;;IAKtG,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQlD,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAWtF,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAO9B,WAAW,CAChB,QAAQ,EAAE,uBAAuB,EACjC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,EACrB,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAsCzB"}
1
+ {"version":3,"file":"black-forest-labs.d.ts","sourceRoot":"","sources":["../../../src/providers/black-forest-labs.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGvE,OAAO,EAAE,kBAAkB,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAGrF,UAAU,uBAAuB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,8BAA+B,SAAQ,kBAAmB,YAAW,qBAAqB;;IAKtG,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQlD,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAWtF,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAO9B,WAAW,CAChB,QAAQ,EAAE,uBAAuB,EACjC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,EACrB,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAuCzB"}
@@ -15,6 +15,7 @@
15
15
  * Thanks!
16
16
  */
17
17
  import { InferenceClientInputError, InferenceClientProviderApiError, InferenceClientProviderOutputError, } from "../errors.js";
18
+ import { getLogger } from "../lib/logger.js";
18
19
  import { delay } from "../utils/delay.js";
19
20
  import { omit } from "../utils/omit.js";
20
21
  import { TaskProviderHelper } from "./providerHelper.js";
@@ -46,10 +47,11 @@ export class BlackForestLabsTextToImageTask extends TaskProviderHelper {
46
47
  return `/v1/${params.model}`;
47
48
  }
48
49
  async getResponse(response, url, headers, outputType) {
50
+ const logger = getLogger();
49
51
  const urlObj = new URL(response.polling_url);
50
52
  for (let step = 0; step < 5; step++) {
51
53
  await delay(1000);
52
- console.debug(`Polling Black Forest Labs API for the result... ${step + 1}/5`);
54
+ logger.debug(`Polling Black Forest Labs API for the result... ${step + 1}/5`);
53
55
  urlObj.searchParams.set("attempt", step.toString(10));
54
56
  const resp = await fetch(urlObj, { headers: { "Content-Type": "application/json" } });
55
57
  if (!resp.ok) {
@@ -1 +1 @@
1
- {"version":3,"file":"getInferenceSnippets.d.ts","sourceRoot":"","sources":["../../../src/snippets/getInferenceSnippets.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EAGrB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,KAAK,EAAE,6BAA6B,EAAE,yBAAyB,EAA8B,MAAM,aAAa,CAAC;AAGxH,MAAM,MAAM,uBAAuB,GAAG;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AA2V5B,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,yBAAyB,EACnC,wBAAwB,CAAC,EAAE,6BAA6B,EACxD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,gBAAgB,EAAE,CAIpB"}
1
+ {"version":3,"file":"getInferenceSnippets.d.ts","sourceRoot":"","sources":["../../../src/snippets/getInferenceSnippets.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EAGrB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,KAAK,EAAE,6BAA6B,EAAE,yBAAyB,EAA8B,MAAM,aAAa,CAAC;AAIxH,MAAM,MAAM,uBAAuB,GAAG;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AA4V5B,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,yBAAyB,EACnC,wBAAwB,CAAC,EAAE,6BAA6B,EACxD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,gBAAgB,EAAE,CAIpB"}
@@ -3,6 +3,7 @@ import { getModelInputSnippet, inferenceSnippetLanguages, } from "@huggingface/t
3
3
  import { getProviderHelper } from "../lib/getProviderHelper.js";
4
4
  import { makeRequestOptionsFromResolvedModel } from "../lib/makeRequestOptions.js";
5
5
  import { templates } from "./templates.exported.js";
6
+ import { getLogger } from "../lib/logger.js";
6
7
  const PYTHON_CLIENTS = ["huggingface_hub", "fal_client", "requests", "openai"];
7
8
  const JS_CLIENTS = ["fetch", "huggingface.js", "openai"];
8
9
  const SH_CLIENTS = ["curl"];
@@ -80,6 +81,7 @@ const ACCESS_TOKEN_DIRECT_REQUEST_PLACEHOLDER = "not_hf_token_placeholder";
80
81
  // Snippet generators
81
82
  const snippetGenerator = (templateName, inputPreparationFn) => {
82
83
  return (model, provider, inferenceProviderMapping, opts) => {
84
+ const logger = getLogger();
83
85
  const providerModelId = inferenceProviderMapping?.providerId ?? model.id;
84
86
  /// Hacky: hard-code conversational templates here
85
87
  let task = model.pipeline_tag;
@@ -95,7 +97,7 @@ const snippetGenerator = (templateName, inputPreparationFn) => {
95
97
  providerHelper = getProviderHelper(provider, task);
96
98
  }
97
99
  catch (e) {
98
- console.error(`Failed to get provider helper for ${provider} (${task})`, e);
100
+ logger.error(`Failed to get provider helper for ${provider} (${task})`, e);
99
101
  return [];
100
102
  }
101
103
  const placeholder = opts?.directRequest
@@ -122,7 +124,7 @@ const snippetGenerator = (templateName, inputPreparationFn) => {
122
124
  providerInputs = JSON.parse(bodyAsObj);
123
125
  }
124
126
  catch (e) {
125
- console.error("Failed to parse body as JSON", e);
127
+ logger.error("Failed to parse body as JSON", e);
126
128
  }
127
129
  }
128
130
  /// Prepare template injection data
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../src/tasks/custom/request.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG1E;;;GAGG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC9B,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,OAAO,GAAG;IACnB,oEAAoE;IACpE,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB,GACC,OAAO,CAAC,CAAC,CAAC,CAQZ"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../src/tasks/custom/request.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI1E;;;GAGG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC9B,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,OAAO,GAAG;IACnB,oEAAoE;IACpE,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB,GACC,OAAO,CAAC,CAAC,CAAC,CASZ"}
@@ -1,12 +1,14 @@
1
1
  import { resolveProvider } from "../../lib/getInferenceProviderMapping.js";
2
2
  import { getProviderHelper } from "../../lib/getProviderHelper.js";
3
3
  import { innerRequest } from "../../utils/request.js";
4
+ import { getLogger } from "../../lib/logger.js";
4
5
  /**
5
6
  * Primitive to make custom calls to the inference provider
6
7
  * @deprecated Use specific task functions instead. This function will be removed in a future version.
7
8
  */
8
9
  export async function request(args, options) {
9
- console.warn("The request method is deprecated and will be removed in a future version of huggingface.js. Use specific task functions instead.");
10
+ const logger = getLogger();
11
+ logger.warn("The request method is deprecated and will be removed in a future version of huggingface.js. Use specific task functions instead.");
10
12
  const provider = await resolveProvider(args.provider, args.model, args.endpointUrl);
11
13
  const providerHelper = getProviderHelper(provider, options?.task);
12
14
  const result = await innerRequest(args, providerHelper, options);
@@ -1 +1 @@
1
- {"version":3,"file":"streamingRequest.d.ts","sourceRoot":"","sources":["../../../../src/tasks/custom/streamingRequest.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG1E;;;GAGG;AACH,wBAAuB,gBAAgB,CAAC,CAAC,EACxC,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,OAAO,GAAG;IACnB,oEAAoE;IACpE,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB,GACC,cAAc,CAAC,CAAC,CAAC,CAOnB"}
1
+ {"version":3,"file":"streamingRequest.d.ts","sourceRoot":"","sources":["../../../../src/tasks/custom/streamingRequest.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAI1E;;;GAGG;AACH,wBAAuB,gBAAgB,CAAC,CAAC,EACxC,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,OAAO,GAAG;IACnB,oEAAoE;IACpE,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB,GACC,cAAc,CAAC,CAAC,CAAC,CAQnB"}
@@ -1,12 +1,14 @@
1
1
  import { resolveProvider } from "../../lib/getInferenceProviderMapping.js";
2
2
  import { getProviderHelper } from "../../lib/getProviderHelper.js";
3
3
  import { innerStreamingRequest } from "../../utils/request.js";
4
+ import { getLogger } from "../../lib/logger.js";
4
5
  /**
5
6
  * Primitive to make custom inference calls that expect server-sent events, and returns the response through a generator
6
7
  * @deprecated Use specific task functions instead. This function will be removed in a future version.
7
8
  */
8
9
  export async function* streamingRequest(args, options) {
9
- console.warn("The streamingRequest method is deprecated and will be removed in a future version of huggingface.js. Use specific task functions instead.");
10
+ const logger = getLogger();
11
+ logger.warn("The streamingRequest method is deprecated and will be removed in a future version of huggingface.js. Use specific task functions instead.");
10
12
  const provider = await resolveProvider(args.provider, args.model, args.endpointUrl);
11
13
  const providerHelper = getProviderHelper(provider, options?.task);
12
14
  yield* innerStreamingRequest(args, providerHelper, options);
@@ -3,6 +3,13 @@ import type { ChatCompletionInput, PipelineType, WidgetType } from "@huggingface
3
3
  * HF model id, like "meta-llama/Llama-3.3-70B-Instruct"
4
4
  */
5
5
  export type ModelId = string;
6
+ export interface Logger {
7
+ debug: (message: string, ...args: unknown[]) => void;
8
+ info: (message: string, ...args: unknown[]) => void;
9
+ warn: (message: string, ...args: unknown[]) => void;
10
+ error: (message: string, ...args: unknown[]) => void;
11
+ log: (message: string, ...args: unknown[]) => void;
12
+ }
6
13
  export interface Options {
7
14
  /**
8
15
  * (Default: true) Boolean. If a request 503s, the request will be retried with the same parameters.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAExF;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,OAAO;IACvB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEtC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,gBAAgB,CAAC;AAE9E,eAAO,MAAM,mBAAmB,kOAkBtB,CAAC;AAEX,eAAO,MAAM,qBAAqB,0OAA4C,CAAC;AAE/E,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/E,MAAM,WAAW,6BAA6B;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,cAAc,GAAG,YAAY,CAAC;CACrC;AAED,MAAM,WAAW,QAAQ;IACxB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,yBAAyB,CAAC;CACrC;AAED,MAAM,MAAM,WAAW,GAAG,QAAQ,GACjC,CACG;IAAE,IAAI,EAAE,IAAI,GAAG,WAAW,CAAA;CAAE,GAC5B;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GACnB;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GACrB,mBAAmB,CACrB,GAAG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,qBAAqB,GAAG,cAAc,CAAC;AAEtF,MAAM,WAAW,YAAY;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtF,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,6BAA6B,GAAG,SAAS,CAAC;IACpD,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@huggingface/inference",
3
- "version": "4.3.2",
3
+ "version": "4.4.0",
4
4
  "license": "MIT",
5
5
  "author": "Hugging Face and Tim Mikeladze <tim.mikeladze@gmail.com>",
6
6
  "description": "Typescript client for the Hugging Face Inference Providers and Inference Endpoints",
package/src/index.ts CHANGED
@@ -5,5 +5,6 @@ export * from "./tasks/index.js";
5
5
  import * as snippets from "./snippets/index.js";
6
6
  export * from "./lib/getProviderHelper.js";
7
7
  export * from "./lib/makeRequestOptions.js";
8
+ export { setLogger } from "./lib/logger.js";
8
9
 
9
10
  export { snippets };
@@ -5,6 +5,7 @@ import { EQUIVALENT_SENTENCE_TRANSFORMERS_TASKS } from "../providers/hf-inferenc
5
5
  import type { InferenceProvider, InferenceProviderMappingEntry, InferenceProviderOrPolicy, ModelId } from "../types.js";
6
6
  import { typedInclude } from "../utils/typedInclude.js";
7
7
  import { InferenceClientHubApiError, InferenceClientInputError } from "../errors.js";
8
+ import { getLogger } from "./logger.js";
8
9
 
9
10
  export const inferenceProviderMappingCache = new Map<ModelId, InferenceProviderMappingEntry[]>();
10
11
 
@@ -122,6 +123,7 @@ export async function getInferenceProviderMapping(
122
123
  fetch?: (input: RequestInfo, init?: RequestInit) => Promise<Response>;
123
124
  }
124
125
  ): Promise<InferenceProviderMappingEntry | null> {
126
+ const logger = getLogger();
125
127
  if (HARDCODED_MODEL_INFERENCE_MAPPING[params.provider][params.modelId]) {
126
128
  return HARDCODED_MODEL_INFERENCE_MAPPING[params.provider][params.modelId];
127
129
  }
@@ -138,7 +140,7 @@ export async function getInferenceProviderMapping(
138
140
  );
139
141
  }
140
142
  if (providerMapping.status === "staging") {
141
- console.warn(
143
+ logger.warn(
142
144
  `Model ${params.modelId} is in staging mode for provider ${params.provider}. Meant for test purposes only.`
143
145
  );
144
146
  }
@@ -152,6 +154,7 @@ export async function resolveProvider(
152
154
  modelId?: string,
153
155
  endpointUrl?: string
154
156
  ): Promise<InferenceProvider> {
157
+ const logger = getLogger();
155
158
  if (endpointUrl) {
156
159
  if (provider) {
157
160
  throw new InferenceClientInputError("Specifying both endpointUrl and provider is not supported.");
@@ -160,7 +163,7 @@ export async function resolveProvider(
160
163
  return "hf-inference";
161
164
  }
162
165
  if (!provider) {
163
- console.log(
166
+ logger.log(
164
167
  "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."
165
168
  );
166
169
  provider = "auto";
@@ -171,7 +174,7 @@ export async function resolveProvider(
171
174
  }
172
175
  const mappings = await fetchInferenceProviderMappingForModel(modelId);
173
176
  provider = mappings[0]?.provider as InferenceProvider | undefined;
174
- console.log("Auto selected provider:", provider);
177
+ logger.log("Auto selected provider:", provider);
175
178
  }
176
179
  if (!provider) {
177
180
  throw new InferenceClientInputError(`No Inference Provider available for model ${modelId}.`);
@@ -0,0 +1,11 @@
1
+ import type { Logger } from "../types.js";
2
+
3
+ let globalLogger: Logger = console;
4
+
5
+ export function setLogger(logger: Logger): void {
6
+ globalLogger = logger;
7
+ }
8
+
9
+ export function getLogger(): Logger {
10
+ return globalLogger;
11
+ }
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.3.2";
2
+ export const PACKAGE_VERSION = "4.4.0";
3
3
  export const PACKAGE_NAME = "@huggingface/inference";
@@ -19,6 +19,7 @@ import {
19
19
  InferenceClientProviderApiError,
20
20
  InferenceClientProviderOutputError,
21
21
  } from "../errors.js";
22
+ import { getLogger } from "../lib/logger.js";
22
23
  import type { BodyParams, HeaderParams, UrlParams } from "../types.js";
23
24
  import { delay } from "../utils/delay.js";
24
25
  import { omit } from "../utils/omit.js";
@@ -67,10 +68,11 @@ export class BlackForestLabsTextToImageTask extends TaskProviderHelper implement
67
68
  headers?: HeadersInit,
68
69
  outputType?: "url" | "blob"
69
70
  ): Promise<string | Blob> {
71
+ const logger = getLogger();
70
72
  const urlObj = new URL(response.polling_url);
71
73
  for (let step = 0; step < 5; step++) {
72
74
  await delay(1000);
73
- console.debug(`Polling Black Forest Labs API for the result... ${step + 1}/5`);
75
+ logger.debug(`Polling Black Forest Labs API for the result... ${step + 1}/5`);
74
76
  urlObj.searchParams.set("attempt", step.toString(10));
75
77
  const resp = await fetch(urlObj, { headers: { "Content-Type": "application/json" } });
76
78
  if (!resp.ok) {
@@ -12,6 +12,7 @@ import { getProviderHelper } from "../lib/getProviderHelper.js";
12
12
  import { makeRequestOptionsFromResolvedModel } from "../lib/makeRequestOptions.js";
13
13
  import type { InferenceProviderMappingEntry, InferenceProviderOrPolicy, InferenceTask, RequestArgs } from "../types.js";
14
14
  import { templates } from "./templates.exported.js";
15
+ import { getLogger } from "../lib/logger.js";
15
16
 
16
17
  export type InferenceSnippetOptions = {
17
18
  streaming?: boolean;
@@ -140,6 +141,7 @@ const snippetGenerator = (templateName: string, inputPreparationFn?: InputPrepar
140
141
  inferenceProviderMapping?: InferenceProviderMappingEntry,
141
142
  opts?: InferenceSnippetOptions
142
143
  ): InferenceSnippet[] => {
144
+ const logger = getLogger();
143
145
  const providerModelId = inferenceProviderMapping?.providerId ?? model.id;
144
146
  /// Hacky: hard-code conversational templates here
145
147
  let task = model.pipeline_tag as InferenceTask;
@@ -156,7 +158,7 @@ const snippetGenerator = (templateName: string, inputPreparationFn?: InputPrepar
156
158
  try {
157
159
  providerHelper = getProviderHelper(provider, task);
158
160
  } catch (e) {
159
- console.error(`Failed to get provider helper for ${provider} (${task})`, e);
161
+ logger.error(`Failed to get provider helper for ${provider} (${task})`, e);
160
162
  return [];
161
163
  }
162
164
 
@@ -191,7 +193,7 @@ const snippetGenerator = (templateName: string, inputPreparationFn?: InputPrepar
191
193
  try {
192
194
  providerInputs = JSON.parse(bodyAsObj);
193
195
  } catch (e) {
194
- console.error("Failed to parse body as JSON", e);
196
+ logger.error("Failed to parse body as JSON", e);
195
197
  }
196
198
  }
197
199
 
@@ -2,6 +2,7 @@ import { resolveProvider } from "../../lib/getInferenceProviderMapping.js";
2
2
  import { getProviderHelper } from "../../lib/getProviderHelper.js";
3
3
  import type { InferenceTask, Options, RequestArgs } from "../../types.js";
4
4
  import { innerRequest } from "../../utils/request.js";
5
+ import { getLogger } from "../../lib/logger.js";
5
6
 
6
7
  /**
7
8
  * Primitive to make custom calls to the inference provider
@@ -14,7 +15,8 @@ export async function request<T>(
14
15
  task?: InferenceTask;
15
16
  }
16
17
  ): Promise<T> {
17
- console.warn(
18
+ const logger = getLogger();
19
+ logger.warn(
18
20
  "The request method is deprecated and will be removed in a future version of huggingface.js. Use specific task functions instead."
19
21
  );
20
22
  const provider = await resolveProvider(args.provider, args.model, args.endpointUrl);
@@ -2,6 +2,7 @@ import { resolveProvider } from "../../lib/getInferenceProviderMapping.js";
2
2
  import { getProviderHelper } from "../../lib/getProviderHelper.js";
3
3
  import type { InferenceTask, Options, RequestArgs } from "../../types.js";
4
4
  import { innerStreamingRequest } from "../../utils/request.js";
5
+ import { getLogger } from "../../lib/logger.js";
5
6
 
6
7
  /**
7
8
  * Primitive to make custom inference calls that expect server-sent events, and returns the response through a generator
@@ -14,7 +15,8 @@ export async function* streamingRequest<T>(
14
15
  task?: InferenceTask;
15
16
  }
16
17
  ): AsyncGenerator<T> {
17
- console.warn(
18
+ const logger = getLogger();
19
+ logger.warn(
18
20
  "The streamingRequest method is deprecated and will be removed in a future version of huggingface.js. Use specific task functions instead."
19
21
  );
20
22
  const provider = await resolveProvider(args.provider, args.model, args.endpointUrl);
package/src/types.ts CHANGED
@@ -5,6 +5,14 @@ import type { ChatCompletionInput, PipelineType, WidgetType } from "@huggingface
5
5
  */
6
6
  export type ModelId = string;
7
7
 
8
+ export interface Logger {
9
+ debug: (message: string, ...args: unknown[]) => void;
10
+ info: (message: string, ...args: unknown[]) => void;
11
+ warn: (message: string, ...args: unknown[]) => void;
12
+ error: (message: string, ...args: unknown[]) => void;
13
+ log: (message: string, ...args: unknown[]) => void;
14
+ }
15
+
8
16
  export interface Options {
9
17
  /**
10
18
  * (Default: true) Boolean. If a request 503s, the request will be retried with the same parameters.