base.py — langchain Source File
Architecture documentation for base.py, a python file in the langchain codebase. 13 imports, 0 dependents.
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
Functions
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
Source
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