Home / Function/ construct_instance() — langchain Function Reference

construct_instance() — langchain Function Reference

Architecture documentation for the construct_instance() function in qdrant.py from the langchain codebase.

Function python LangChainCore Runnables calls 2 called by 1

Entity Profile

Dependency Diagram

graph TD
  0eee8f8f_565a_e169_7071_de903da2cbd3["construct_instance()"]
  671b47a0_cdd3_a89d_e90f_0631a4bd67d3["QdrantVectorStore"]
  0eee8f8f_565a_e169_7071_de903da2cbd3 -->|defined in| 671b47a0_cdd3_a89d_e90f_0631a4bd67d3
  88421693_b7b6_8b4b_b6ab_bf2897b37dfe["from_texts()"]
  88421693_b7b6_8b4b_b6ab_bf2897b37dfe -->|calls| 0eee8f8f_565a_e169_7071_de903da2cbd3
  09bf631d_0a09_6ea2_a66a_e380f0889c5a["_validate_embeddings()"]
  0eee8f8f_565a_e169_7071_de903da2cbd3 -->|calls| 09bf631d_0a09_6ea2_a66a_e380f0889c5a
  f3995a8f_51a1_a376_2f6a_8d9f0f7797e6["_validate_collection_config()"]
  0eee8f8f_565a_e169_7071_de903da2cbd3 -->|calls| f3995a8f_51a1_a376_2f6a_8d9f0f7797e6
  style 0eee8f8f_565a_e169_7071_de903da2cbd3 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/partners/qdrant/langchain_qdrant/qdrant.py lines 891–997

    def construct_instance(
        cls: type[QdrantVectorStore],
        embedding: Embeddings | None = None,
        retrieval_mode: RetrievalMode = RetrievalMode.DENSE,
        sparse_embedding: SparseEmbeddings | None = None,
        client_options: dict[str, Any] | None = None,
        collection_name: str | None = None,
        distance: models.Distance = models.Distance.COSINE,
        content_payload_key: str = CONTENT_KEY,
        metadata_payload_key: str = METADATA_KEY,
        vector_name: str = VECTOR_NAME,
        sparse_vector_name: str = SPARSE_VECTOR_NAME,
        force_recreate: bool = False,  # noqa: FBT001, FBT002
        collection_create_options: dict[str, Any] | None = None,
        vector_params: dict[str, Any] | None = None,
        sparse_vector_params: dict[str, Any] | None = None,
        validate_embeddings: bool = True,  # noqa: FBT001, FBT002
        validate_collection_config: bool = True,  # noqa: FBT001, FBT002
    ) -> QdrantVectorStore:
        if sparse_vector_params is None:
            sparse_vector_params = {}
        if vector_params is None:
            vector_params = {}
        if collection_create_options is None:
            collection_create_options = {}
        if client_options is None:
            client_options = {}
        if validate_embeddings:
            cls._validate_embeddings(retrieval_mode, embedding, sparse_embedding)
        collection_name = collection_name or uuid.uuid4().hex
        client = QdrantClient(**client_options)

        collection_exists = client.collection_exists(collection_name)

        if collection_exists and force_recreate:
            client.delete_collection(collection_name)
            collection_exists = False
        if collection_exists:
            if validate_collection_config:
                cls._validate_collection_config(
                    client,
                    collection_name,
                    retrieval_mode,
                    vector_name,
                    sparse_vector_name,
                    distance,
                    embedding,
                )
        else:
            vectors_config, sparse_vectors_config = {}, {}
            if retrieval_mode == RetrievalMode.DENSE:
                partial_embeddings = embedding.embed_documents(["dummy_text"])  # type: ignore[union-attr]

                vector_params["size"] = len(partial_embeddings[0])
                vector_params["distance"] = distance

                vectors_config = {
                    vector_name: models.VectorParams(
                        **vector_params,
                    )
                }

            elif retrieval_mode == RetrievalMode.SPARSE:
                sparse_vectors_config = {
                    sparse_vector_name: models.SparseVectorParams(
                        **sparse_vector_params
                    )
                }

            elif retrieval_mode == RetrievalMode.HYBRID:
                partial_embeddings = embedding.embed_documents(["dummy_text"])  # type: ignore[union-attr]

                vector_params["size"] = len(partial_embeddings[0])
                vector_params["distance"] = distance

                vectors_config = {
                    vector_name: models.VectorParams(
                        **vector_params,
                    )
                }

Domain

Subdomains

Called By

Frequently Asked Questions

What does construct_instance() do?
construct_instance() is a function in the langchain codebase, defined in libs/partners/qdrant/langchain_qdrant/qdrant.py.
Where is construct_instance() defined?
construct_instance() is defined in libs/partners/qdrant/langchain_qdrant/qdrant.py at line 891.
What does construct_instance() call?
construct_instance() calls 2 function(s): _validate_collection_config, _validate_embeddings.
What calls construct_instance()?
construct_instance() is called by 1 function(s): from_texts.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free