Skip to main content

Abstract Class: BaseVectorizer

Defined in: vectorizers/base-vectorizer.ts:30

Base abstract class for all vectorizers.

Vectorizers are responsible for converting text into numerical embeddings (vectors) that can be stored in Redis and used for semantic search.

This class defines the interface that all concrete vectorizer implementations must follow.

Example​

class MyVectorizer extends BaseVectorizer {
async embed(text: string): Promise<number[]> {
// Implementation
}

async embedMany(texts: string[], batchSize?: number): Promise<number[][]> {
// Implementation
}

get dims(): number {
return 384; // Embedding dimensions
}

get model(): string {
return 'my-model-name';
}
}

Extended by​

Accessors​

dims​

Get Signature​

get abstract dims(): number

Defined in: vectorizers/base-vectorizer.ts:77

Get the dimensionality of the embeddings produced by this vectorizer.

This should match the length of the arrays returned by embed() and embedMany().

Example​
console.log(vectorizer.dims); // 384
const embedding = await vectorizer.embed('test');
console.log(embedding.length === vectorizer.dims); // true
Returns​

number

The number of dimensions in the embedding vectors


model​

Get Signature​

get abstract model(): string

Defined in: vectorizers/base-vectorizer.ts:89

Get the name/identifier of the model used by this vectorizer.

Example​
console.log(vectorizer.model); // "sentence-transformers/all-MiniLM-L6-v2"
Returns​

string

The model name or identifier

Constructors​

Constructor​

new BaseVectorizer(): BaseVectorizer

Returns​

BaseVectorizer

Methods​

embed()​

abstract embed(text): Promise<number[]>

Defined in: vectorizers/base-vectorizer.ts:43

Generate an embedding for a single text.

Parameters​

text​

string

The text to embed

Returns​

Promise<number[]>

A promise that resolves to the embedding vector

Example​

const embedding = await vectorizer.embed('Hello world');
console.log(embedding); // [0.1, 0.2, 0.3, ...]

embedMany()​

abstract embedMany(texts, batchSize?): Promise<number[][]>

Defined in: vectorizers/base-vectorizer.ts:61

Generate embeddings for multiple texts.

This method should be more efficient than calling embed() multiple times by batching requests to the underlying model.

Parameters​

texts​

string[]

Array of texts to embed

batchSize?​

number

Optional batch size for processing (default: 32)

Returns​

Promise<number[][]>

A promise that resolves to an array of embedding vectors

Example​

const embeddings = await vectorizer.embedMany(['Hello', 'World']);
console.log(embeddings); // [[0.1, 0.2, ...], [0.3, 0.4, ...]]