forked from run-llama/LlamaIndexTS
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: support custom
@xenova/transformers
(run-llama#1232)
- Loading branch information
Showing
23 changed files
with
317 additions
and
190 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
--- | ||
"@llamaindex/core": patch | ||
"@llamaindex/env": patch | ||
"llamaindex": patch | ||
--- | ||
|
||
feat: add `load-transformers` event type when loading `@xenova/transformers` module | ||
|
||
This would benefit user who want to customize the transformer env. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import { getTransformers, setTransformers, type OnLoad } from "./shared.js"; | ||
|
||
export { | ||
setTransformers, | ||
type LoadTransformerEvent, | ||
type OnLoad, | ||
} from "./shared.js"; | ||
export async function loadTransformers(onLoad: OnLoad) { | ||
if (getTransformers() === null) { | ||
setTransformers( | ||
// @ts-expect-error | ||
await import("https://cdn.jsdelivr.net/npm/@xenova/transformers@2.17.2"), | ||
); | ||
} else { | ||
return getTransformers()!; | ||
} | ||
const transformer = getTransformers()!; | ||
onLoad(transformer); | ||
return transformer; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
import { getTransformers, setTransformers, type OnLoad } from "./shared.js"; | ||
export { | ||
setTransformers, | ||
type LoadTransformerEvent, | ||
type OnLoad, | ||
} from "./shared.js"; | ||
|
||
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. | ||
* | ||
* 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. | ||
* | ||
* 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 | ||
*/ | ||
console.warn( | ||
'"@xenova/transformers" is not officially supported in this environment, some features may not work as expected.', | ||
); | ||
setTransformers( | ||
// @ts-expect-error | ||
await import("@xenova/transformers/dist/transformers"), | ||
); | ||
} else { | ||
return getTransformers()!; | ||
} | ||
const transformer = getTransformers()!; | ||
onLoad(transformer); | ||
return transformer; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import { getTransformers, setTransformers, type OnLoad } from "./shared.js"; | ||
|
||
export { | ||
setTransformers, | ||
type LoadTransformerEvent, | ||
type OnLoad, | ||
} from "./shared.js"; | ||
|
||
export async function loadTransformers(onLoad: OnLoad) { | ||
if (getTransformers() === null) { | ||
setTransformers(await import("@xenova/transformers")); | ||
} else { | ||
return getTransformers()!; | ||
} | ||
const transformer = getTransformers()!; | ||
|
||
onLoad(transformer); | ||
|
||
return transformer; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
let transformer: typeof import("@xenova/transformers") | null = null; | ||
|
||
export function getTransformers() { | ||
return transformer; | ||
} | ||
|
||
export function setTransformers(t: typeof import("@xenova/transformers")) { | ||
transformer = t; | ||
} | ||
|
||
export type OnLoad = ( | ||
transformer: typeof import("@xenova/transformers"), | ||
) => void; | ||
|
||
export type LoadTransformerEvent = { | ||
transformer: typeof import("@xenova/transformers"); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,107 +0,0 @@ | ||
:root { | ||
--max-width: 1100px; | ||
--border-radius: 12px; | ||
--font-mono: ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono", | ||
"Roboto Mono", "Oxygen Mono", "Ubuntu Monospace", "Source Code Pro", | ||
"Fira Mono", "Droid Sans Mono", "Courier New", monospace; | ||
|
||
--foreground-rgb: 0, 0, 0; | ||
--background-start-rgb: 214, 219, 220; | ||
--background-end-rgb: 255, 255, 255; | ||
|
||
--primary-glow: conic-gradient( | ||
from 180deg at 50% 50%, | ||
#16abff33 0deg, | ||
#0885ff33 55deg, | ||
#54d6ff33 120deg, | ||
#0071ff33 160deg, | ||
transparent 360deg | ||
); | ||
--secondary-glow: radial-gradient( | ||
rgba(255, 255, 255, 1), | ||
rgba(255, 255, 255, 0) | ||
); | ||
|
||
--tile-start-rgb: 239, 245, 249; | ||
--tile-end-rgb: 228, 232, 233; | ||
--tile-border: conic-gradient( | ||
#00000080, | ||
#00000040, | ||
#00000030, | ||
#00000020, | ||
#00000010, | ||
#00000010, | ||
#00000080 | ||
); | ||
|
||
--callout-rgb: 238, 240, 241; | ||
--callout-border-rgb: 172, 175, 176; | ||
--card-rgb: 180, 185, 188; | ||
--card-border-rgb: 131, 134, 135; | ||
} | ||
|
||
@media (prefers-color-scheme: dark) { | ||
:root { | ||
--foreground-rgb: 255, 255, 255; | ||
--background-start-rgb: 0, 0, 0; | ||
--background-end-rgb: 0, 0, 0; | ||
|
||
--primary-glow: radial-gradient(rgba(1, 65, 255, 0.4), rgba(1, 65, 255, 0)); | ||
--secondary-glow: linear-gradient( | ||
to bottom right, | ||
rgba(1, 65, 255, 0), | ||
rgba(1, 65, 255, 0), | ||
rgba(1, 65, 255, 0.3) | ||
); | ||
|
||
--tile-start-rgb: 2, 13, 46; | ||
--tile-end-rgb: 2, 5, 19; | ||
--tile-border: conic-gradient( | ||
#ffffff80, | ||
#ffffff40, | ||
#ffffff30, | ||
#ffffff20, | ||
#ffffff10, | ||
#ffffff10, | ||
#ffffff80 | ||
); | ||
|
||
--callout-rgb: 20, 20, 20; | ||
--callout-border-rgb: 108, 108, 108; | ||
--card-rgb: 100, 100, 100; | ||
--card-border-rgb: 200, 200, 200; | ||
} | ||
} | ||
|
||
* { | ||
box-sizing: border-box; | ||
padding: 0; | ||
margin: 0; | ||
} | ||
|
||
html, | ||
body { | ||
max-width: 100vw; | ||
overflow-x: hidden; | ||
} | ||
|
||
body { | ||
color: rgb(var(--foreground-rgb)); | ||
background: linear-gradient( | ||
to bottom, | ||
transparent, | ||
rgb(var(--background-end-rgb)) | ||
) | ||
rgb(var(--background-start-rgb)); | ||
} | ||
|
||
a { | ||
color: inherit; | ||
text-decoration: none; | ||
} | ||
|
||
@media (prefers-color-scheme: dark) { | ||
html { | ||
color-scheme: dark; | ||
} | ||
} | ||
2 changes: 1 addition & 1 deletion
2
packages/llamaindex/e2e/examples/nextjs-edge-runtime/src/utils/llm.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.