Home / File/ base.py — langchain Source File

base.py — langchain Source File

Architecture documentation for base.py, a python file in the langchain codebase. 48 imports, 0 dependents.

File python LangChainCore LanguageModelBase 48 imports 1 functions 1 classes

Entity Profile

Dependency Diagram

graph LR
  212bf0d5_b9c0_7381_8651_d188334ace30["base.py"]
  e27da29f_a1f7_49f3_84d5_6be4cb4125c8["logging"]
  212bf0d5_b9c0_7381_8651_d188334ace30 --> e27da29f_a1f7_49f3_84d5_6be4cb4125c8
  2bf6d401_816d_d011_3b05_a6114f55ff58["collections.abc"]
  212bf0d5_b9c0_7381_8651_d188334ace30 --> 2bf6d401_816d_d011_3b05_a6114f55ff58
  feec1ec4_6917_867b_d228_b134d0ff8099["typing"]
  212bf0d5_b9c0_7381_8651_d188334ace30 --> feec1ec4_6917_867b_d228_b134d0ff8099
  e61aa479_9dc0_09a0_8864_cbf23b8b506c["langchain_core.callbacks.manager"]
  212bf0d5_b9c0_7381_8651_d188334ace30 --> e61aa479_9dc0_09a0_8864_cbf23b8b506c
  6a98b0a5_5607_0043_2e22_a46a464c2d62["langchain_core.documents"]
  212bf0d5_b9c0_7381_8651_d188334ace30 --> 6a98b0a5_5607_0043_2e22_a46a464c2d62
  e929cf21_6ab8_6ff3_3765_0d35a099a053["langchain_core.language_models"]
  212bf0d5_b9c0_7381_8651_d188334ace30 --> e929cf21_6ab8_6ff3_3765_0d35a099a053
  2b1aa4a8_5352_1757_010a_46ac9ef4b0b0["langchain_core.retrievers"]
  212bf0d5_b9c0_7381_8651_d188334ace30 --> 2b1aa4a8_5352_1757_010a_46ac9ef4b0b0
  31eab4ab_7281_1e6c_b17d_12e6ad9de07a["langchain_core.runnables"]
  212bf0d5_b9c0_7381_8651_d188334ace30 --> 31eab4ab_7281_1e6c_b17d_12e6ad9de07a
  c39a1380_2ee7_581e_4839_31617170612b["langchain_core.structured_query"]
  212bf0d5_b9c0_7381_8651_d188334ace30 --> c39a1380_2ee7_581e_4839_31617170612b
  f75e66a0_314a_f961_16d7_464ee959064b["langchain_core.vectorstores"]
  212bf0d5_b9c0_7381_8651_d188334ace30 --> f75e66a0_314a_f961_16d7_464ee959064b
  dd5e7909_a646_84f1_497b_cae69735550e["pydantic"]
  212bf0d5_b9c0_7381_8651_d188334ace30 --> dd5e7909_a646_84f1_497b_cae69735550e
  f85fae70_1011_eaec_151c_4083140ae9e5["typing_extensions"]
  212bf0d5_b9c0_7381_8651_d188334ace30 --> f85fae70_1011_eaec_151c_4083140ae9e5
  f106d0c2_1861_6325_aa80_8d8c400b4a23["langchain_classic.chains.query_constructor.base"]
  212bf0d5_b9c0_7381_8651_d188334ace30 --> f106d0c2_1861_6325_aa80_8d8c400b4a23
  8a419fe5_7dd3_94c5_7aff_c587f82406dd["langchain_classic.chains.query_constructor.schema"]
  212bf0d5_b9c0_7381_8651_d188334ace30 --> 8a419fe5_7dd3_94c5_7aff_c587f82406dd
  style 212bf0d5_b9c0_7381_8651_d188334ace30 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"""Retriever that generates and executes structured queries over its own data source."""

import logging
from collections.abc import Sequence
from typing import Any

from langchain_core.callbacks.manager import (
    AsyncCallbackManagerForRetrieverRun,
    CallbackManagerForRetrieverRun,
)
from langchain_core.documents import Document
from langchain_core.language_models import BaseLanguageModel
from langchain_core.retrievers import BaseRetriever
from langchain_core.runnables import Runnable
from langchain_core.structured_query import StructuredQuery, Visitor
from langchain_core.vectorstores import VectorStore
from pydantic import ConfigDict, Field, model_validator
from typing_extensions import override

from langchain_classic.chains.query_constructor.base import (
    load_query_constructor_runnable,
)
from langchain_classic.chains.query_constructor.schema import AttributeInfo

