Skip to main content

Modules

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

Instance-level configuration

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.

What about WCD?

Weaviate Cloud (WCD) instances come with modules pre-configured. See this page for details.

Enable modules

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

services:
weaviate:
environment:
ENABLE_MODULES: 'text2vec-contextionary'

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

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

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

Module-specific variables

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.

Vectorizer modules

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

List of available vectorizer (xxx2vec-xxx) modules

Can be found in this section.

Enable vectorizer modules

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.

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

Default vectorizer module

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.

services:
weaviate:
environment:
DEFAULT_VECTORIZER_MODULE: text2vec-huggingface

Generative modules

The generative modules enable generative search functions.

List of available generative (generative-xxx) modules

Can be found in this section.

Enable a generative module

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.

services:
weaviate:
environment:
ENABLE_MODULES: 'text2vec-huggingface,generative-cohere'
generative module selection unrelated to text2vec module selection

Your choice of the text2vec module does not restrict your choice of generative module, or vice versa.

Custom modules

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

Questions and feedback

If you have any questions or feedback, let us know in the user forum.