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:
- I set
ENABLE_API_BASED_MODULES
totrue
and addreranker_transformers
into theENABLE_MODULES
part. But why the module is not listed in/meta
info? - 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.