Collection configuration messages
Messages on this page are deprecation warnings from the Weaviate Python client. Nothing has failed: the collection was created or updated as you asked. The way the request described its vectors is on its way out, so the fix is always a rewrite of the configuration, never a change to your data. If your message is not here, the message index lists the other groups.
Deprecated vector configuration arguments
Section titled “Deprecated vector configuration arguments”| Ids | py-dep017, py-dep023, py-dep024, py-dep025 |
| Raised by | Python client |
| Severity | deprecation |
| Impact | The collection was created or updated, but the vectorizer_config and vector_index_config arguments will stop working. |
| Fix | Describe the model and the index inside one vector_config definition. |
What you see
Section titled “What you see”One or more of these warnings when you create or update a collection:
Dep024: You are using the `vectorizer_config` argument in `collection.config.create()`, which is deprecated.
Use the `vector_config` argument instead.
Dep025: You are using the `vector_index_config` argument in `collection.config.create()`, which is deprecated.
Use the `vector_config` argument instead defining `vector_index_config` as a sub-argument.
Dep017: You are using the `vector_index_config` argument in the `collection.config.update()` method, which is deprecated.
Use the `vector_config` argument instead.
Dep023: You are using the `vectorizer_config` argument in the `collection.config.update()` method with a collection with named vectors, which is deprecated.
Use the `vector_config` argument instead.Why it happens
Section titled “Why it happens”A collection used to describe its embeddings as two independent settings: the model that produces the vector, and the index that stores it. That shape cannot express a collection with several differently configured vectors, which Weaviate supports. Both settings now live inside a single vector definition, and a collection holds one or more of them, each with a name. The old arguments still work, and a collection created with them keeps the older single-vector shape.
How to fix it
Section titled “How to fix it”Move the model and the index settings into one vector definition when you create the collection:
from weaviate.classes.config import Configure
client.collections.create(
"Article",
vector_config=Configure.Vectors.text2vec_weaviate(
vector_index_config=Configure.VectorIndex.hnsw(),
),
)from weaviate.classes.config import Configure
client.collections.create(
"Article",
vectorizer_config=Configure.Vectorizer.text2vec_weaviate(),
vector_index_config=Configure.VectorIndex.hnsw(),
)Updates name the vector they change. A collection created with the current argument, and no explicit vector name, has a single vector called default:
from weaviate.classes.config import Reconfigure
client.collections.get("Article").config.update(
vector_config=Reconfigure.Vectors.update(
name="default",
vector_index_config=Reconfigure.VectorIndex.hnsw(ef=128),
),
)from weaviate.classes.config import Reconfigure
client.collections.get("Article").config.update(
vector_index_config=Reconfigure.VectorIndex.hnsw(ef=128),
)Rewriting a collection definition does not re-embed anything and does not touch stored vectors.
Learn more
Section titled “Learn more”Configure vectors for a collection
Collection configuration reference
Python client: vectorizer API changes
Deprecated named vector syntax
Section titled “Deprecated named vector syntax”| Ids | py-dep026 |
| Raised by | Python client |
| Severity | deprecation |
| Impact | The vector was added, but the Configure.NamedVectors builders are aliases on their way out. |
| Fix | Use Configure.Vectors, or Configure.MultiVectors for a multi-vector embedding. The arguments are unchanged. |
What you see
Section titled “What you see”A warning when you add a vector to an existing collection, quoted exactly as the client prints it, stray backtick included. The vector name in it is your own:
Dep026: You are using the named vector syntax for vector title_vector, e.g. `Configure.NamedVectors` in `collection.config.add_vector()`, which is deprecated.
Use `Configure.Vectors` or `Configure.MultiVectors` instead.`Why it happens
Section titled “Why it happens”When named vectors were introduced they had their own set of builders, kept apart from the single-vector ones. Every vector is now a named vector, so the two sets were merged into one, split instead by whether the vector is a single vector or a multi-vector.
How to fix it
Section titled “How to fix it”from weaviate.classes.config import Configure
collection = client.collections.get("Article")
collection.config.add_vector(
vector_config=Configure.Vectors.text2vec_weaviate(
name="title_vector",
source_properties=["title"],
),
)from weaviate.classes.config import Configure
collection = client.collections.get("Article")
collection.config.add_vector(
vector_config=Configure.NamedVectors.text2vec_weaviate(
name="title_vector",
source_properties=["title"],
),
)For a multi-vector embedding, such as ColBERT or ColPali, use the multi-vector builders instead. If your warning names the encoding argument rather than the named vector syntax, it is the other message that ships under this same id: see deprecated multi-vector index settings.
Learn more
Section titled “Learn more”Deprecated multi-vector index settings
Section titled “Deprecated multi-vector index settings”| Ids | py-dep026, py-dep027 |
| Raised by | Python client |
| Severity | deprecation |
| Impact | The collection was created, but multi-vector settings placed on the index will stop being accepted there. |
| Fix | Move multi_vector and encoding off the index configuration and onto the vector definition. |
What you see
Section titled “What you see”One or both of these warnings when you create a collection with a multi-vector embedding. You get both at once if you set an encoding inside the index configuration, because that nests one deprecated argument inside the other:
Dep027: You are using the `multi_vector` argument in `Configure.VectorIndex.hnsw()`, which is deprecated.
Use the `multi_vector` argument inside `Configure.MultiVectors.module()` instead.
Dep026: You are using the `encoding` argument in `Configure.VectorIndex.MultiVectors.multi_vector()`, which is deprecated.
Use the `encoding` argument inside `Configure.MultiVectors.module()` instead.Why it happens
Section titled “Why it happens”Whether a vector is a multi-vector is a property of the vector, not of the index that stores it, and the multi-vector builder you chose already implies it. Declaring it a second time on the index left two places that could disagree, so the setting moved onto the vector definition.
How to fix it
Section titled “How to fix it”Move the setting onto the vector definition. The self_provided builder below stands for whichever multi-vector builder you use:
from weaviate.classes.config import Configure
client.collections.create(
"Document",
vector_config=Configure.MultiVectors.self_provided(
name="page_vector",
multi_vector_config=Configure.VectorIndex.MultiVector.multi_vector(),
vector_index_config=Configure.VectorIndex.hnsw(),
),
)from weaviate.classes.config import Configure
client.collections.create(
"Document",
vector_config=Configure.MultiVectors.self_provided(
name="page_vector",
vector_index_config=Configure.VectorIndex.hnsw(
multi_vector=Configure.VectorIndex.MultiVector.multi_vector(),
),
),
)An encoding such as MUVERA moves the same way, onto the vector definition:
from weaviate.classes.config import Configure
client.collections.create(
"Document",
vector_config=Configure.MultiVectors.self_provided(
name="page_vector",
encoding=Configure.VectorIndex.MultiVector.Encoding.muvera(),
vector_index_config=Configure.VectorIndex.hnsw(),
),
)Learn more
Section titled “Learn more”Questions and feedback
Section titled “Questions and feedback”Have a question or feedback? Here's how to reach us.