The TransformerEmbeddings class uses the Transformers.js package to generate embeddings for a given text.
It runs locally and even works directly in the browser, allowing you to create web apps with built-in embeddings.
Setup
You’ll need to install the @huggingface/transformers package as a peer dependency:
CompatibilityIf you are using a version of community older than 0.3.21, install the older @xenova/transformers package and
import the embeddings from "@langchain/community/embeddings/hf_transformers" below.
npm install @huggingface/transformers
npm install @langchain/community @langchain/core
Example
Note that if you’re using in a browser context, you’ll likely want to put all inference-related code in a web worker to avoid
blocking the main thread.
See this guide and the other resources in the Transformers.js docs for an idea of how to
set up your project.
import { HuggingFaceTransformersEmbeddings } from "@langchain/community/embeddings/huggingface_transformers";
const model = new HuggingFaceTransformersEmbeddings({
model: "Xenova/all-MiniLM-L6-v2",
});
/* Embed queries */
const res = await model.embedQuery(
"What would be a good company name for a company that makes colorful socks?"
);
console.log({ res });
/* Embed documents */
const documentRes = await model.embedDocuments(["Hello world", "Bye bye"]);
console.log({ documentRes });