base.py — langchain Source File
Architecture documentation for base.py, a python file in the langchain codebase. 20 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 8d2afa68_e16d_c06a_fbe2_08321c12e529["base.py"] c990f2d7_9509_7cea_ca95_51ad57dbe5c6["functools"] 8d2afa68_e16d_c06a_fbe2_08321c12e529 --> c990f2d7_9509_7cea_ca95_51ad57dbe5c6 2a7f66a7_8738_3d47_375b_70fcaa6ac169["logging"] 8d2afa68_e16d_c06a_fbe2_08321c12e529 --> 2a7f66a7_8738_3d47_375b_70fcaa6ac169 b188e880_71c6_b93e_127d_c22666293d37["enum"] 8d2afa68_e16d_c06a_fbe2_08321c12e529 --> b188e880_71c6_b93e_127d_c22666293d37 3888b2bf_bffe_7c16_770f_a406d400119c["importlib"] 8d2afa68_e16d_c06a_fbe2_08321c12e529 --> 3888b2bf_bffe_7c16_770f_a406d400119c 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3["typing"] 8d2afa68_e16d_c06a_fbe2_08321c12e529 --> 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3 f3bc7443_c889_119d_0744_aacc3620d8d2["langchain_core.callbacks"] 8d2afa68_e16d_c06a_fbe2_08321c12e529 --> f3bc7443_c889_119d_0744_aacc3620d8d2 e8ec017e_6c91_4b34_675f_2a96c5aa9be6["langchain_core.callbacks.manager"] 8d2afa68_e16d_c06a_fbe2_08321c12e529 --> e8ec017e_6c91_4b34_675f_2a96c5aa9be6 bc46b61d_cfdf_3f6b_a9dd_ac2a328d84b3["langchain_core.embeddings"] 8d2afa68_e16d_c06a_fbe2_08321c12e529 --> bc46b61d_cfdf_3f6b_a9dd_ac2a328d84b3 f4d905c6_a2b2_eb8f_be9b_7808b72f6a16["langchain_core.utils"] 8d2afa68_e16d_c06a_fbe2_08321c12e529 --> f4d905c6_a2b2_eb8f_be9b_7808b72f6a16 6e58aaea_f08e_c099_3cc7_f9567bfb1ae7["pydantic"] 8d2afa68_e16d_c06a_fbe2_08321c12e529 --> 6e58aaea_f08e_c099_3cc7_f9567bfb1ae7 91721f45_4909_e489_8c1f_084f8bd87145["typing_extensions"] 8d2afa68_e16d_c06a_fbe2_08321c12e529 --> 91721f45_4909_e489_8c1f_084f8bd87145 01158a5b_b299_f45d_92e9_2a7433a1a91a["langchain_classic.chains.base"] 8d2afa68_e16d_c06a_fbe2_08321c12e529 --> 01158a5b_b299_f45d_92e9_2a7433a1a91a 538b302b_528d_b6e6_cf56_04147780d18b["langchain_classic.evaluation.schema"] 8d2afa68_e16d_c06a_fbe2_08321c12e529 --> 538b302b_528d_b6e6_cf56_04147780d18b 52a02ed3_b44b_45aa_e71c_064994c739be["langchain_classic.schema"] 8d2afa68_e16d_c06a_fbe2_08321c12e529 --> 52a02ed3_b44b_45aa_e71c_064994c739be style 8d2afa68_e16d_c06a_fbe2_08321c12e529 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
"""A chain for comparing the output of two models using embeddings."""
import functools
import logging
from enum import Enum
from importlib import util
from typing import Any
from langchain_core.callbacks import Callbacks
from langchain_core.callbacks.manager import (
AsyncCallbackManagerForChainRun,
CallbackManagerForChainRun,
)
from langchain_core.embeddings import Embeddings
from langchain_core.utils import pre_init
from pydantic import ConfigDict, Field
from typing_extensions import override
from langchain_classic.chains.base import Chain
from langchain_classic.evaluation.schema import PairwiseStringEvaluator, StringEvaluator
from langchain_classic.schema import RUN_KEY
def _import_numpy() -> Any:
try:
import numpy as np
except ImportError as e:
msg = "Could not import numpy, please install with `pip install numpy`."
raise ImportError(msg) from e
return np
logger = logging.getLogger(__name__)
@functools.lru_cache(maxsize=1)
def _check_numpy() -> bool:
if bool(util.find_spec("numpy")):
return True
logger.warning(
"NumPy not found in the current Python environment. "
"langchain will use a pure Python implementation for embedding distance "
"operations, which may significantly impact performance, especially for large "
"datasets. For optimal speed and efficiency, consider installing NumPy: "
"pip install numpy",
)
return False
def _embedding_factory() -> Embeddings:
"""Create an `Embeddings` object.
Returns:
The created `Embeddings` object.
"""
# Here for backwards compatibility.
# Generally, we do not want to be seeing imports from langchain community
# or partner packages in langchain.
try:
from langchain_openai import OpenAIEmbeddings
// ... (598 more lines)
Domain
Subdomains
Classes
Dependencies
- enum
- functools
- importlib
- langchain_classic.chains.base
- langchain_classic.evaluation.schema
- langchain_classic.schema
- langchain_community.embeddings.openai
- langchain_core.callbacks
- langchain_core.callbacks.manager
- langchain_core.embeddings
- langchain_core.utils
- langchain_core.vectorstores.utils
- langchain_openai
- logging
- numpy
- pydantic
- scipy.spatial.distance
- tiktoken
- typing
- typing_extensions
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 CoreAbstractions domain, Serialization subdomain.
What functions are defined in base.py?
base.py defines 3 function(s): _check_numpy, _embedding_factory, _import_numpy.
What does base.py depend on?
base.py imports 20 module(s): enum, functools, importlib, langchain_classic.chains.base, langchain_classic.evaluation.schema, langchain_classic.schema, langchain_community.embeddings.openai, langchain_core.callbacks, and 12 more.
Where is base.py in the architecture?
base.py is located at libs/langchain/langchain_classic/evaluation/embedding_distance/base.py (domain: CoreAbstractions, subdomain: Serialization, directory: libs/langchain/langchain_classic/evaluation/embedding_distance).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free