Mixedbread AI
The MixedbreadAIEmbeddings
class uses the Mixedbread AI API to generate text embeddings. This guide will walk you through setting up and using the MixedbreadAIEmbeddings
class, helping you integrate it into your project effectively.
Installationβ
To install the @langchain/mixedbread-ai
package, use the following command:
- npm
- Yarn
- pnpm
npm install @langchain/mixedbread-ai
yarn add @langchain/mixedbread-ai
pnpm add @langchain/mixedbread-ai
Initializationβ
First, sign up on the Mixedbread AI website and get your API key from here. You can then use this key to initialize the MixedbreadAIEmbeddings
class.
You can pass the API key directly to the constructor or set it as an environment variable (MXBAI_API_KEY
).
Basic Usageβ
Hereβs how to create an instance of MixedbreadAIEmbeddings
:
import { MixedbreadAIEmbeddings } from "@langchain/mixedbread-ai";
const embeddings = new MixedbreadAIEmbeddings({
apiKey: "YOUR_API_KEY",
// Optionally specify model
// model: "mixedbread-ai/mxbai-embed-large-v1",
});
If the apiKey
is not provided, it will be read from the MXBAI_API_KEY
environment variable.
Generating Embeddingsβ
Embedding a Single Queryβ
To generate embeddings for a single text query, use the embedQuery
method:
const embedding = await embeddings.embedQuery(
"Represent this sentence for searching relevant passages: Is baking fun?"
);
console.log(embedding);
Embedding Multiple Documentsβ
To generate embeddings for multiple documents, use the embedDocuments
method. This method handles batching automatically based on the batchSize
parameter:
const documents = ["Baking bread is fun", "I love baking"];
const embeddingsArray = await embeddings.embedDocuments(documents);
console.log(embeddingsArray);
Customizing Requestsβ
You can customize the SDK by passing additional parameters.
const customEmbeddings = new MixedbreadAIEmbeddings({
apiKey: "YOUR_API_KEY",
baseUrl: "...",
maxRetries: 6,
});
Error Handlingβ
If the API key is not provided and cannot be found in the environment variables, an error will be thrown:
try {
const embeddings = new MixedbreadAIEmbeddings();
} catch (error) {
console.error(error);
}