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
abstractdims():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
abstractmodel():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()
abstractembed(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()
abstractembedMany(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, ...]]