Home / File/ langchain.py — langchain Source File

langchain.py — langchain Source File

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

File python CoreAbstractions RunnableInterface 16 imports 6 functions 1 classes

Entity Profile

Dependency Diagram

graph LR
  fc379c05_5e7a_829b_6d3a_08c3919b3f80["langchain.py"]
  2a7f66a7_8738_3d47_375b_70fcaa6ac169["logging"]
  fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 2a7f66a7_8738_3d47_375b_70fcaa6ac169
  082415a8_067b_221f_7984_07d87009267d["concurrent.futures"]
  fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 082415a8_067b_221f_7984_07d87009267d
  af34f08b_0ede_2b87_0db6_983d74ed0249["datetime"]
  fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> af34f08b_0ede_2b87_0db6_983d74ed0249
  8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3["typing"]
  fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3
  8dfa0cac_d802_3ccd_f710_43a5e70da3a5["uuid"]
  fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 8dfa0cac_d802_3ccd_f710_43a5e70da3a5
  023156c8_e306_6129_d953_9f1dac71e6fd["langsmith"]
  fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 023156c8_e306_6129_d953_9f1dac71e6fd
  30db3e5b_4549_fdf8_eed3_1cfd8cacbe56["tenacity"]
  fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 30db3e5b_4549_fdf8_eed3_1cfd8cacbe56
  91721f45_4909_e489_8c1f_084f8bd87145["typing_extensions"]
  fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 91721f45_4909_e489_8c1f_084f8bd87145
  b0e25a43_5731_df3c_a118_b365c3f106a5["langchain_core.env"]
  fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> b0e25a43_5731_df3c_a118_b365c3f106a5
  36cce5da_d805_04c3_7e86_e1b4dd49b497["langchain_core.load"]
  fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 36cce5da_d805_04c3_7e86_e1b4dd49b497
  4eb42b7a_5c64_04cb_fcec_1401d5c10628["langchain_core.messages.ai"]
  fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 4eb42b7a_5c64_04cb_fcec_1401d5c10628
  707209ca_c3d6_f9c6_7ec7_2b2df92c9aa3["langchain_core.tracers._compat"]
  fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 707209ca_c3d6_f9c6_7ec7_2b2df92c9aa3
  59d7001f_fb28_1819_31fc_7fb0380a8b32["langchain_core.tracers.base"]
  fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 59d7001f_fb28_1819_31fc_7fb0380a8b32
  17e2fb09_6b0f_338f_1319_77bc43602969["langchain_core.tracers.schemas"]
  fc379c05_5e7a_829b_6d3a_08c3919b3f80 --> 17e2fb09_6b0f_338f_1319_77bc43602969
  style fc379c05_5e7a_829b_6d3a_08c3919b3f80 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"""A tracer implementation that records to LangChain endpoint."""

from __future__ import annotations

import logging
from concurrent.futures import ThreadPoolExecutor
from datetime import datetime, timezone
from typing import TYPE_CHECKING, Any
from uuid import UUID

from langsmith import Client, get_tracing_context
from langsmith import run_trees as rt
from langsmith import utils as ls_utils
from tenacity import (
    Retrying,
    retry_if_exception_type,
    stop_after_attempt,
    wait_exponential_jitter,
)
from typing_extensions import override

from langchain_core.env import get_runtime_environment
from langchain_core.load import dumpd
from langchain_core.messages.ai import UsageMetadata, add_usage
from langchain_core.tracers._compat import run_construct, run_to_dict
from langchain_core.tracers.base import BaseTracer
from langchain_core.tracers.schemas import Run

if TYPE_CHECKING:
    from langchain_core.messages import BaseMessage
    from langchain_core.outputs import ChatGenerationChunk, GenerationChunk

logger = logging.getLogger(__name__)
_LOGGED = set()
_EXECUTOR: ThreadPoolExecutor | None = None


def log_error_once(method: str, exception: Exception) -> None:
    """Log an error once.

    Args:
        method: The method that raised the exception.
        exception: The exception that was raised.
    """
    if (method, type(exception)) in _LOGGED:
        return
    _LOGGED.add((method, type(exception)))
    logger.error(exception)


def wait_for_all_tracers() -> None:
    """Wait for all tracers to finish."""
    if rt._CLIENT is not None:  # noqa: SLF001
        rt._CLIENT.flush()  # noqa: SLF001


def get_client() -> Client:
    """Get the client.

    Returns:
// ... (318 more lines)

Subdomains

Classes

Dependencies

  • concurrent.futures
  • datetime
  • langchain_core.env
  • langchain_core.load
  • langchain_core.messages
  • langchain_core.messages.ai
  • langchain_core.outputs
  • langchain_core.tracers._compat
  • langchain_core.tracers.base
  • langchain_core.tracers.schemas
  • langsmith
  • logging
  • tenacity
  • typing
  • typing_extensions
  • uuid

Frequently Asked Questions

What does langchain.py do?
langchain.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, RunnableInterface subdomain.
What functions are defined in langchain.py?
langchain.py defines 6 function(s): _get_executor, _get_usage_metadata_from_generations, get_client, langchain_core, log_error_once, wait_for_all_tracers.
What does langchain.py depend on?
langchain.py imports 16 module(s): concurrent.futures, datetime, langchain_core.env, langchain_core.load, langchain_core.messages, langchain_core.messages.ai, langchain_core.outputs, langchain_core.tracers._compat, and 8 more.
Where is langchain.py in the architecture?
langchain.py is located at libs/core/langchain_core/tracers/langchain.py (domain: CoreAbstractions, subdomain: RunnableInterface, directory: libs/core/langchain_core/tracers).

Analyze Your Own Codebase

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

Try Supermodel Free