The default model is Flag Embedding, which is top of the MTEB leaderboard.
To install the FastEmbed library, npm works:
npm install fastembed
import { EmbeddingModel, FlagEmbedding } from "fastembed";
// For CommonJS
// const { EmbeddingModel, FlagEmbedding } = require("fastembed)
const embeddingModel = await FlagEmbedding.init({
model: EmbeddingModel.BGEBaseEN
});
let documents = [
"passage: Hello, World!",
"query: Hello, World!",
"passage: This is an example passage.",
// You can leave out the prefix but it's recommended
"fastembed-js is licensed under MIT"
];
const embeddings = embeddingModel.embed(documents, 2); //Optional batch size. Defaults to 256
for await (const batch of embeddings) {
// batch is list of Float32 embeddings(number[][]) with length 2
console.log(batch);
}
const embeddings = embeddingModel.passageEmbed(listOfLongTexts, 10); //Optional batch size. Defaults to 256
for await (const batch of embeddings) {
// batch is list of Float32 passage embeddings(number[][]) with length 10
console.log(batch);
}
const queryEmbeddings: number[] = await embeddingModel.queryEmbed(userQuery);
console.log(queryEmbeddings)
It's important we justify the "fast" in FastEmbed. FastEmbed is fast because:
MIT © 2023