From 4fc001c8deae1ac620214b8b2cbde1ba3cd3e0d5 Mon Sep 17 00:00:00 2001
From: Alex Yang <himself65@outlook.com>
Date: Sun, 10 Nov 2024 20:14:44 -0800
Subject: [PATCH] chore: bump `@huggingface/transformers` (#1459)

---
 .changeset/pink-socks-kneel.md                |  10 ++
 .../nextjs-node-runtime/src/actions/openai.ts |   1 -
 e2e/node/embedding/clip.e2e.ts                |   2 +-
 e2e/package.json                              |   3 +-
 examples/vectorIndexLocal.ts                  |   1 -
 packages/env/package.json                     |   6 +-
 .../env/src/internal/multi-model/browser.ts   |   6 +-
 packages/env/src/internal/multi-model/node.ts |   2 +-
 .../env/src/internal/multi-model/non-node.ts  |   8 +-
 .../env/src/internal/multi-model/shared.ts    |   8 +-
 packages/llamaindex/package.json              |   2 +-
 packages/llamaindex/src/next.ts               |   2 +-
 packages/providers/clip/package.json          |   5 +-
 packages/providers/clip/src/embedding.ts      |  12 +-
 packages/providers/huggingface/package.json   |   5 +-
 .../providers/huggingface/src/embedding.ts    |  26 ++-
 packages/providers/huggingface/src/index.ts   |   5 +-
 packages/providers/huggingface/src/llm.ts     |  15 +-
 pnpm-lock.yaml                                | 149 ++++++++++++++----
 19 files changed, 196 insertions(+), 72 deletions(-)
 create mode 100644 .changeset/pink-socks-kneel.md

diff --git a/.changeset/pink-socks-kneel.md b/.changeset/pink-socks-kneel.md
new file mode 100644
index 000000000..3c7ead08b
--- /dev/null
+++ b/.changeset/pink-socks-kneel.md
@@ -0,0 +1,10 @@
+---
+"@llamaindex/env": patch
+"llamaindex": patch
+"@llamaindex/clip": patch
+"@llamaindex/huggingface": patch
+---
+
+chore: bump `@huggingface/transformers`
+
+Upgrade to v3, please read https://github.com/huggingface/transformers.js/releases/tag/3.0.0 for more information.
diff --git a/e2e/examples/nextjs-node-runtime/src/actions/openai.ts b/e2e/examples/nextjs-node-runtime/src/actions/openai.ts
index a5643bb92..28d9fe911 100644
--- a/e2e/examples/nextjs-node-runtime/src/actions/openai.ts
+++ b/e2e/examples/nextjs-node-runtime/src/actions/openai.ts
@@ -15,7 +15,6 @@ Settings.llm = new OpenAI({
 });
 Settings.embedModel = new HuggingFaceEmbedding({
   modelType: "BAAI/bge-small-en-v1.5",
-  quantized: false,
 });
 Settings.callbackManager.on("llm-tool-call", (event) => {
   console.log(event.detail);
diff --git a/e2e/node/embedding/clip.e2e.ts b/e2e/node/embedding/clip.e2e.ts
index e21c9fe16..3b6a8c2a7 100644
--- a/e2e/node/embedding/clip.e2e.ts
+++ b/e2e/node/embedding/clip.e2e.ts
@@ -64,7 +64,7 @@ await test("clip embedding", async (t) => {
   });
 
   await t.test("custom transformer", async () => {
-    const transformers = await import("@xenova/transformers");
+    const transformers = await import("@huggingface/transformers");
     const getter = test.mock.fn((t, k, r) => {
       return Reflect.get(t, k, r);
     });
diff --git a/e2e/package.json b/e2e/package.json
index 65a797cb3..55808e1e2 100644
--- a/e2e/package.json
+++ b/e2e/package.json
@@ -12,10 +12,11 @@
     "@faker-js/faker": "^9.2.0",
     "@llamaindex/core": "workspace:*",
     "@llamaindex/env": "workspace:*",
+    "@llamaindex/ollama": "workspace:*",
     "@llamaindex/openai": "workspace:*",
     "@types/node": "^22.9.0",
     "@types/pg": "^8.11.8",
-    "@xenova/transformers": "^2.17.2",
+    "@huggingface/transformers": "^3.0.2",
     "consola": "^3.2.3",
     "dotenv": "^16.4.5",
     "llamaindex": "workspace:*",
diff --git a/examples/vectorIndexLocal.ts b/examples/vectorIndexLocal.ts
index 859f21e0a..9d19e68ce 100644
--- a/examples/vectorIndexLocal.ts
+++ b/examples/vectorIndexLocal.ts
@@ -14,7 +14,6 @@ Settings.llm = new Ollama({
 
 Settings.embedModel = new HuggingFaceEmbedding({
   modelType: "BAAI/bge-small-en-v1.5",
-  quantized: false,
 });
 
 async function main() {
diff --git a/packages/env/package.json b/packages/env/package.json
index fc39cf6fd..433d40f52 100644
--- a/packages/env/package.json
+++ b/packages/env/package.json
@@ -124,7 +124,7 @@
   "devDependencies": {
     "@types/node": "^22.9.0",
     "@types/readable-stream": "^4.0.15",
-    "@xenova/transformers": "^2.17.2",
+    "@huggingface/transformers": "^3.0.2",
     "bunchee": "5.6.1",
     "gpt-tokenizer": "^2.6.0",
     "pathe": "^1.1.2",
@@ -132,7 +132,7 @@
   },
   "peerDependencies": {
     "@aws-crypto/sha256-js": "^5.2.0",
-    "@xenova/transformers": "^2.17.2",
+    "@huggingface/transformers": "^3.0.2",
     "gpt-tokenizer": "^2.5.0",
     "js-tiktoken": "^1.0.12",
     "pathe": "^1.1.2"
@@ -141,7 +141,7 @@
     "@aws-crypto/sha256-js": {
       "optional": true
     },
-    "@xenova/transformers": {
+    "@huggingface/transformers": {
       "optional": true
     },
     "pathe": {
diff --git a/packages/env/src/internal/multi-model/browser.ts b/packages/env/src/internal/multi-model/browser.ts
index 7f46c0472..f527eb8fb 100644
--- a/packages/env/src/internal/multi-model/browser.ts
+++ b/packages/env/src/internal/multi-model/browser.ts
@@ -8,8 +8,10 @@ export {
 export async function loadTransformers(onLoad: OnLoad) {
   if (getTransformers() === null) {
     setTransformers(
-      // @ts-expect-error no type
-      await import("https://cdn.jsdelivr.net/npm/@xenova/transformers@2.17.2"),
+      await import(
+        // @ts-expect-error no type
+        "https://cdn.jsdelivr.net/npm/@huggingface/transformers@3.0.2"
+      ),
     );
   } else {
     return getTransformers()!;
diff --git a/packages/env/src/internal/multi-model/node.ts b/packages/env/src/internal/multi-model/node.ts
index 2b3430060..b653cf616 100644
--- a/packages/env/src/internal/multi-model/node.ts
+++ b/packages/env/src/internal/multi-model/node.ts
@@ -8,7 +8,7 @@ export {
 
 export async function loadTransformers(onLoad: OnLoad) {
   if (getTransformers() === null) {
-    setTransformers(await import("@xenova/transformers"));
+    setTransformers(await import("@huggingface/transformers"));
   } else {
     return getTransformers()!;
   }
diff --git a/packages/env/src/internal/multi-model/non-node.ts b/packages/env/src/internal/multi-model/non-node.ts
index 6dba2e0c7..a8a320036 100644
--- a/packages/env/src/internal/multi-model/non-node.ts
+++ b/packages/env/src/internal/multi-model/non-node.ts
@@ -9,7 +9,7 @@ export async function loadTransformers(onLoad: OnLoad) {
   if (getTransformers() === null) {
     /**
      * If you see this warning, it means that the current environment does not support the transformer.
-     *  because "@xeonva/transformers" highly depends on Node.js APIs.
+     *  because "@huggingface/transformers" highly depends on Node.js APIs.
      *
      * One possible solution is to fix their implementation to make it work in the non-Node.js environment,
      *  but it's not worth the effort because Edge Runtime and Cloudflare Workers are not the for heavy Machine Learning task.
@@ -17,14 +17,14 @@ export async function loadTransformers(onLoad: OnLoad) {
      * Or you can provide an RPC server that runs the transformer in a Node.js environment.
      * Or you just run the code in a Node.js environment.
      *
-     * Refs: https://github.com/xenova/transformers.js/issues/309
+     * Refs: https://github.com/huggingface/transformers.js/issues/309
      */
     console.warn(
-      '"@xenova/transformers" is not officially supported in this environment, some features may not work as expected.',
+      '"@huggingface/transformers" is not officially supported in this environment, some features may not work as expected.',
     );
     setTransformers(
       // @ts-expect-error no type
-      await import("@xenova/transformers/dist/transformers"),
+      await import("@huggingface/transformers/dist/transformers.js"),
     );
   } else {
     return getTransformers()!;
diff --git a/packages/env/src/internal/multi-model/shared.ts b/packages/env/src/internal/multi-model/shared.ts
index 7247a1a8c..93a0b1047 100644
--- a/packages/env/src/internal/multi-model/shared.ts
+++ b/packages/env/src/internal/multi-model/shared.ts
@@ -1,17 +1,17 @@
-let transformer: typeof import("@xenova/transformers") | null = null;
+let transformer: typeof import("@huggingface/transformers") | null = null;
 
 export function getTransformers() {
   return transformer;
 }
 
-export function setTransformers(t: typeof import("@xenova/transformers")) {
+export function setTransformers(t: typeof import("@huggingface/transformers")) {
   transformer = t;
 }
 
 export type OnLoad = (
-  transformer: typeof import("@xenova/transformers"),
+  transformer: typeof import("@huggingface/transformers"),
 ) => void;
 
 export type LoadTransformerEvent = {
-  transformer: typeof import("@xenova/transformers");
+  transformer: typeof import("@huggingface/transformers");
 };
diff --git a/packages/llamaindex/package.json b/packages/llamaindex/package.json
index e513c0fa9..b35e7ec40 100644
--- a/packages/llamaindex/package.json
+++ b/packages/llamaindex/package.json
@@ -88,7 +88,7 @@
     "@swc/cli": "^0.5.0",
     "@swc/core": "^1.7.22",
     "@vercel/postgres": "^0.10.0",
-    "@xenova/transformers": "^2.17.2",
+    "@huggingface/transformers": "^3.0.2",
     "concurrently": "^9.1.0",
     "glob": "^11.0.0",
     "pg": "^8.12.0",
diff --git a/packages/llamaindex/src/next.ts b/packages/llamaindex/src/next.ts
index 41b440a1f..155e180ad 100644
--- a/packages/llamaindex/src/next.ts
+++ b/packages/llamaindex/src/next.ts
@@ -22,7 +22,7 @@ export default function withLlamaIndex(config: any) {
   config.experimental.serverComponentsExternalPackages =
     config.experimental.serverComponentsExternalPackages ?? [];
   config.experimental.serverComponentsExternalPackages.push(
-    "@xenova/transformers",
+    "@huggingface/transformers",
   );
   const userWebpack = config.webpack;
   // eslint-disable-next-line @typescript-eslint/no-explicit-any
diff --git a/packages/providers/clip/package.json b/packages/providers/clip/package.json
index 4ac76d3ab..6276d76aa 100644
--- a/packages/providers/clip/package.json
+++ b/packages/providers/clip/package.json
@@ -45,6 +45,9 @@
     "@llamaindex/core": "workspace:*",
     "@llamaindex/env": "workspace:*",
     "@llamaindex/openai": "workspace:*",
-    "@xenova/transformers": "^2.17.2"
+    "@huggingface/transformers": "^3.0.2"
+  },
+  "peerDependencies": {
+    "@huggingface/transformers": "^3.0.2"
   }
 }
diff --git a/packages/providers/clip/src/embedding.ts b/packages/providers/clip/src/embedding.ts
index 4889ef697..789507581 100644
--- a/packages/providers/clip/src/embedding.ts
+++ b/packages/providers/clip/src/embedding.ts
@@ -1,17 +1,17 @@
 import { MultiModalEmbedding } from "@llamaindex/core/embeddings";
 import type { ImageType } from "@llamaindex/core/schema";
 // only import type, to avoid bundling error
-import { Settings } from "@llamaindex/core/global";
-import {
-  type LoadTransformerEvent,
-  loadTransformers,
-} from "@llamaindex/env/multi-model";
 import type {
   CLIPTextModelWithProjection,
   CLIPVisionModelWithProjection,
   PreTrainedTokenizer,
   Processor,
-} from "@xenova/transformers";
+} from "@huggingface/transformers";
+import { Settings } from "@llamaindex/core/global";
+import {
+  type LoadTransformerEvent,
+  loadTransformers,
+} from "@llamaindex/env/multi-model";
 import { ClipEmbeddingModelType } from "./shared";
 
 declare module "@llamaindex/core/global" {
diff --git a/packages/providers/huggingface/package.json b/packages/providers/huggingface/package.json
index b6082c8fd..86bc69897 100644
--- a/packages/providers/huggingface/package.json
+++ b/packages/providers/huggingface/package.json
@@ -46,6 +46,9 @@
     "@llamaindex/core": "workspace:*",
     "@llamaindex/env": "workspace:*",
     "@llamaindex/openai": "workspace:*",
-    "@xenova/transformers": "^2.17.2"
+    "@huggingface/transformers": "^3.0.2"
+  },
+  "peerDependencies": {
+    "@huggingface/transformers": "^3.0.2"
   }
 }
diff --git a/packages/providers/huggingface/src/embedding.ts b/packages/providers/huggingface/src/embedding.ts
index 3e741b36f..0af90266c 100644
--- a/packages/providers/huggingface/src/embedding.ts
+++ b/packages/providers/huggingface/src/embedding.ts
@@ -1,10 +1,10 @@
+import type { pipeline } from "@huggingface/transformers";
 import { BaseEmbedding } from "@llamaindex/core/embeddings";
 import { Settings } from "@llamaindex/core/global";
 import {
   type LoadTransformerEvent,
   loadTransformers,
 } from "@llamaindex/env/multi-model";
-import type { pipeline } from "@xenova/transformers";
 import { HuggingFaceEmbeddingModelType } from "./shared";
 
 declare module "@llamaindex/core/global" {
@@ -13,6 +13,11 @@ declare module "@llamaindex/core/global" {
   }
 }
 
+export type HuggingFaceEmbeddingParams = {
+  modelType?: string;
+  modelOptions?: Parameters<typeof pipeline<"feature-extraction">>[2];
+};
+
 /**
  * Uses feature extraction from '@xenova/transformers' to generate embeddings.
  * Per default the model [XENOVA_ALL_MINILM_L6_V2](https://huggingface.co/Xenova/all-MiniLM-L6-v2) is used.
@@ -28,15 +33,20 @@ declare module "@llamaindex/core/global" {
  */
 export class HuggingFaceEmbedding extends BaseEmbedding {
   modelType: string = HuggingFaceEmbeddingModelType.XENOVA_ALL_MINILM_L6_V2;
-  quantized: boolean = true;
+  modelOptions: Parameters<typeof pipeline<"feature-extraction">>[2] = {};
 
   private extractor: Awaited<
     ReturnType<typeof pipeline<"feature-extraction">>
   > | null = null;
 
-  constructor(init?: Partial<HuggingFaceEmbedding>) {
+  constructor(params: HuggingFaceEmbeddingParams = {}) {
     super();
-    Object.assign(this, init);
+    if (params.modelType) {
+      this.modelType = params.modelType;
+    }
+    if (params.modelOptions) {
+      this.modelOptions = params.modelOptions;
+    }
   }
 
   async getExtractor() {
@@ -50,9 +60,11 @@ export class HuggingFaceEmbedding extends BaseEmbedding {
           true,
         );
       });
-      this.extractor = await pipeline("feature-extraction", this.modelType, {
-        quantized: this.quantized,
-      });
+      this.extractor = await pipeline(
+        "feature-extraction",
+        this.modelType,
+        this.modelOptions,
+      );
     }
     return this.extractor;
   }
diff --git a/packages/providers/huggingface/src/index.ts b/packages/providers/huggingface/src/index.ts
index eca5865de..06b31c9a9 100644
--- a/packages/providers/huggingface/src/index.ts
+++ b/packages/providers/huggingface/src/index.ts
@@ -1,4 +1,7 @@
-export { HuggingFaceEmbedding } from "./embedding";
+export {
+  HuggingFaceEmbedding,
+  type HuggingFaceEmbeddingParams,
+} from "./embedding";
 export { HuggingFaceLLM, type HFLLMConfig } from "./llm";
 export {
   HuggingFaceEmbeddingModelType,
diff --git a/packages/providers/huggingface/src/llm.ts b/packages/providers/huggingface/src/llm.ts
index 4a5b7ca85..4af3fd49b 100644
--- a/packages/providers/huggingface/src/llm.ts
+++ b/packages/providers/huggingface/src/llm.ts
@@ -1,3 +1,8 @@
+import type {
+  PreTrainedModel,
+  PreTrainedTokenizer,
+  Tensor,
+} from "@huggingface/transformers";
 import { wrapLLMEvent } from "@llamaindex/core/decorator";
 import { Settings } from "@llamaindex/core/global";
 import "@llamaindex/core/llms";
@@ -10,11 +15,6 @@ import {
   type LLMMetadata,
 } from "@llamaindex/core/llms";
 import { loadTransformers } from "@llamaindex/env/multi-model";
-import type {
-  PreTrainedModel,
-  PreTrainedTokenizer,
-  Tensor,
-} from "@xenova/transformers";
 import { DEFAULT_PARAMS } from "./shared";
 
 const DEFAULT_HUGGINGFACE_MODEL = "stabilityai/stablelm-tuned-alpha-3b";
@@ -122,7 +122,10 @@ export class HuggingFaceLLM extends BaseLLM {
     // TODO: the input for model.generate should be updated when using @xenova/transformers v3
     // We should add `stopping_criteria` also when it's supported in v3
     // See: https://github.com/xenova/transformers.js/blob/3260640b192b3e06a10a1f4dc004b1254fdf1b80/src/models.js#L1248C9-L1248C27
-    const outputs = await model.generate(inputs, this.metadata);
+    const outputs = (await model.generate({
+      inputs,
+      ...this.metadata,
+    })) as Tensor;
     const outputText = tokenizer.batch_decode(outputs, {
       skip_special_tokens: false,
     });
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1dfaa1ba6..1feea40fc 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -340,12 +340,18 @@ importers:
       '@faker-js/faker':
         specifier: ^9.2.0
         version: 9.2.0
+      '@huggingface/transformers':
+        specifier: ^3.0.2
+        version: 3.0.2
       '@llamaindex/core':
         specifier: workspace:*
         version: link:../packages/core
       '@llamaindex/env':
         specifier: workspace:*
         version: link:../packages/env
+      '@llamaindex/ollama':
+        specifier: workspace:*
+        version: link:../packages/providers/ollama
       '@llamaindex/openai':
         specifier: workspace:*
         version: link:../packages/providers/openai
@@ -355,9 +361,6 @@ importers:
       '@types/pg':
         specifier: ^8.11.8
         version: 8.11.10
-      '@xenova/transformers':
-        specifier: ^2.17.2
-        version: 2.17.2
       consola:
         specifier: ^3.2.3
         version: 3.2.3
@@ -890,15 +893,15 @@ importers:
         specifier: ^1.0.12
         version: 1.0.15
     devDependencies:
+      '@huggingface/transformers':
+        specifier: ^3.0.2
+        version: 3.0.2
       '@types/node':
         specifier: ^22.9.0
         version: 22.9.0
       '@types/readable-stream':
         specifier: ^4.0.15
         version: 4.0.18
-      '@xenova/transformers':
-        specifier: ^2.17.2
-        version: 2.17.2
       bunchee:
         specifier: 5.6.1
         version: 5.6.1(typescript@5.6.3)
@@ -1105,6 +1108,9 @@ importers:
         specifier: ^3.23.8
         version: 3.23.8
     devDependencies:
+      '@huggingface/transformers':
+        specifier: ^3.0.2
+        version: 3.0.2
       '@swc/cli':
         specifier: ^0.5.0
         version: 0.5.0(@swc/core@1.7.42(@swc/helpers@0.5.13))(chokidar@3.6.0)
@@ -1114,9 +1120,6 @@ importers:
       '@vercel/postgres':
         specifier: ^0.10.0
         version: 0.10.0
-      '@xenova/transformers':
-        specifier: ^2.17.2
-        version: 2.17.2
       concurrently:
         specifier: ^9.1.0
         version: 9.1.0
@@ -1203,6 +1206,9 @@ importers:
 
   packages/providers/clip:
     dependencies:
+      '@huggingface/transformers':
+        specifier: ^3.0.2
+        version: 3.0.2
       '@llamaindex/core':
         specifier: workspace:*
         version: link:../../core
@@ -1212,9 +1218,6 @@ importers:
       '@llamaindex/openai':
         specifier: workspace:*
         version: link:../openai
-      '@xenova/transformers':
-        specifier: ^2.17.2
-        version: 2.17.2
     devDependencies:
       bunchee:
         specifier: 5.6.1
@@ -1257,6 +1260,9 @@ importers:
       '@huggingface/inference':
         specifier: ^2.8.1
         version: 2.8.1
+      '@huggingface/transformers':
+        specifier: ^3.0.2
+        version: 3.0.2
       '@llamaindex/core':
         specifier: workspace:*
         version: link:../../core
@@ -1266,9 +1272,6 @@ importers:
       '@llamaindex/openai':
         specifier: workspace:*
         version: link:../openai
-      '@xenova/transformers':
-        specifier: ^2.17.2
-        version: 2.17.2
     devDependencies:
       bunchee:
         specifier: 5.6.1
@@ -3527,13 +3530,16 @@ packages:
     resolution: {integrity: sha512-9KsiorsdIK8+7VmlamAT7Uh90zxAhC/SeKaKc80v58JhtPYuwaJpmR/ST7XAUxrHAFqHTCoTH5aJnJDwSL6xIQ==}
     engines: {node: '>=18'}
 
-  '@huggingface/jinja@0.2.2':
-    resolution: {integrity: sha512-/KPde26khDUIPkTGU82jdtTW9UAuvUTumCAbFs/7giR0SxsvZC4hru51PBvpijH6BVkHcROcvZM/lpy5h1jRRA==}
+  '@huggingface/jinja@0.3.2':
+    resolution: {integrity: sha512-F2FvuIc+w1blGsaqJI/OErRbWH6bVJDCBI8Rm5D86yZ2wlwrGERsfIaru7XUv9eYC3DMP3ixDRRtF0h6d8AZcQ==}
     engines: {node: '>=18'}
 
   '@huggingface/tasks@0.12.22':
     resolution: {integrity: sha512-zpoCUJPUUQ9924PGMXZx8fYpcBnsMV7c+6EUZ4edVZmw28sW9yTo+RJAXrbcLquVsYrYxNgkKYc3odnM0/swfg==}
 
+  '@huggingface/transformers@3.0.2':
+    resolution: {integrity: sha512-lTyS81eQazMea5UCehDGFMfdcNRZyei7XQLH5X6j4AhA/18Ka0+5qPgMxUxuZLU4xkv60aY2KNz9Yzthv6WVJg==}
+
   '@humanfs/core@0.19.1':
     resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
     engines: {node: '>=18.18.0'}
@@ -3688,6 +3694,10 @@ packages:
     resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
     engines: {node: '>=12'}
 
+  '@isaacs/fs-minipass@4.0.1':
+    resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==}
+    engines: {node: '>=18.0.0'}
+
   '@jest/schemas@29.6.3':
     resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -5729,9 +5739,6 @@ packages:
     peerDependencies:
       react: ^16.8.0 || ^17.0.0 || ^18.0.0
 
-  '@xenova/transformers@2.17.2':
-    resolution: {integrity: sha512-lZmHqzrVIkSvZdKZEx7IYY51TK0WDrC8eR0c5IMnBsO8di8are1zzw8BlLhyO2TklZKLN5UffNGs1IJwT6oOqQ==}
-
   '@xmldom/xmldom@0.8.10':
     resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==}
     engines: {node: '>=10.0.0'}
@@ -6366,6 +6373,10 @@ packages:
     resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
     engines: {node: '>=10'}
 
+  chownr@3.0.0:
+    resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==}
+    engines: {node: '>=18'}
+
   chromadb-default-embed@2.13.2:
     resolution: {integrity: sha512-mhqo5rLjkF2KkxAV0WS82vNIXWpVMzvz5y5ayIB2FxcebUbEBNlcRh6XSSqYChWMfJ9us1ZzLQU8RXqsy3sKaA==}
 
@@ -9634,6 +9645,10 @@ packages:
     resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
     engines: {node: '>= 8'}
 
+  minizlib@3.0.1:
+    resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==}
+    engines: {node: '>= 18'}
+
   mkdirp-classic@0.5.3:
     resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
 
@@ -9646,6 +9661,11 @@ packages:
     engines: {node: '>=10'}
     hasBin: true
 
+  mkdirp@3.0.1:
+    resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==}
+    engines: {node: '>=10'}
+    hasBin: true
+
   mlly@1.7.2:
     resolution: {integrity: sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==}
 
@@ -10034,13 +10054,26 @@ packages:
   onnxruntime-common@1.14.0:
     resolution: {integrity: sha512-3LJpegM2iMNRX2wUmtYfeX/ytfOzNwAWKSq1HbRrKc9+uqG/FsEA0bbKZl1btQeZaXhC26l44NWpNUeXPII7Ew==}
 
+  onnxruntime-common@1.19.2:
+    resolution: {integrity: sha512-a4R7wYEVFbZBlp0BfhpbFWqe4opCor3KM+5Wm22Az3NGDcQMiU2hfG/0MfnBs+1ZrlSGmlgWeMcXQkDk1UFb8Q==}
+
+  onnxruntime-common@1.20.0-dev.20241016-2b8fc5529b:
+    resolution: {integrity: sha512-KZK8b6zCYGZFjd4ANze0pqBnqnFTS3GIVeclQpa2qseDpXrCQJfkWBixRcrZShNhm3LpFOZ8qJYFC5/qsJK9WQ==}
+
   onnxruntime-node@1.14.0:
     resolution: {integrity: sha512-5ba7TWomIV/9b6NH/1x/8QEeowsb+jBEvFzU6z0T4mNsFwdPqXeFUM7uxC6QeSRkEbWu3qEB0VMjrvzN/0S9+w==}
     os: [win32, darwin, linux]
 
+  onnxruntime-node@1.19.2:
+    resolution: {integrity: sha512-9eHMP/HKbbeUcqte1JYzaaRC8JPn7ojWeCeoyShO86TOR97OCyIyAIOGX3V95ErjslVhJRXY8Em/caIUc0hm1Q==}
+    os: [win32, darwin, linux]
+
   onnxruntime-web@1.14.0:
     resolution: {integrity: sha512-Kcqf43UMfW8mCydVGcX9OMXI2VN17c0p6XvR7IPSZzBf/6lteBzXHvcEVWDPmCKuGombl997HgLqj91F11DzXw==}
 
+  onnxruntime-web@1.21.0-dev.20241024-d9ca84ef96:
+    resolution: {integrity: sha512-ANSQfMALvCviN3Y4tvTViKofKToV1WUb2r2VjZVCi3uUBPaK15oNJyIxhsNyEckBr/Num3JmSXlkHOD8HfVzSQ==}
+
   open@8.4.2:
     resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
     engines: {node: '>=12'}
@@ -11397,6 +11430,10 @@ packages:
     deprecated: Rimraf versions prior to v4 are no longer supported
     hasBin: true
 
+  rimraf@5.0.10:
+    resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==}
+    hasBin: true
+
   rimraf@6.0.1:
     resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==}
     engines: {node: 20 || >=22}
@@ -12077,6 +12114,10 @@ packages:
     resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
     engines: {node: '>=10'}
 
+  tar@7.4.3:
+    resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==}
+    engines: {node: '>=18'}
+
   term-size@2.2.1:
     resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==}
     engines: {node: '>=8'}
@@ -13052,6 +13093,10 @@ packages:
   yallist@4.0.0:
     resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
 
+  yallist@5.0.0:
+    resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==}
+    engines: {node: '>=18'}
+
   yaml@1.10.2:
     resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
     engines: {node: '>= 6'}
@@ -16271,12 +16316,19 @@ snapshots:
 
   '@huggingface/jinja@0.1.3': {}
 
-  '@huggingface/jinja@0.2.2': {}
+  '@huggingface/jinja@0.3.2': {}
 
   '@huggingface/tasks@0.12.22':
     dependencies:
       '@huggingface/gguf': 0.1.12
 
+  '@huggingface/transformers@3.0.2':
+    dependencies:
+      '@huggingface/jinja': 0.3.2
+      onnxruntime-node: 1.19.2
+      onnxruntime-web: 1.21.0-dev.20241024-d9ca84ef96
+      sharp: 0.33.5
+
   '@humanfs/core@0.19.1': {}
 
   '@humanfs/node@0.16.6':
@@ -16404,6 +16456,10 @@ snapshots:
       wrap-ansi: 8.1.0
       wrap-ansi-cjs: wrap-ansi@7.0.0
 
+  '@isaacs/fs-minipass@4.0.1':
+    dependencies:
+      minipass: 7.1.2
+
   '@jest/schemas@29.6.3':
     dependencies:
       '@sinclair/typebox': 0.27.8
@@ -18733,14 +18789,6 @@ snapshots:
       '@types/react': 18.3.12
       react: 18.3.1
 
-  '@xenova/transformers@2.17.2':
-    dependencies:
-      '@huggingface/jinja': 0.2.2
-      onnxruntime-web: 1.14.0
-      sharp: 0.32.6
-    optionalDependencies:
-      onnxruntime-node: 1.14.0
-
   '@xmldom/xmldom@0.8.10': {}
 
   '@xtuc/ieee754@1.2.0': {}
@@ -19503,6 +19551,8 @@ snapshots:
 
   chownr@2.0.0: {}
 
+  chownr@3.0.0: {}
+
   chromadb-default-embed@2.13.2:
     dependencies:
       '@huggingface/jinja': 0.1.3
@@ -23815,6 +23865,11 @@ snapshots:
       minipass: 3.3.6
       yallist: 4.0.0
 
+  minizlib@3.0.1:
+    dependencies:
+      minipass: 7.1.2
+      rimraf: 5.0.10
+
   mkdirp-classic@0.5.3: {}
 
   mkdirp@0.5.6:
@@ -23823,6 +23878,8 @@ snapshots:
 
   mkdirp@1.0.4: {}
 
+  mkdirp@3.0.1: {}
+
   mlly@1.7.2:
     dependencies:
       acorn: 8.14.0
@@ -24251,11 +24308,20 @@ snapshots:
 
   onnxruntime-common@1.14.0: {}
 
+  onnxruntime-common@1.19.2: {}
+
+  onnxruntime-common@1.20.0-dev.20241016-2b8fc5529b: {}
+
   onnxruntime-node@1.14.0:
     dependencies:
       onnxruntime-common: 1.14.0
     optional: true
 
+  onnxruntime-node@1.19.2:
+    dependencies:
+      onnxruntime-common: 1.19.2
+      tar: 7.4.3
+
   onnxruntime-web@1.14.0:
     dependencies:
       flatbuffers: 1.12.0
@@ -24265,6 +24331,15 @@ snapshots:
       onnxruntime-common: 1.14.0
       platform: 1.3.6
 
+  onnxruntime-web@1.21.0-dev.20241024-d9ca84ef96:
+    dependencies:
+      flatbuffers: 1.12.0
+      guid-typescript: 1.0.9
+      long: 5.2.3
+      onnxruntime-common: 1.20.0-dev.20241016-2b8fc5529b
+      platform: 1.3.6
+      protobufjs: 7.2.6
+
   open@8.4.2:
     dependencies:
       define-lazy-prop: 2.0.0
@@ -25827,6 +25902,10 @@ snapshots:
     dependencies:
       glob: 7.2.3
 
+  rimraf@5.0.10:
+    dependencies:
+      glob: 10.4.5
+
   rimraf@6.0.1:
     dependencies:
       glob: 11.0.0
@@ -26131,7 +26210,6 @@ snapshots:
       '@img/sharp-wasm32': 0.33.5
       '@img/sharp-win32-ia32': 0.33.5
       '@img/sharp-win32-x64': 0.33.5
-    optional: true
 
   shebang-command@1.2.0:
     dependencies:
@@ -26667,6 +26745,15 @@ snapshots:
       mkdirp: 1.0.4
       yallist: 4.0.0
 
+  tar@7.4.3:
+    dependencies:
+      '@isaacs/fs-minipass': 4.0.1
+      chownr: 3.0.0
+      minipass: 7.1.2
+      minizlib: 3.0.1
+      mkdirp: 3.0.1
+      yallist: 5.0.0
+
   term-size@2.2.1: {}
 
   terser-webpack-plugin@5.3.10(@swc/core@1.7.42(@swc/helpers@0.5.13))(webpack@5.96.1(@swc/core@1.7.42(@swc/helpers@0.5.13))):
@@ -27813,6 +27900,8 @@ snapshots:
 
   yallist@4.0.0: {}
 
+  yallist@5.0.0: {}
+
   yaml@1.10.2: {}
 
   yaml@2.5.0: {}
-- 
GitLab