Skip to main content

Class: HuggingFaceVectorizer

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

HuggingFace vectorizer using Transformers.js for local inference.

This vectorizer uses the @huggingface/transformers library to generate embeddings locally without requiring API keys or external services.

Models are automatically downloaded and cached on first use.

Examples​

import { HuggingFaceVectorizer } from 'redis-vl';

const vectorizer = new HuggingFaceVectorizer({
model: 'Xenova/all-MiniLM-L6-v2'
});

// Generate single embedding
const embedding = await vectorizer.embed('Hello world');
console.log(embedding.length); // 384

// Generate multiple embeddings
const embeddings = await vectorizer.embedMany(['Hello', 'World']);
console.log(embeddings.length); // 2
// Use with preprocessing
await index.load(documents, {
preprocess: async (doc) => ({
...doc,
embedding: await vectorizer.embed(doc.text)
})
});

Extends​

Accessors​

dims​

Get Signature​

get dims(): number

Defined in: vectorizers/huggingface-vectorizer.ts:210

Get the dimensionality of the embeddings.

Returns​

number

Overrides​

BaseVectorizer.dims


model​

Get Signature​

get model(): string

Defined in: vectorizers/huggingface-vectorizer.ts:223

Get the model name.

Returns​

string

Overrides​

BaseVectorizer.model

Constructors​

Constructor​

new HuggingFaceVectorizer(config): HuggingFaceVectorizer

Defined in: vectorizers/huggingface-vectorizer.ts:95

Parameters​

config​

HuggingFaceConfig

Returns​

HuggingFaceVectorizer

Overrides​

BaseVectorizer.constructor

Methods​

embed()​

embed(text): Promise<number[]>

Defined in: vectorizers/huggingface-vectorizer.ts:147

Generate an embedding for a single text.

Parameters​

text​

string

Returns​

Promise<number[]>

Overrides​

BaseVectorizer.embed


embedMany()​

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

Defined in: vectorizers/huggingface-vectorizer.ts:169

Generate embeddings for multiple texts.

Parameters​

texts​

string[]

batchSize?​

number = 32

Returns​

Promise<number[][]>

Overrides​

BaseVectorizer.embedMany