content/providers/03-community-providers/29-mixedbread.mdx
patelvivekdev/mixedbread-ai-provider is a community provider that uses Mixedbread to provide Embedding support for the AI SDK.
The Mixedbread provider is available in the mixedbread-ai-provider module. You can install it with
<Tabs items={['pnpm', 'npm', 'yarn', 'bun']}> <Tab> <Snippet text="pnpm add mixedbread-ai-provider" dark /> </Tab> <Tab> <Snippet text="npm install mixedbread-ai-provider" dark /> </Tab> <Tab> <Snippet text="yarn add mixedbread-ai-provider" dark /> </Tab>
<Tab> <Snippet text="bun add mixedbread-ai-provider" dark /> </Tab> </Tabs>You can import the default provider instance mixedbread from mixedbread-ai-provider:
import { mixedbread } from 'mixedbread-ai-provider';
If you need a customized setup, you can import createMixedbread from mixedbread-ai-provider and create a provider instance with your settings:
import { createMixedbread } from 'mixedbread-ai-provider';
const mixedbread = createMixedbread({
// custom settings
});
You can use the following optional settings to customize the Mixedbread provider instance:
baseURL string
The base URL of the Mixedbread API. The default prefix is https://api.mixedbread.com/v1.
apiKey string
API key that is being sent using the Authorization header. It defaults to the MIXEDBREAD_API_KEY environment variable.
headers Record<string,string>
Custom headers to include in the requests.
fetch (input: RequestInfo, init?: RequestInit) => Promise<Response>
Custom fetch implementation. Defaults to the global fetch function. You can use it as a middleware to intercept requests, or to provide a custom fetch implementation for e.g. testing.
You can create models that call the Mixedbread embeddings API
using the .embeddingModel() factory method.
import { mixedbread } from 'mixedbread-ai-provider';
const embeddingModel = mixedbread.embeddingModel(
'mixedbread-ai/mxbai-embed-large-v1',
);
You can use Mixedbread embedding models to generate embeddings with the embed function:
import { mixedbread } from 'mixedbread-ai-provider';
import { embed } from 'ai';
const { embedding } = await embed({
model: mixedbread.embeddingModel('mixedbread-ai/mxbai-embed-large-v1'),
value: 'sunny day at the beach',
});
Mixedbread embedding models support additional provider options that can be passed via providerOptions.mixedbread:
import { mixedbread } from 'mixedbread-ai-provider';
import { embed } from 'ai';
const { embedding } = await embed({
model: mixedbread.embeddingModel('mixedbread-ai/mxbai-embed-large-v1'),
value: 'sunny day at the beach',
providerOptions: {
mixedbread: {
prompt: 'Generate embeddings for text',
normalized: true,
dimensions: 512,
encodingFormat: 'float16',
},
},
});
The following provider options are available:
prompt string
An optional prompt to provide context to the model. Refer to the model's documentation for more information. A string between 1 and 256 characters.
normalized boolean
Option to normalize the embeddings.
dimensions number
The desired number of dimensions in the output vectors. Defaults to the model's maximum. A number between 1 and the model's maximum output dimensions. Only applicable for Matryoshka-based models.
encodingFormat 'float' | 'float16' | 'binary' | 'ubinary' | 'int8' | 'uint8' | 'base64'
| Model | Context Length | Dimension | Custom Dimensions |
|---|---|---|---|
mxbai-embed-large-v1 | 512 | 1024 | <Check size={18} /> |
mxbai-embed-2d-large-v1 | 512 | 1024 | <Check size={18} /> |
deepset-mxbai-embed-de-large-v1 | 512 | 1024 | <Check size={18} /> |
mxbai-embed-xsmall-v1 | 4096 | 384 | <Cross size={18} /> |