_validate_collection_for_dense() — langchain Function Reference
Architecture documentation for the _validate_collection_for_dense() function in qdrant.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD ee735a53_d6e2_76d0_6fad_19bdebf2f0f2["_validate_collection_for_dense()"] 671b47a0_cdd3_a89d_e90f_0631a4bd67d3["QdrantVectorStore"] ee735a53_d6e2_76d0_6fad_19bdebf2f0f2 -->|defined in| 671b47a0_cdd3_a89d_e90f_0631a4bd67d3 3b9e0613_eecd_e688_0717_98be6124f6d3["similarity_search_with_score_by_vector()"] 3b9e0613_eecd_e688_0717_98be6124f6d3 -->|calls| ee735a53_d6e2_76d0_6fad_19bdebf2f0f2 6c0af82c_cb1f_821f_efa9_a3c7b1a87425["max_marginal_relevance_search()"] 6c0af82c_cb1f_821f_efa9_a3c7b1a87425 -->|calls| ee735a53_d6e2_76d0_6fad_19bdebf2f0f2 f3995a8f_51a1_a376_2f6a_8d9f0f7797e6["_validate_collection_config()"] f3995a8f_51a1_a376_2f6a_8d9f0f7797e6 -->|calls| ee735a53_d6e2_76d0_6fad_19bdebf2f0f2 style ee735a53_d6e2_76d0_6fad_19bdebf2f0f2 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/partners/qdrant/langchain_qdrant/qdrant.py lines 1179–1249
def _validate_collection_for_dense(
cls: type[QdrantVectorStore],
client: QdrantClient,
collection_name: str,
vector_name: str,
distance: models.Distance,
dense_embeddings: Embeddings | list[float] | None,
) -> None:
collection_info = client.get_collection(collection_name=collection_name)
vector_config = collection_info.config.params.vectors
if isinstance(vector_config, dict):
# vector_config is a Dict[str, VectorParams]
if vector_name not in vector_config:
msg = (
f"Existing Qdrant collection {collection_name} does not "
f"contain dense vector named {vector_name}. "
"Did you mean one of the "
f"existing vectors: {', '.join(vector_config.keys())}? " # type: ignore[union-attr]
f"If you want to recreate the collection, set `force_recreate` "
f"parameter to `True`."
)
raise QdrantVectorStoreError(msg)
# Get the VectorParams object for the specified vector_name
vector_config = vector_config[vector_name] # type: ignore[assignment, index]
# vector_config is an instance of VectorParams
# Case of a collection with single/unnamed vector.
elif vector_name != "":
msg = (
f"Existing Qdrant collection {collection_name} is built "
"with unnamed dense vector. "
f"If you want to reuse it, set `vector_name` to ''(empty string)."
f"If you want to recreate the collection, "
"set `force_recreate` to `True`."
)
raise QdrantVectorStoreError(msg)
if vector_config is None:
msg = "VectorParams is None"
raise ValueError(msg)
if isinstance(dense_embeddings, Embeddings):
vector_size = len(dense_embeddings.embed_documents(["dummy_text"])[0])
elif isinstance(dense_embeddings, list):
vector_size = len(dense_embeddings)
else:
msg = "Invalid `embeddings` type."
raise TypeError(msg)
if vector_config.size != vector_size:
msg = (
f"Existing Qdrant collection is configured for dense vectors with "
f"{vector_config.size} dimensions. "
f"Selected embeddings are {vector_size}-dimensional. "
f"If you want to recreate the collection, set `force_recreate` "
f"parameter to `True`."
)
raise QdrantVectorStoreError(msg)
if vector_config.distance != distance:
msg = (
f"Existing Qdrant collection is configured for "
f"{vector_config.distance.name} similarity, but requested "
f"{distance.upper()}. Please set `distance` parameter to "
f"`{vector_config.distance.name}` if you want to reuse it. "
f"If you want to recreate the collection, set `force_recreate` "
f"parameter to `True`."
)
raise QdrantVectorStoreError(msg)
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does _validate_collection_for_dense() do?
_validate_collection_for_dense() is a function in the langchain codebase, defined in libs/partners/qdrant/langchain_qdrant/qdrant.py.
Where is _validate_collection_for_dense() defined?
_validate_collection_for_dense() is defined in libs/partners/qdrant/langchain_qdrant/qdrant.py at line 1179.
What calls _validate_collection_for_dense()?
_validate_collection_for_dense() is called by 3 function(s): _validate_collection_config, max_marginal_relevance_search, similarity_search_with_score_by_vector.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free