Skip to main content
Weaviate Docs (migrated from docs.weaviate.io) Docs

Search documentation

Type to search this documentation.

On this pageOverview

Modules

Weaviate's functionality can be customized by using modules. This page explains how to enable and configure modules.

At the instance (i.e. Weaviate cluster) level, you can:

  • Enable modules
  • Configure the default vectorizer module
  • Configure module-specific variables (e.g. API keys), where applicable

This can be done by setting the appropriate environment variables as shown below.

You can enable modules by specifying the list of modules in the ENABLE_MODULES variable. For example, this code enables the text2vec-transformers module.

YAML
services:
  weaviate:
    environment:
      ENABLE_MODULES: 'text2vec-transformers'

To enable multiple modules, add them in a comma-separated list.

This example code enables the 'text2vec-huggingface, generative-cohere, and qna-openai modules.

YAML
services:
  weaviate:
    environment:
      ENABLE_MODULES: 'text2vec-huggingface,generative-cohere,qna-openai'

All API-based model integrations are available by default starting with Weaviate v1.33. For older versions, you can enable all API-based modules by setting the ENABLE_API_BASED_MODULES variable to true. This will enable all API-based model integrations, such as those for Anthropic, Cohere, OpenAI and so on by enabling the relevant modules. These modules are lightweight, so enabling them all will not significantly increase resource usage.

YAML
services:
  weaviate:
    environment:
      ENABLE_API_BASED_MODULES: 'true'

The list of API-based modules can be found on the model provider integrations page. You can also inspect the source code where the list is defined.

Enabling individual modules can be combined with the API-based modules. For example, since API-based modules are enabled by default from v1.33, the example below enables the Ollama modules and the backup-s3 module alongside them.

YAML
services:
  weaviate:
    environment:
      ENABLE_MODULES: 'text2vec-ollama,generative-ollama,backup-s3'

To opt out of the API-based modules from v1.33 onwards, set API_BASED_MODULES_DISABLED to true. The older ENABLE_API_BASED_MODULES variable is no longer read.

Note that enabling multiple vectorizer (e.g. text2vec, multi2vec) modules will disable the Explore functionality. If you need to use Explore, you should only enable one vectorizer module.

You may need to specify additional environment variables to configure each module where applicable. For example, the backup-s3 module requires the backup S3 bucket to be set via BACKUP_S3_BUCKET, and the text2vec-contextionary module requires the inference API location via TRANSFORMERS_INFERENCE_API.

Refer to the individual module documentation for more details.

The vectorization integration enable Weaviate to vectorize data at import, and to perform near<Media> searches such as nearText or nearImage.

You can enable vectorizer modules by adding them to the ENABLE_MODULES environment variable. For example, this code enables the text2vec-cohere, text2vec-huggingface, and text2vec-openai vectorizer modules.

YAML
services:
  weaviate:
    environment:
      ENABLE_MODULES: 'text2vec-cohere,text2vec-huggingface,text2vec-openai'

You can specify a default vectorization module with the DEFAULT_VECTORIZER_MODULE variable as below.

If a default vectorizer module is not set, you must set a vectorizer in the schema before you can use near<Media> or vectorization at import time.

This code sets text2vec-huggingface as the default vectorizer. Thus, text2vec-huggingface module will be used unless another vectorizer is specified for that class.

YAML
services:
  weaviate:
    environment:
      DEFAULT_VECTORIZER_MODULE: text2vec-huggingface

The generative model integrations enable retrieval augmented generation functions.

You can enable generative modules by adding the desired module to the ENABLE_MODULES environment variable. For example, this code enables the generative-cohere module and the text2vec-huggingface vectorizer module.

YAML
services:
  weaviate:
    environment:
      ENABLE_MODULES: 'text2vec-huggingface,generative-cohere'

Tenants can be offloaded to cold storage to reduce memory and disk usage, and onloaded back when needed.

See the dedicated page on tenant offloading for more information on how to configure Weaviate for tenant offloading. For information on how to offload and onload tenants, see How-to: manage tenant states.

See here how you can create and use your own modules.

The usage module collects and uploads usage analytics to GCS or S3.

Have a question or feedback? Here's how to reach us.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu