Cannot enable “reranker-transformers” module and Use "Ranking" feature

I am trying to use the reranker-transformers module with Weaviate, but I’m encountering an error during collection creation. My setup and the error are detailed below.

[1] My configuration enables the reranker-transformers module as follows:

services:
  weaviate:
    command:
    - --host
    - 0.0.0.0
    - --port
    - '8080'
    - --scheme
    - http
    image: semitechnologies/weaviate:1.31.2
    ports:
      - "8080:8080"
      - "50051:50051"
    volumes:
      - ./weaviate_data:/var/lib/weaviate
    restart: on-failure:0
    extra_hosts:
      - "ollama-host:host-gateway"
    depends_on:
     - reranker-transformers
    environment:
      ENABLE_API_BASED_MODULES: 'true'
      ENABLE_CUDA: 0
      AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
      PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
      DEFAULT_VECTORIZER_MODULE: 'none'
      CLUSTER_HOSTNAME: 'node1'
      ENABLE_TOKENIZER_GSE: 'true'
      ENABLE_MODULES: 'text2vec-ollama,generative-ollama,reranker_transformers'
      RERANKER_INFERENCE_API: http://reranker-transformers:8080
  reranker-transformers:
    image: semitechnologies/reranker-transformers:baai-bge-reranker-v2-m3  # this image is from https://hub.docker.com/r/semitechnologies/reranker-transformers/tags
    pull_policy: missing

[2] After starting the container, I checked the /v1/meta endpoint, several “reranker” module appears to be enabled, but no reranker-transformers module:

{"grpcMaxMessageSize":104858000,"hostname":"http://[::]:8080","modules":{"generative-anthropic":{"documentationHref":"https://docs.anthropic.com/en/api/getting-started","name":"Generative Search - Anthropic"},"generative-anyscale":{"documentationHref":"https://docs.anyscale.com/endpoints/overview","name":"Generative Search - Anyscale"},"generative-aws":{"documentationHref":"https://docs.aws.amazon.com/bedrock/latest/APIReference/welcome.html","name":"Generative Search - AWS"},"generative-cohere":{"documentationHref":"https://docs.cohere.com/reference/chat","name":"Generative Search - Cohere"},"generative-databricks":{"documentationHref":"https://docs.databricks.com/en/machine-learning/foundation-models/api-reference.html#completion-task","name":"Generative Search - Databricks"},"generative-friendliai":{"documentationHref":"https://docs.friendli.ai/openapi/create-chat-completions","name":"Generative Search - FriendliAI"},"generative-google":{"documentationHref":"https://cloud.google.com/vertex-ai/docs/generative-ai/chat/test-chat-prompts","name":"Generative Search - Google"},"generative-mistral":{"documentationHref":"https://docs.mistral.ai/api/","name":"Generative Search - Mistral"},"generative-nvidia":{"documentationHref":"https://docs.api.nvidia.com/nim/reference/llm-apis","name":"Generative Search - NVIDIA"},"generative-octoai":{"documentationHref":"https://octo.ai/docs/text-gen-solution/getting-started","name":"Generative Search - OctoAI (deprecated)"},"generative-ollama":{"documentationHref":"https://github.com/ollama/ollama/blob/main/docs/api.md#generate-a-completion","name":"Generative Search - Ollama"},"generative-openai":{"documentationHref":"https://platform.openai.com/docs/api-reference/completions","name":"Generative Search - OpenAI"},"generative-xai":{"documentationHref":"https://docs.x.ai/docs/overview","name":"Generative Search - xAI"},"multi2vec-cohere":{"documentationHref":"https://docs.cohere.ai/embedding-wiki/","name":"Cohere Module"},"multi2vec-google":{"documentationHref":"https://cloud.google.com/vertex-ai/generative-ai/docs/embeddings/get-multimodal-embeddings","name":"Google Multimodal Module"},"multi2vec-jinaai":{"documentationHref":"https://jina.ai/embeddings/","name":"JinaAI CLIP Module"},"multi2vec-nvidia":{"documentationHref":"https://docs.api.nvidia.com/nim/reference/retrieval-apis","name":"NVIDIA CLIP Module"},"multi2vec-voyageai":{"documentationHref":"https://docs.voyageai.com/docs/multimodal-embeddings","name":"VoyageAI Multi Modal Module"},"reranker-cohere":{"documentationHref":"https://txt.cohere.com/rerank/","name":"Reranker - Cohere"},"reranker-jinaai":{"documentationHref":"https://jina.ai/reranker","name":"Reranker - Jinaai"},"reranker-nvidia":{"documentationHref":"https://docs.api.nvidia.com/nim/reference/retrieval-apis","name":"Reranker - NVIDIA"},"reranker-voyageai":{"documentationHref":"https://docs.voyageai.com/reference/reranker-api","name":"Reranker - VoyageAI"},"text2colbert-jinaai":{"documentationHref":"https://jina.ai/embeddings/","name":"JinaAI Module"},"text2vec-aws":{"documentationHref":"https://docs.aws.amazon.com/bedrock/latest/userguide/titan-embedding-models.html","name":"AWS Module"},"text2vec-cohere":{"documentationHref":"https://docs.cohere.ai/embedding-wiki/","name":"Cohere Module"},"text2vec-databricks":{"documentationHref":"https://docs.databricks.com/en/machine-learning/foundation-models/api-reference.html#embedding-task","name":"Databricks Foundation Models Module - Embeddings"},"text2vec-google":{"documentationHref":"https://cloud.google.com/vertex-ai/docs/generative-ai/embeddings/get-text-embeddings","name":"Google Module"},"text2vec-huggingface":{"documentationHref":"https://huggingface.co/docs/api-inference/detailed_parameters#feature-extraction-task","name":"Hugging Face Module"},"text2vec-jinaai":{"documentationHref":"https://jina.ai/embeddings/","name":"JinaAI Module"},"text2vec-mistral":{"documentationHref":"https://docs.mistral.ai/api/#operation/createEmbedding","name":"Mistral Module"},"text2vec-nvidia":{"documentationHref":"https://docs.api.nvidia.com/nim/reference/retrieval-apis","name":"NVIDIA Module"},"text2vec-octoai":{"documentationHref":"https://octo.ai/docs/text-gen-solution/getting-started","name":"OctoAI Module (deprecated)"},"text2vec-ollama":{"documentationHref":"https://github.com/ollama/ollama/blob/main/docs/api.md#generate-embeddings","name":"Ollama Module"},"text2vec-openai":{"documentationHref":"https://platform.openai.com/docs/guides/embeddings/what-are-embeddings","name":"OpenAI Module"},"text2vec-voyageai":{"documentationHref":"https://docs.voyageai.com/docs/embeddings","name":"VoyageAI Module"},"text2vec-weaviate":{"documentationHref":"https://api.embedding.weaviate.io","name":"Weaviate Embedding Module"}},"version":"1.31.2"}

[3] I am using the weaviate-client for Python to create the collection:

  properties_to_create = [
      Property(
          name="content",
          data_type=DataType.TEXT,
          tokenization=Tokenization.GSE,
          index_searchable=True
      ),
      Property(
          name="content_for_rerank",
          data_type=DataType.TEXT,
          tokenization=Tokenization.GSE,
          index_searchable=True
      ),
      Property(
          name="summary",
          data_type=DataType.TEXT,
          tokenization=Tokenization.GSE,
          index_searchable=True
      ),
      Property(
          name="source",
          data_type=DataType.TEXT,
          index_filterable=True
      ),
      Property(
          name="chapter_info",
          data_type=DataType.TEXT,
          index_filterable=True
      ),
      Property(
          name="file_type",
          data_type=DataType.TEXT,
          index_filterable=True
      ),
      Property(
          name="chunk_type",
          data_type=DataType.TEXT,
          index_filterable=True
      ),
      Property(
          name="access_level",
          data_type=DataType.INT,
          index_filterable=True
      ),
      Property(
          name="page_number",
          data_type=DataType.TEXT,
          index_filterable=True
      ),
      Property(
          name="chunk_seq_id",
          data_type=DataType.INT,
          index_filterable=True
      ),
  ]

  vectorizer_settings = [
      Configure.NamedVectors.text2vec_ollama(
          name="content_vector",
          source_properties=["content"],
          api_endpoint="http://ollama-host:11434",
          model=self.text_embedding_model_name
      ),
      Configure.NamedVectors.text2vec_ollama(
          name="content_for_rerank_vector",
          source_properties=["content"],
          api_endpoint="http://ollama-host:11434",
          model=self.text_embedding_model_name
      ),
      Configure.NamedVectors.text2vec_ollama(
          name="summary_vector",
          source_properties=["summary"],
          api_endpoint="http://ollama-host:11434",
          model=self.text_embedding_model_name
      )
  ]

self.vector_database_client.collections.create(
    name=collection_name,
    reranker_config=Configure.Reranker.transformers(),
    vectorizer_config=vectorizer_settings,
    properties=properties_to_create
)

[4] When I execute the Python code, it fails with an UnexpectedStatusCodeError: 422 . The core of the error message from Weaviate is:

{'error': [{'message': "module with name reranker-transformers doesn't exist"}]}

Here is the full traceback:

Traceback (most recent call last):
  File "/home/carlos/anaconda3/envs/SmartAgent/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/home/carlos/anaconda3/envs/SmartAgent/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/carlos/Projects/SmartAgent/src/RagHander.py", line 2268, in <module>
    test_tool.craete_collection(collection_name=collection_name)
  File "/home/carlos/Projects/SmartAgent/src/RagHander.py", line 232, in craete_collection
    self.vector_database_client.collections.create(
  File "/home/carlos/anaconda3/envs/SmartAgent/lib/python3.10/site-packages/weaviate/collections/collections/executor.py", line 231, in create
    return self.__create(
  File "/home/carlos/anaconda3/envs/SmartAgent/lib/python3.10/site-packages/weaviate/collections/collections/executor.py", line 102, in __create
    result = self._connection.post(
  File "/home/carlos/anaconda3/envs/SmartAgent/lib/python3.10/site-packages/weaviate/connect/v4.py", line 822, in post
    return self._send(
  File "/home/carlos/anaconda3/envs/SmartAgent/lib/python3.10/site-packages/weaviate/connect/v4.py", line 716, in _send
    return executor.execute(
  File "/home/carlos/anaconda3/envs/SmartAgent/lib/python3.10/site-packages/weaviate/connect/executor.py", line 99, in execute
    return cast(T, exception_callback(e))
  File "/home/carlos/anaconda3/envs/SmartAgent/lib/python3.10/site-packages/weaviate/connect/v4.py", line 714, in exc
    self.__handle_exceptions(e, error_msg)
  File "/home/carlos/anaconda3/envs/SmartAgent/lib/python3.10/site-packages/weaviate/connect/v4.py", line 670, in __handle_exceptions
    raise e
  File "/home/carlos/anaconda3/envs/SmartAgent/lib/python3.10/site-packages/weaviate/connect/executor.py", line 95, in execute
    resp_call = response_callback(call)
  File "/home/carlos/anaconda3/envs/SmartAgent/lib/python3.10/site-packages/weaviate/connect/v4.py", line 711, in resp
    return self.__handle_response(res, error_msg, status_codes)
  File "/home/carlos/anaconda3/envs/SmartAgent/lib/python3.10/site-packages/weaviate/connect/v4.py", line 681, in __handle_response
    raise UnexpectedStatusCodeError(error_msg, response)
weaviate.exceptions.UnexpectedStatusCodeError: Collection may not have been created properly.! Unexpected status code: 422, with response body: {'error': [{'message': "module with name reranker-transformers doesn't exist"}]}.

[5] other info:
OS: Ubuntu 24.04.2
Python: 3.10.18

I am confused by the contradiction:

  1. I set ENABLE_API_BASED_MODULES to true and add reranker_transformers into the ENABLE_MODULES part. But why the module is not listed in /meta info?
  2. Are there other problems in my code which triggers the issue?

Has anyone faced this issue? Any help in understanding the cause and finding a solution would be greatly appreciated.

I guess the cause of my issue is “module with name reranker-transformers doesn’t exist”,. But, basically, all my settings are follow Reranker | Weaviate Documentation

So, why weaviate cannot enable the reranker_transformers module?

I’m a dumb ass. The answer is within reach and I’m blind to it.
The solution is: reranker_transformersreranker-transformers :grimacing:

1 Like