---
title: "Model provider integrations"
description: "Weaviate integrates with a variety of self-hosted and API-based models from a range of providers."
url: https://docs.weaviate.io/weaviate/model-providers
---

# Model provider integrations

Weaviate integrates with a variety of [self-hosted](https://docs.weaviate.io/weaviate/model-providers#locally-hosted) and [API-based](https://docs.weaviate.io/weaviate/model-providers#api-based) models from a range of providers.

This enables an enhanced developed experience, such as the ability to:

- Import objects directly into Weaviate without having to manually specify embeddings, and
- Build an integrated retrieval augmented generation (RAG) pipeline with generative AI models.

## Model provider integrations

### API-based

| Model provider | Embeddings | Generative AI | Others |
| - | - | - | - |
| [Anthropic](https://docs.weaviate.io/weaviate/model-providers/anthropic) | - | [Text](https://docs.weaviate.io/weaviate/model-providers/anthropic/generative) | - |
| [Anyscale](https://docs.weaviate.io/weaviate/model-providers/anyscale) | - | [Text](https://docs.weaviate.io/weaviate/model-providers/anyscale/generative) | - |
| [AWS](https://docs.weaviate.io/weaviate/model-providers/aws) | [Text](https://docs.weaviate.io/weaviate/model-providers/aws/embeddings) | [Text](https://docs.weaviate.io/weaviate/model-providers/aws/generative) | - |
| [Cohere](https://docs.weaviate.io/weaviate/model-providers/cohere) | [Text](https://docs.weaviate.io/weaviate/model-providers/cohere/embeddings), [Multimodal](https://docs.weaviate.io/weaviate/model-providers/cohere/embeddings-multimodal) | [Text](https://docs.weaviate.io/weaviate/model-providers/cohere/generative) | [Reranker](https://docs.weaviate.io/weaviate/model-providers/cohere/reranker) |
| [Contextual AI](https://docs.weaviate.io/weaviate/model-providers/contextualai) | - | [Text](https://docs.weaviate.io/weaviate/model-providers/contextualai/generative) | [Reranker](https://docs.weaviate.io/weaviate/model-providers/contextualai/reranker) |
| [Databricks](https://docs.weaviate.io/weaviate/model-providers/databricks) | [Text](https://docs.weaviate.io/weaviate/model-providers/databricks/embeddings) | [Text](https://docs.weaviate.io/weaviate/model-providers/databricks/generative) | - |
| [DeepSeek](https://docs.weaviate.io/weaviate/model-providers/deepseek) | - | [Text](https://docs.weaviate.io/weaviate/model-providers/deepseek/generative) | - |
| [DigitalOcean](https://docs.weaviate.io/weaviate/model-providers/digitalocean) | [Text](https://docs.weaviate.io/weaviate/model-providers/digitalocean/embeddings) | [Text](https://docs.weaviate.io/weaviate/model-providers/digitalocean/generative) | - |
| [FriendliAI](https://docs.weaviate.io/weaviate/model-providers/friendliai) | - | [Text](https://docs.weaviate.io/weaviate/model-providers/friendliai/generative) | - |
| [Google](https://docs.weaviate.io/weaviate/model-providers/google) | [Text](https://docs.weaviate.io/weaviate/model-providers/google/embeddings), [Multimodal](https://docs.weaviate.io/weaviate/model-providers/google/embeddings-multimodal) | [Text](https://docs.weaviate.io/weaviate/model-providers/google/generative) | - |
| [Hugging Face](https://docs.weaviate.io/weaviate/model-providers/huggingface) | [Text](https://docs.weaviate.io/weaviate/model-providers/huggingface/embeddings) | - | - |
| [Jina AI](https://docs.weaviate.io/weaviate/model-providers/jinaai) | [Text](https://docs.weaviate.io/weaviate/model-providers/jinaai/embeddings), [Multimodal](https://docs.weaviate.io/weaviate/model-providers/jinaai/embeddings-multimodal) | - | [Reranker](https://docs.weaviate.io/weaviate/model-providers/jinaai/reranker) |
| [Meta](https://docs.weaviate.io/weaviate/model-providers/meta) | - | [Text](https://docs.weaviate.io/weaviate/model-providers/meta/generative) | - |
| [Mistral](https://docs.weaviate.io/weaviate/model-providers/mistral) | [Text](https://docs.weaviate.io/weaviate/model-providers/mistral/embeddings) | [Text](https://docs.weaviate.io/weaviate/model-providers/mistral/generative) | - |
| [Morph](https://docs.weaviate.io/weaviate/model-providers/morph) | [Text](https://docs.weaviate.io/weaviate/model-providers/morph/embeddings) | - | - |
| [NVIDIA](https://docs.weaviate.io/weaviate/model-providers/nvidia) | [Text](https://docs.weaviate.io/weaviate/model-providers/nvidia/embeddings), [Multimodal](https://docs.weaviate.io/weaviate/model-providers/nvidia/embeddings-multimodal) | [Text](https://docs.weaviate.io/weaviate/model-providers/nvidia/generative) | [Reranker](https://docs.weaviate.io/weaviate/model-providers/nvidia/reranker) |
| [OpenAI](https://docs.weaviate.io/weaviate/model-providers/openai) | [Text](https://docs.weaviate.io/weaviate/model-providers/openai/embeddings) | [Text](https://docs.weaviate.io/weaviate/model-providers/openai/generative) | - |
| [Azure OpenAI](https://docs.weaviate.io/weaviate/model-providers/openai-azure) | [Text](https://docs.weaviate.io/weaviate/model-providers/openai-azure/embeddings) | [Text](https://docs.weaviate.io/weaviate/model-providers/openai-azure/generative) | - |
| [TwelveLabs](https://docs.weaviate.io/weaviate/model-providers/twelvelabs) | [Multimodal](https://docs.weaviate.io/weaviate/model-providers/twelvelabs/embeddings-multimodal) | - | - |
| [Voyage AI](https://docs.weaviate.io/weaviate/model-providers/voyageai) | [Text](https://docs.weaviate.io/weaviate/model-providers/voyageai/embeddings), [Multimodal](https://docs.weaviate.io/weaviate/model-providers/voyageai/embeddings-multimodal) | - | [Reranker](https://docs.weaviate.io/weaviate/model-providers/voyageai/reranker) |
| [Weaviate](https://docs.weaviate.io/weaviate/model-providers/weaviate) | [Text](https://docs.weaviate.io/weaviate/model-providers/weaviate/embeddings), [Multimodal](https://docs.weaviate.io/weaviate/model-providers/weaviate/embeddings-multimodal) | - | - |
| [xAI](https://docs.weaviate.io/weaviate/model-providers/xai) | - | [Text](https://docs.weaviate.io/weaviate/model-providers/xai/generative) | - |

#### Enable all API-based modules

All API-based model integrations are available by default starting with Weaviate `v1.33`.

To opt out, for example in an air-gapped or otherwise restricted deployment, set the [`API_BASED_MODULES_DISABLED` environment variable](https://docs.weaviate.io/deploy/configuration/env-vars#API_BASED_MODULES_DISABLED) to `true`. Weaviate then loads only the modules that you list in [`ENABLE_MODULES`](https://docs.weaviate.io/deploy/configuration/env-vars#ENABLE_MODULES). This variable was added in `v1.33`.

For releases before `v1.33`, enable all API-based modules by setting the [`ENABLE_API_BASED_MODULES` environment variable](https://docs.weaviate.io/deploy/configuration/env-vars#ENABLE_API_BASED_MODULES) to `true`. Weaviate stopped reading that variable in `v1.33`.

### Locally hosted

| Model provider | Embeddings | Generative AI | Others |
| - | - | - | - |
| [GPT4All (Deprecated)](https://docs.weaviate.io/weaviate/model-providers/gpt4all) | [Text (Deprecated)](https://docs.weaviate.io/weaviate/model-providers/gpt4all/embeddings) | - | - |
| [Hugging Face](https://docs.weaviate.io/weaviate/model-providers/transformers) | [Text](https://docs.weaviate.io/weaviate/model-providers/transformers/embeddings), [Multimodal (CLIP)](https://docs.weaviate.io/weaviate/model-providers/transformers/embeddings-multimodal) | - | [Reranker](https://docs.weaviate.io/weaviate/model-providers/transformers/reranker) |
| [KubeAI](https://docs.weaviate.io/weaviate/model-providers/kubeai) | [Text](https://docs.weaviate.io/weaviate/model-providers/kubeai/embeddings) | - | - |
| [Model2vec](https://docs.weaviate.io/weaviate/model-providers/model2vec) | [Text](https://docs.weaviate.io/weaviate/model-providers/model2vec/embeddings) | - | - |
| [Meta ImageBind](https://docs.weaviate.io/weaviate/model-providers/imagebind) | [Multimodal](https://docs.weaviate.io/weaviate/model-providers/imagebind/embeddings-multimodal) | - | - |
| [Ollama](https://docs.weaviate.io/weaviate/model-providers/ollama) | [Text](https://docs.weaviate.io/weaviate/model-providers/ollama/embeddings) | [Text](https://docs.weaviate.io/weaviate/model-providers/ollama/generative) | - |

![Weaviate Academy](https://docs.weaviate.io/img/docs/weaviate-academy-purple.png)

#### Course: Embedding Model Evaluation & Selection

Embedding models are the heart of vector search. Learn how to evaluate and select appropriate embedding models for your use case.

[Open Academy Course](https://academy.weaviate.io/courses/wa260-py)

## How does Weaviate generate embeddings?

When a model provider integration for embeddings is enabled, Weaviate automatically generates embeddings for objects that are added to the database.

This is done by providing the source data to the integration provider, which then returns the embeddings to Weaviate. The embeddings are then stored in the Weaviate Database.

```mermaid
%%{init: {
  'theme': 'base',
  'themeVariables': {
    'primaryColor': '#4a5568',
    'primaryTextColor': '#2d3748',
    'primaryBorderColor': '#718096',
    'lineColor': '#718096',
    'secondaryColor': '#f7fafc',
    'tertiaryColor': '#edf2f7'
  }
}}%%

flowchart LR
    %% Style definitions
    classDef systemBox fill:#f7fafc,stroke:#3182ce,stroke-width:2px,color:#2d3748
    classDef weaviateBox fill:#f7fafc,stroke:#2d3748,stroke-width:2px,color:#2d3748
    classDef providerBox fill:#f7fafc,stroke:#48bb78,stroke-width:2px,color:#2d3748
    classDef component fill:white,stroke:#718096,stroke-width:1.5px,color:#2d3748,rx:6

    %% Model Provider section (leftmost)
    subgraph provider["Model Provider"]
        inference["🤖 Inference API /<br> Local Model"]
    end

    %% Weaviate section (middle)
    subgraph weaviate["Weaviate"]
        vectorizer["🔌 Model Provider<br> Integration"]
        core["⚡️ Data & vector store"]
    end

    %% User System (bottom)
    subgraph user["User System"]
        data["📄 Data"]
    end

    %% Connections
    data -->|"1\. Insert objects"| core
    core -->|"2\. Request vector"| vectorizer
    vectorizer -->|"3\. Request vector"| inference
    inference -->|"4\. Vector"| vectorizer
    vectorizer -->|"5\. Vector"| core

    %% Apply styles
    class user systemBox
    class weaviate weaviateBox
    class provider providerBox
    class data,core,vectorizer,inference component
```

Weaviate generates embeddings for objects as follows:

- Selects properties with `text` or `text[]` data types unless they are configured to be skipped
- Sorts properties in alphabetical (a-z) order before concatenating values
- Prepends the collection name if configured

> [!NOTE]
>
> **Case sensitivity**
>
> For Weaviate versions before `v1.27`, the string created above is lowercased before being sent to the model provider. Starting in `v1.27`, the string is sent as is.
>
> If you prefer the text to be lowercased, you can do so by setting the `LOWERCASE_VECTORIZATION_INPUT` environment variable. The text is always lowercased for the `text2vec-contextionary` integration.

## Rate limits for API-based embeddings

Model providers throttle how fast you can call them, so a large import often ends in `429` errors. To keep Weaviate inside your quota, tell it what the quota is with two request headers:

- `X-<Provider>-Ratelimit-RequestPM-Embedding`: the requests-per-minute limit
- `X-<Provider>-Ratelimit-TokenPM-Embedding`: the tokens-per-minute limit

`<Provider>` is the same name as in the API key header on the integration's page. A collection vectorized by Cohere, for example, takes `X-Cohere-Ratelimit-RequestPM-Embedding` next to `X-Cohere-Api-Key`. Set the headers when you connect, so every batch request carries them.

The values must be whole numbers. Weaviate falls back to the integration's own default if a header is missing or cannot be parsed.

The headers are read by the Cohere, Databricks, DigitalOcean, Jina AI, Mistral, OpenAI, Azure OpenAI, Voyage AI, and Weaviate Embeddings integrations. Other integrations ignore them.

## Troubleshooting: a missing or misconfigured API key

Every API-based integration reports a missing key the same way. If the key is absent, the request fails with:

```text
no api key found neither in request header: X-<Provider>-Api-Key nor in environment variable under <PROVIDER>_APIKEY
```

The API key is never part of the collection configuration, so supply it as a request header when you connect, or set the environment variable on the Weaviate server. A key in the header takes precedence over the environment variable.
