Skip to content
2 min read · 443 words

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 ​

ts
new TransformersJsEmbeddingsAdapter(options: unknown): TransformersJsEmbeddingsAdapter;

Defined in: src/batteries/embeddings/transformers_js/adapter.ts:82

Parameters ​

ParameterTypeDescription
optionsunknownConstructor options. Validated eagerly.

Returns ​

TransformersJsEmbeddingsAdapter

Throws ​

@nhtio/adk/batteries!E_INVALID_TRANSFORMERS_JS_EMBEDDINGS_OPTIONS when invalid.

Accessors ​

dimensions ​

Get Signature ​

ts
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() ​

ts
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() ​

ts
embed(text: string, opts?: EmbedOptions): Promise<number[]>;

Defined in: src/batteries/embeddings/transformers_js/adapter.ts:189

Embeds a single string.

Parameters ​

ParameterTypeDescription
textstringThe input text.
opts?EmbedOptionsPer-call options (kind).

Returns ​

Promise<number[]>

The embedding vector as a plain number[].


embedMany() ​

ts
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 ​

ParameterTypeDescription
textsstring[]The input texts.
opts?EmbedOptionsPer-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() ​

ts
isAvailable(): boolean;

Defined in: src/batteries/embeddings/transformers_js/adapter.ts:93

Instance availability probe (honours an injected isAvailable).

Returns ​

boolean


preload() ​

ts
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() ​

ts
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() ​

ts
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