Home / File/ base.py — langchain Source File

base.py — langchain Source File

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

File python LangChainCore LanguageModelBase 13 imports 5 functions

Entity Profile

Dependency Diagram

graph LR
  76380b72_77fe_25f0_4fc9_0d116ee2433c["base.py"]
  f46e1812_79f8_1bd0_7815_2ba4471dc470["functools"]
  76380b72_77fe_25f0_4fc9_0d116ee2433c --> f46e1812_79f8_1bd0_7815_2ba4471dc470
  3b5ab66f_4fcb_ca7c_bc35_2244b5f521fc["importlib"]
  76380b72_77fe_25f0_4fc9_0d116ee2433c --> 3b5ab66f_4fcb_ca7c_bc35_2244b5f521fc
  feec1ec4_6917_867b_d228_b134d0ff8099["typing"]
  76380b72_77fe_25f0_4fc9_0d116ee2433c --> feec1ec4_6917_867b_d228_b134d0ff8099
  918b8514_ba55_6df2_7254_4598ec160e33["langchain_core.embeddings"]
  76380b72_77fe_25f0_4fc9_0d116ee2433c --> 918b8514_ba55_6df2_7254_4598ec160e33
  31eab4ab_7281_1e6c_b17d_12e6ad9de07a["langchain_core.runnables"]
  76380b72_77fe_25f0_4fc9_0d116ee2433c --> 31eab4ab_7281_1e6c_b17d_12e6ad9de07a
  2cad93e6_586a_5d28_a74d_4ec6fd4d2227["langchain_openai"]
  76380b72_77fe_25f0_4fc9_0d116ee2433c --> 2cad93e6_586a_5d28_a74d_4ec6fd4d2227
  e046000a_66e4_e165_8a10_b3478e710048["langchain_google_genai"]
  76380b72_77fe_25f0_4fc9_0d116ee2433c --> e046000a_66e4_e165_8a10_b3478e710048
  780f3020_af13_73f5_a165_04bc814c6ae5["langchain_google_vertexai"]
  76380b72_77fe_25f0_4fc9_0d116ee2433c --> 780f3020_af13_73f5_a165_04bc814c6ae5
  15b1822c_be9b_bdc5_9217_59a464939d25["langchain_aws"]
  76380b72_77fe_25f0_4fc9_0d116ee2433c --> 15b1822c_be9b_bdc5_9217_59a464939d25
  337836ca_0d3d_8a83_110e_52cf886441d7["langchain_cohere"]
  76380b72_77fe_25f0_4fc9_0d116ee2433c --> 337836ca_0d3d_8a83_110e_52cf886441d7
  5a3f5e3e_c8c9_4e1d_332d_f602aafa2d27["langchain_mistralai"]
  76380b72_77fe_25f0_4fc9_0d116ee2433c --> 5a3f5e3e_c8c9_4e1d_332d_f602aafa2d27
  15101b31_601b_416b_11c8_2c6abc032083["langchain_huggingface"]
  76380b72_77fe_25f0_4fc9_0d116ee2433c --> 15101b31_601b_416b_11c8_2c6abc032083
  ae89c849_b75a_1118_1aff_d8d9cd2a1b3e["langchain_ollama"]
  76380b72_77fe_25f0_4fc9_0d116ee2433c --> ae89c849_b75a_1118_1aff_d8d9cd2a1b3e
  style 76380b72_77fe_25f0_4fc9_0d116ee2433c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import functools
from importlib import util
from typing import Any

from langchain_core.embeddings import Embeddings
from langchain_core.runnables import Runnable

_SUPPORTED_PROVIDERS = {
    "azure_openai": "langchain_openai",
    "bedrock": "langchain_aws",
    "cohere": "langchain_cohere",
    "google_genai": "langchain_google_genai",
    "google_vertexai": "langchain_google_vertexai",
    "huggingface": "langchain_huggingface",
    "mistralai": "langchain_mistralai",
    "ollama": "langchain_ollama",
    "openai": "langchain_openai",
}


def _get_provider_list() -> str:
    """Get formatted list of providers and their packages."""
    return "\n".join(
        f"  - {p}: {pkg.replace('_', '-')}" for p, pkg in _SUPPORTED_PROVIDERS.items()
    )


def _parse_model_string(model_name: str) -> tuple[str, str]:
    """Parse a model string into provider and model name components.

    The model string should be in the format 'provider:model-name', where provider
    is one of the supported providers.

    Args:
        model_name: A model string in the format 'provider:model-name'

    Returns:
        A tuple of (provider, model_name)

    ```python
    _parse_model_string("openai:text-embedding-3-small")
    # Returns: ("openai", "text-embedding-3-small")

    _parse_model_string("bedrock:amazon.titan-embed-text-v1")
    # Returns: ("bedrock", "amazon.titan-embed-text-v1")
    ```

    Raises:
        ValueError: If the model string is not in the correct format or
            the provider is unsupported

    """
    if ":" not in model_name:
        providers = _SUPPORTED_PROVIDERS
        msg = (
            f"Invalid model format '{model_name}'.\n"
            f"Model name must be in format 'provider:model-name'\n"
            f"Example valid model strings:\n"
            f"  - openai:text-embedding-3-small\n"
            f"  - bedrock:amazon.titan-embed-text-v1\n"
// ... (192 more lines)

Domain

Subdomains

Dependencies

  • functools
  • importlib
  • langchain_aws
  • langchain_cohere
  • langchain_core.embeddings
  • langchain_core.runnables
  • langchain_google_genai
  • langchain_google_vertexai
  • langchain_huggingface
  • langchain_mistralai
  • langchain_ollama
  • langchain_openai
  • typing

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 5 function(s): _check_pkg, _get_provider_list, _infer_model_and_provider, _parse_model_string, init_embeddings.
What does base.py depend on?
base.py imports 13 module(s): functools, importlib, langchain_aws, langchain_cohere, langchain_core.embeddings, langchain_core.runnables, langchain_google_genai, langchain_google_vertexai, and 5 more.
Where is base.py in the architecture?
base.py is located at libs/langchain/langchain_classic/embeddings/base.py (domain: LangChainCore, subdomain: LanguageModelBase, directory: libs/langchain/langchain_classic/embeddings).

Analyze Your Own Codebase

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

Try Supermodel Free