---
url: >-
  https://adk.nht.io/api/@nhtio/adk/batteries/embeddings/transformers_js/adapter/classes/TransformersJsEmbeddingsAdapter.md
description: Embeddings adapter for transformers.js's feature-extraction pipeline.
---

# Class: TransformersJsEmbeddingsAdapter

Defined in: [src/batteries/embeddings/transformers\_js/adapter.ts:65](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/embeddings/transformers_js/adapter.ts#L65)

Embeddings adapter for transformers.js's feature-extraction pipeline.

## Remarks

Reusable: construct once, call [TransformersJsEmbeddingsAdapter.embed](#embed) / [embedMany](#embedmany) as
many times as needed. The pipeline is resolved lazily on first use (or via [preload](#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](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/embeddings/transformers_js/adapter.ts#L82)

#### Parameters

| Parameter | Type      | Description                             |
| --------- | --------- | --------------------------------------- |
| `options` | `unknown` | Constructor options. Validated eagerly. |

#### Returns

`TransformersJsEmbeddingsAdapter`

#### Throws

[@nhtio/adk/batteries!E\_INVALID\_TRANSFORMERS\_JS\_EMBEDDINGS\_OPTIONS](../../exceptions/variables/E_INVALID_TRANSFORMERS_JS_EMBEDDINGS_OPTIONS.md) when invalid.

## Accessors

### dimensions

#### Get Signature

```ts
get dimensions(): number | undefined;
```

Defined in: [src/batteries/embeddings/transformers\_js/adapter.ts:88](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/embeddings/transformers_js/adapter.ts#L88)

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](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/embeddings/transformers_js/adapter.ts#L118)

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](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/embeddings/transformers_js/adapter.ts#L189)

Embeds a single string.

#### Parameters

| Parameter | Type                                                               | Description                |
| --------- | ------------------------------------------------------------------ | -------------------------- |
| `text`    | `string`                                                           | The input text.            |
| `opts?`   | [`EmbedOptions`](../../../openai/types/interfaces/EmbedOptions.md) | Per-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](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/embeddings/transformers_js/adapter.ts#L203)

Embeds a batch of strings in a single pipeline call.

#### Parameters

| Parameter | Type                                                               | Description                                                |
| --------- | ------------------------------------------------------------------ | ---------------------------------------------------------- |
| `texts`   | `string`\[]                                                         | The input texts.                                           |
| `opts?`   | [`EmbedOptions`](../../../openai/types/interfaces/EmbedOptions.md) | 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](../../exceptions/variables/E_TRANSFORMERS_JS_EMBEDDINGS_ENGINE_ERROR.md) when the call fails
or returns a malformed result.

***

### isAvailable()

```ts
isAvailable(): boolean;
```

Defined in: [src/batteries/embeddings/transformers\_js/adapter.ts:93](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/embeddings/transformers_js/adapter.ts#L93)

Instance availability probe (honours an injected `isAvailable`).

#### Returns

`boolean`

***

### preload()

```ts
preload(): Promise<void>;
```

Defined in: [src/batteries/embeddings/transformers\_js/adapter.ts:98](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/embeddings/transformers_js/adapter.ts#L98)

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](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/embeddings/transformers_js/adapter.ts#L103)

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](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/embeddings/transformers_js/adapter.ts#L74)

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`