logger = logging.getLogger(__name__)
QUERY_CONSTRUCTOR_RUN_NAME = "query_constructor"


def _get_builtin_translator(vectorstore: VectorStore) -> Visitor:
    """Get the translator class corresponding to the vector store class."""
    try:
        import langchain_community  # noqa: F401
    except ImportError as err:
        msg = (
            "The langchain-community package must be installed to use this feature."
            " Please install it using `pip install langchain-community`."
        )
        raise ImportError(msg) from err

    from langchain_community.query_constructors.astradb import AstraDBTranslator
    from langchain_community.query_constructors.chroma import ChromaTranslator
    from langchain_community.query_constructors.dashvector import DashvectorTranslator
    from langchain_community.query_constructors.databricks_vector_search import (
        DatabricksVectorSearchTranslator,
    )
    from langchain_community.query_constructors.deeplake import DeepLakeTranslator
    from langchain_community.query_constructors.dingo import DingoDBTranslator
    from langchain_community.query_constructors.elasticsearch import (
        ElasticsearchTranslator,
    )
    from langchain_community.query_constructors.milvus import MilvusTranslator
    from langchain_community.query_constructors.mongodb_atlas import (
        MongoDBAtlasTranslator,
    )
    from langchain_community.query_constructors.myscale import MyScaleTranslator
    from langchain_community.query_constructors.neo4j import Neo4jTranslator
    from langchain_community.query_constructors.opensearch import OpenSearchTranslator
    from langchain_community.query_constructors.pgvector import PGVectorTranslator
    from langchain_community.query_constructors.pinecone import PineconeTranslator
    from langchain_community.query_constructors.qdrant import QdrantTranslator
// ... (348 more lines)

Domain

Subdomains

Dependencies

  • collections.abc
  • langchain_astradb.vectorstores
  • langchain_chroma
  • langchain_classic.chains.query_constructor.base
  • langchain_classic.chains.query_constructor.schema
  • langchain_community
  • langchain_community.query_constructors.astradb
  • langchain_community.query_constructors.chroma
  • langchain_community.query_constructors.dashvector
  • langchain_community.query_constructors.databricks_vector_search
  • langchain_community.query_constructors.deeplake
  • langchain_community.query_constructors.dingo
  • langchain_community.query_constructors.elasticsearch
  • langchain_community.query_constructors.hanavector
  • langchain_community.query_constructors.milvus
  • langchain_community.query_constructors.mongodb_atlas
  • langchain_community.query_constructors.myscale
  • langchain_community.query_constructors.neo4j
  • langchain_community.query_constructors.opensearch
  • langchain_community.query_constructors.pgvector
  • langchain_community.query_constructors.pinecone
  • langchain_community.query_constructors.qdrant
  • langchain_community.query_constructors.redis
  • langchain_community.query_constructors.supabase
  • langchain_community.query_constructors.tencentvectordb
  • langchain_community.query_constructors.timescalevector
  • langchain_community.query_constructors.vectara
  • langchain_community.query_constructors.weaviate
  • langchain_community.vectorstores
  • langchain_core.callbacks.manager
  • langchain_core.documents
  • langchain_core.language_models
  • langchain_core.retrievers
  • langchain_core.runnables
  • langchain_core.structured_query
  • langchain_core.vectorstores
  • langchain_elasticsearch.vectorstores
  • langchain_milvus
  • langchain_mongodb
  • langchain_neo4j
  • langchain_pinecone
  • langchain_postgres
  • langchain_qdrant
  • langchain_weaviate.vectorstores
  • logging
  • pydantic
  • typing
  • typing_extensions

Frequently Asked Questions

What does base.py do?
base.py is a source file in the langchain codebase, written in python. It belongs to the LangChainCore domain, LanguageModelBase subdomain.
What functions are defined in base.py?
base.py defines 1 function(s): _get_builtin_translator.
What does base.py depend on?
base.py imports 48 module(s): collections.abc, langchain_astradb.vectorstores, langchain_chroma, langchain_classic.chains.query_constructor.base, langchain_classic.chains.query_constructor.schema, langchain_community, langchain_community.query_constructors.astradb, langchain_community.query_constructors.chroma, and 40 more.
Where is base.py in the architecture?
base.py is located at libs/langchain/langchain_classic/retrievers/self_query/base.py (domain: LangChainCore, subdomain: LanguageModelBase, directory: libs/langchain/langchain_classic/retrievers/self_query).

Analyze Your Own Codebase

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

Try Supermodel Free