
# ZeroEntropy Provider

[zeroentropy-ai/zeroentropy-ai-provider](https://github.com/zeroentropy-ai/zeroentropy-ai-provider) is a community provider that uses [ZeroEntropy](https://zeroentropy.dev) to provide text embedding and reranking support for the AI SDK.

## Setup

The ZeroEntropy provider is available in the `zeroentropy-ai-provider` module. You can install it with:

<Tabs items={['pnpm', 'npm', 'yarn', 'bun']}>
  <Tab>
    <Snippet text="pnpm add zeroentropy-ai-provider" dark />
  </Tab>
  <Tab>
    <Snippet text="npm install zeroentropy-ai-provider" dark />
  </Tab>
  <Tab>
    <Snippet text="yarn add zeroentropy-ai-provider" dark />
  </Tab>
  <Tab>
    <Snippet text="bun add zeroentropy-ai-provider" dark />
  </Tab>
</Tabs>

## Provider Instance

You can import the default provider instance `zeroentropy` from `zeroentropy-ai-provider`:

```ts
import { zeroentropy } from 'zeroentropy-ai-provider';
```

If you need a customized setup, you can import `createZeroEntropy` from `zeroentropy-ai-provider` and create a provider instance with your settings:

```ts
import { createZeroEntropy } from 'zeroentropy-ai-provider';

const zeroentropy = createZeroEntropy({
  apiKey: process.env.ZEROENTROPY_API_KEY ?? '',
});
```

You can use the following optional settings to customize the ZeroEntropy provider instance:

- **baseURL** _string_

  The base URL of the ZeroEntropy API. The default prefix is `https://api.zeroentropy.dev/v1`.

- **apiKey** _string_

  API key that is being sent using the `Authorization` header. It defaults to the `ZEROENTROPY_API_KEY` environment variable. Obtain your API key from the [ZeroEntropy Dashboard](https://dashboard.zeroentropy.dev).

- **headers** _Record&lt;string,string&gt;_

  Custom headers to include in the requests.

- **fetch** _(input: RequestInfo, init?: RequestInit) => Promise&lt;Response&gt;_

  Custom [fetch](https://developer.mozilla.org/en-US/docs/Web/API/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.

## Text Embedding Models

You can create models that call the [ZeroEntropy embeddings API](https://docs.zeroentropy.dev) using the `.textEmbeddingModel()` factory method.

```ts
import { zeroentropy } from 'zeroentropy-ai-provider';

const embeddingModel = zeroentropy.textEmbeddingModel('zembed-1');
```

You can use ZeroEntropy embedding models to generate embeddings with the `embed` or `embedMany` function:

```ts
import { zeroentropy } from 'zeroentropy-ai-provider';
import { embed, embedMany } from 'ai';

// Single embedding
const { embedding } = await embed({
  model: zeroentropy.textEmbeddingModel('zembed-1'),
  value: 'sunny day at the beach',
});

// Batch embeddings
const { embeddings } = await embedMany({
  model: zeroentropy.textEmbeddingModel('zembed-1'),
  values: ['first document', 'second document'],
});
```

ZeroEntropy embedding models support additional provider options that can be passed via `providerOptions.zeroentropy`:

```ts
import { zeroentropy } from 'zeroentropy-ai-provider';
import { embed } from 'ai';

const { embedding } = await embed({
  model: zeroentropy.textEmbeddingModel('zembed-1'),
  value: 'sunny day at the beach',
  providerOptions: {
    zeroentropy: {
      inputType: 'document',
      dimensions: 1280,
    },
  },
});
```

The following provider options are available:

- **inputType** _'query' | 'document'_

  Whether the input is a search query or a document to index. Use `'query'` for retrieval queries and `'document'` for content being indexed. Defaults to `'document'`.

- **dimensions** _2560 | 1280 | 640 | 320 | 160 | 80 | 40_

  Output vector dimensions. Defaults to `2560`. Supports Matryoshka representations for flexible dimensionality reduction.

- **latency** _'fast' | 'slow'_

  `'fast'` for sub-second latency; `'slow'` for higher throughput limits.

### Model Capabilities

| Model      | Default Dimensions | Context Length | Description                                                  |
| ---------- | ------------------ | -------------- | ------------------------------------------------------------ |
| `zembed-1` | 2560               | 8192           | Multilingual embedding model, supports Matryoshka dimensions |

## Reranking Models

You can create models that call the [ZeroEntropy reranking API](https://docs.zeroentropy.dev) using the `.rerankingModel()` factory method.

```ts
import { zeroentropy } from 'zeroentropy-ai-provider';
import { rerank } from 'ai';

const result = await rerank({
  model: zeroentropy.rerankingModel('zerank-2'),
  query: 'talk about rain',
  documents: ['sunny day at the beach', 'rainy day in the city'],
  topN: 2,
});
```

ZeroEntropy reranking models support additional provider options that can be passed via `providerOptions.zeroentropy`:

```ts
import { zeroentropy } from 'zeroentropy-ai-provider';
import { rerank } from 'ai';

const result = await rerank({
  model: zeroentropy.rerankingModel('zerank-2'),
  query: 'talk about rain',
  documents: ['sunny day at the beach', 'rainy day in the city'],
  topN: 2,
  providerOptions: {
    zeroentropy: {
      latency: 'fast',
    },
  },
});
```

The following provider option is available:

- **latency** _'fast' | 'slow'_

  `'fast'` for sub-second latency; `'slow'` for higher throughput limits.

### Model Capabilities

| Model            | Description                                            |
| ---------------- | ------------------------------------------------------ |
| `zerank-2`       | Flagship state-of-the-art cross-encoder reranker       |
| `zerank-2-nano`  | Compact `zerank-2` variant for lower-latency use cases |
| `zerank-1`       | Previous generation reranker                           |
| `zerank-1-small` | Lightweight reranker for lower-latency use cases       |

<Note>
  Please see the [ZeroEntropy docs](https://docs.zeroentropy.dev) for the full
  list of available models and options.
</Note>


## Navigation

- [Writing a Custom Provider](/v7/providers/community-providers/custom-providers)
- [A2A](/v7/providers/community-providers/a2a)
- [ACP (Agent Client Protocol)](/v7/providers/community-providers/acp)
- [Aihubmix](/v7/providers/community-providers/aihubmix)
- [AI/ML API](/v7/providers/community-providers/aimlapi)
- [Anthropic Vertex](/v7/providers/community-providers/anthropic-vertex-ai)
- [Automatic1111](/v7/providers/community-providers/automatic1111)
- [Azure AI](/v7/providers/community-providers/azure-ai)
- [Browser AI](/v7/providers/community-providers/browser-ai)
- [Claude Code](/v7/providers/community-providers/claude-code)
- [Cloudflare AI Gateway](/v7/providers/community-providers/cloudflare-ai-gateway)
- [Cloudflare Workers AI](/v7/providers/community-providers/cloudflare-workers-ai)
- [Codex CLI](/v7/providers/community-providers/codex-cli)
- [Crosshatch](/v7/providers/community-providers/crosshatch)
- [Dify](/v7/providers/community-providers/dify)
- [Firemoon](/v7/providers/community-providers/firemoon)
- [FriendliAI](/v7/providers/community-providers/friendliai)
- [Gemini CLI](/v7/providers/community-providers/gemini-cli)
- [Helicone](/v7/providers/community-providers/helicone)
- [Inflection AI](/v7/providers/community-providers/inflection-ai)
- [Jina AI](/v7/providers/community-providers/jina-ai)
- [LangDB](/v7/providers/community-providers/langdb)
- [Letta](/v7/providers/community-providers/letta)
- [llama.cpp](/v7/providers/community-providers/llama-cpp)
- [LlamaGate](/v7/providers/community-providers/llamagate)
- [MCP Sampling AI Provider](/v7/providers/community-providers/mcp-sampling)
- [Mem0](/v7/providers/community-providers/mem0)
- [MiniMax](/v7/providers/community-providers/minimax)
- [Mixedbread](/v7/providers/community-providers/mixedbread)
- [Ollama](/v7/providers/community-providers/ollama)
- [OpenCode](/v7/providers/community-providers/opencode-sdk)
- [OpenRouter](/v7/providers/community-providers/openrouter)
- [Portkey](/v7/providers/community-providers/portkey)
- [Qwen](/v7/providers/community-providers/qwen)
- [React Native Apple](/v7/providers/community-providers/react-native-apple)
- [Requesty](/v7/providers/community-providers/requesty)
- [Runpod](/v7/providers/community-providers/runpod)
- [SambaNova](/v7/providers/community-providers/sambanova)
- [SAP AI Core](/v7/providers/community-providers/sap-ai)
- [Sarvam](/v7/providers/community-providers/sarvam)
- [Soniox](/v7/providers/community-providers/soniox)
- [Spark](/v7/providers/community-providers/spark)
- [Supermemory](/v7/providers/community-providers/supermemory)
- [Voyage AI](/v7/providers/community-providers/voyage-ai)
- [Zhipu AI (Z.AI)](/v7/providers/community-providers/zhipu)
- [vectorstores](/v7/providers/community-providers/vectorstores)
- [Codex CLI (App Server)](/v7/providers/community-providers/codex-app-server)
- [Apertis](/v7/providers/community-providers/apertis)
- [OLLM](/v7/providers/community-providers/ollm)
- [Cencori](/v7/providers/community-providers/cencori)
- [Hindsight](/v7/providers/community-providers/hindsight)
- [ZeroEntropy](/v7/providers/community-providers/zeroentropy)
- [Flowise](/v7/providers/community-providers/flowise)


[Full Sitemap](/sitemap.md)
