@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.
- package/dist/commonjs/index.d.ts +1 -0
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +3 -1
- package/dist/commonjs/lib/getInferenceProviderMapping.d.ts.map +1 -1
- package/dist/commonjs/lib/getInferenceProviderMapping.js +6 -3
- package/dist/commonjs/lib/logger.d.ts +4 -0
- package/dist/commonjs/lib/logger.d.ts.map +1 -0
- package/dist/commonjs/lib/logger.js +11 -0
- package/dist/commonjs/package.d.ts +1 -1
- package/dist/commonjs/package.js +1 -1
- package/dist/commonjs/providers/black-forest-labs.d.ts.map +1 -1
- package/dist/commonjs/providers/black-forest-labs.js +3 -1
- package/dist/commonjs/snippets/getInferenceSnippets.d.ts.map +1 -1
- package/dist/commonjs/snippets/getInferenceSnippets.js +4 -2
- package/dist/commonjs/tasks/custom/request.d.ts.map +1 -1
- package/dist/commonjs/tasks/custom/request.js +3 -1
- package/dist/commonjs/tasks/custom/streamingRequest.d.ts.map +1 -1
- package/dist/commonjs/tasks/custom/streamingRequest.js +3 -1
- package/dist/commonjs/types.d.ts +7 -0
- package/dist/commonjs/types.d.ts.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/lib/getInferenceProviderMapping.d.ts.map +1 -1
- package/dist/esm/lib/getInferenceProviderMapping.js +6 -3
- package/dist/esm/lib/logger.d.ts +4 -0
- package/dist/esm/lib/logger.d.ts.map +1 -0
- package/dist/esm/lib/logger.js +7 -0
- package/dist/esm/package.d.ts +1 -1
- package/dist/esm/package.js +1 -1
- package/dist/esm/providers/black-forest-labs.d.ts.map +1 -1
- package/dist/esm/providers/black-forest-labs.js +3 -1
- package/dist/esm/snippets/getInferenceSnippets.d.ts.map +1 -1
- package/dist/esm/snippets/getInferenceSnippets.js +4 -2
- package/dist/esm/tasks/custom/request.d.ts.map +1 -1
- package/dist/esm/tasks/custom/request.js +3 -1
- package/dist/esm/tasks/custom/streamingRequest.d.ts.map +1 -1
- package/dist/esm/tasks/custom/streamingRequest.js +3 -1
- package/dist/esm/types.d.ts +7 -0
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/lib/getInferenceProviderMapping.ts +6 -3
- package/src/lib/logger.ts +11 -0
- package/src/package.ts +1 -1
- package/src/providers/black-forest-labs.ts +3 -1
- package/src/snippets/getInferenceSnippets.ts +4 -2
- package/src/tasks/custom/request.ts +3 -1
- package/src/tasks/custom/streamingRequest.ts +3 -1
- package/src/types.ts +8 -0
package/dist/commonjs/index.d.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
|
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/commonjs/index.js
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 @@
|
|
|
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
|
+
}
|
package/dist/commonjs/package.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PACKAGE_NAME = exports.PACKAGE_VERSION = void 0;
|
|
4
4
|
// Generated file from package.json. Issues importing JSON directly when publishing on commonjs/ESM - see https://github.com/microsoft/TypeScript/issues/51783
|
|
5
|
-
exports.PACKAGE_VERSION = "4.
|
|
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":"
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
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);
|
package/dist/commonjs/types.d.ts
CHANGED
|
@@ -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/dist/esm/index.d.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
|
export { snippets };
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -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
|
@@ -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;
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 @@
|
|
|
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"}
|
package/dist/esm/package.d.ts
CHANGED
package/dist/esm/package.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
// Generated file from package.json. Issues importing JSON directly when publishing on commonjs/ESM - see https://github.com/microsoft/TypeScript/issues/51783
|
|
2
|
-
export const PACKAGE_VERSION = "4.
|
|
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":"
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
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);
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -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.
|
package/dist/esm/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAExF;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,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
|
+
"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,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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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}.`);
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|