Class: TransformersJsEmbeddingsAdapter
Defined in: src/batteries/embeddings/transformers_js/adapter.ts:65
Embeddings adapter for transformers.js's feature-extraction pipeline.
Remarks
Reusable: construct once, call TransformersJsEmbeddingsAdapter.embed / embedMany as many times as needed. The pipeline is resolved lazily on first use (or via preload) and cached with single-flight semantics so concurrent calls share one load.
Constructors
Constructor
new TransformersJsEmbeddingsAdapter(options: unknown): TransformersJsEmbeddingsAdapter;Defined in: src/batteries/embeddings/transformers_js/adapter.ts:82
Parameters
| Parameter | Type | Description |
|---|---|---|
options | unknown | Constructor options. Validated eagerly. |
Returns
TransformersJsEmbeddingsAdapter
Throws
@nhtio/adk/batteries!E_INVALID_TRANSFORMERS_JS_EMBEDDINGS_OPTIONS when invalid.
Accessors
dimensions
Get Signature
get dimensions(): number | undefined;Defined in: src/batteries/embeddings/transformers_js/adapter.ts:88
Declared output dimensionality (from options), or undefined if not configured.
Returns
number | undefined
Methods
dispose()
dispose(): Promise<void>;Defined in: src/batteries/embeddings/transformers_js/adapter.ts:118
Release the loaded model's ONNX sessions + GPU/wasm buffers, then drop the cached pipeline.
Returns
Promise<void>
Remarks
reset() only nulls the JS reference; the native ONNX Runtime sessions and WebGPU/wasm device memory stay alive until GC. Loading many embedding models back-to-back in one browser session (e.g. a full matrix run) accumulates those sessions until the heap is exhausted. FeatureExtractionPipeline extends Pipeline, which exposes dispose() — this awaits it so the memory is reclaimed between loads, swallows a disposal error (teardown must not throw), and finishes with reset(). Idempotent.
embed()
embed(text: string, opts?: EmbedOptions): Promise<number[]>;Defined in: src/batteries/embeddings/transformers_js/adapter.ts:189
Embeds a single string.
Parameters
| Parameter | Type | Description |
|---|---|---|
text | string | The input text. |
opts? | EmbedOptions | Per-call options (kind). |
Returns
Promise<number[]>
The embedding vector as a plain number[].
embedMany()
embedMany(texts: string[], opts?: EmbedOptions): Promise<number[][]>;Defined in: src/batteries/embeddings/transformers_js/adapter.ts:203
Embeds a batch of strings in a single pipeline call.
Parameters
| Parameter | Type | Description |
|---|---|---|
texts | string[] | The input texts. |
opts? | EmbedOptions | Per-call options (kind). Defaults to kind: 'document'. |
Returns
Promise<number[][]>
One embedding vector per input, in input order, each a plain number[].
Throws
@nhtio/adk/batteries!E_TRANSFORMERS_JS_EMBEDDINGS_ENGINE_ERROR when the call fails or returns a malformed result.
isAvailable()
isAvailable(): boolean;Defined in: src/batteries/embeddings/transformers_js/adapter.ts:93
Instance availability probe (honours an injected isAvailable).
Returns
boolean
preload()
preload(): Promise<void>;Defined in: src/batteries/embeddings/transformers_js/adapter.ts:98
Eagerly loads (and caches) the pipeline so the first embed call is fast. Idempotent.
Returns
Promise<void>
reset()
reset(): void;Defined in: src/batteries/embeddings/transformers_js/adapter.ts:103
Drops the cached pipeline and in-flight load so the next call reloads.
Returns
void
isAvailable()
static isAvailable(): boolean;Defined in: src/batteries/embeddings/transformers_js/adapter.ts:74
Whether this battery is available. transformers.js is environment-neutral (Node + browser), so this is true whenever the runtime can import the peer — there is no WebGPU requirement.
Returns
boolean