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