Home / File/ base.py — langchain Source File

base.py — langchain Source File

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

File python CoreAbstractions Serialization 15 imports 1 functions 2 classes

Entity Profile

Dependency Diagram

graph LR
  40d5fc12_7edf_9881_367a_e932f4aabe85["base.py"]
  a327e534_84f6_5308_58ca_5727d5eda0cf["asyncio"]
  40d5fc12_7edf_9881_367a_e932f4aabe85 --> a327e534_84f6_5308_58ca_5727d5eda0cf
  2a7f66a7_8738_3d47_375b_70fcaa6ac169["logging"]
  40d5fc12_7edf_9881_367a_e932f4aabe85 --> 2a7f66a7_8738_3d47_375b_70fcaa6ac169
  cccbe73e_4644_7211_4d55_e8fb133a8014["abc"]
  40d5fc12_7edf_9881_367a_e932f4aabe85 --> cccbe73e_4644_7211_4d55_e8fb133a8014
  8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3["typing"]
  40d5fc12_7edf_9881_367a_e932f4aabe85 --> 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3
  91721f45_4909_e489_8c1f_084f8bd87145["typing_extensions"]
  40d5fc12_7edf_9881_367a_e932f4aabe85 --> 91721f45_4909_e489_8c1f_084f8bd87145
  7e64d143_ea36_1c73_4897_1d0ae1757b5b["langchain_core.callbacks.base"]
  40d5fc12_7edf_9881_367a_e932f4aabe85 --> 7e64d143_ea36_1c73_4897_1d0ae1757b5b
  75137834_4ba7_dc43_7ec5_182c05eceedf["langchain_core.exceptions"]
  40d5fc12_7edf_9881_367a_e932f4aabe85 --> 75137834_4ba7_dc43_7ec5_182c05eceedf
  3f5d18d2_1a69_3c79_f735_ae6e90c95a79["langchain_core.tracers.core"]
  40d5fc12_7edf_9881_367a_e932f4aabe85 --> 3f5d18d2_1a69_3c79_f735_ae6e90c95a79
  cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7["collections.abc"]
  40d5fc12_7edf_9881_367a_e932f4aabe85 --> cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7
  8dfa0cac_d802_3ccd_f710_43a5e70da3a5["uuid"]
  40d5fc12_7edf_9881_367a_e932f4aabe85 --> 8dfa0cac_d802_3ccd_f710_43a5e70da3a5
  30db3e5b_4549_fdf8_eed3_1cfd8cacbe56["tenacity"]
  40d5fc12_7edf_9881_367a_e932f4aabe85 --> 30db3e5b_4549_fdf8_eed3_1cfd8cacbe56
  c554676d_b731_47b2_a98f_c1c2d537c0aa["langchain_core.documents"]
  40d5fc12_7edf_9881_367a_e932f4aabe85 --> c554676d_b731_47b2_a98f_c1c2d537c0aa
  d758344f_537f_649e_f467_b9d7442e86df["langchain_core.messages"]
  40d5fc12_7edf_9881_367a_e932f4aabe85 --> d758344f_537f_649e_f467_b9d7442e86df
  ac2a9b92_4484_491e_1b48_ec85e71e1d58["langchain_core.outputs"]
  40d5fc12_7edf_9881_367a_e932f4aabe85 --> ac2a9b92_4484_491e_1b48_ec85e71e1d58
  style 40d5fc12_7edf_9881_367a_e932f4aabe85 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"""Base interfaces for tracing runs."""

from __future__ import annotations

import asyncio
import logging
from abc import ABC, abstractmethod
from typing import (
    TYPE_CHECKING,
    Any,
)

from typing_extensions import override

from langchain_core.callbacks.base import AsyncCallbackHandler, BaseCallbackHandler
from langchain_core.exceptions import TracerException  # noqa: F401
from langchain_core.tracers.core import _TracerCore

if TYPE_CHECKING:
    from collections.abc import Sequence
    from uuid import UUID

    from tenacity import RetryCallState

    from langchain_core.documents import Document
    from langchain_core.messages import BaseMessage
    from langchain_core.outputs import ChatGenerationChunk, GenerationChunk, LLMResult
    from langchain_core.tracers.schemas import Run

logger = logging.getLogger(__name__)


class BaseTracer(_TracerCore, BaseCallbackHandler, ABC):
    """Base interface for tracers."""

    @abstractmethod
    def _persist_run(self, run: Run) -> None:
        """Persist a run."""

    def _start_trace(self, run: Run) -> None:
        """Start a trace for a run."""
        super()._start_trace(run)
        self._on_run_create(run)

    def _end_trace(self, run: Run) -> None:
        """End a trace for a run."""
        if not run.parent_run_id:
            self._persist_run(run)
        self.run_map.pop(str(run.id))
        self._on_run_update(run)

    def on_chat_model_start(
        self,
        serialized: dict[str, Any],
        messages: list[list[BaseMessage]],
        *,
        run_id: UUID,
        tags: list[str] | None = None,
        parent_run_id: UUID | None = None,
        metadata: dict[str, Any] | None = None,
// ... (859 more lines)

Subdomains

Functions

Dependencies

  • abc
  • asyncio
  • collections.abc
  • langchain_core.callbacks.base
  • langchain_core.documents
  • langchain_core.exceptions
  • langchain_core.messages
  • langchain_core.outputs
  • langchain_core.tracers.core
  • langchain_core.tracers.schemas
  • logging
  • tenacity
  • typing
  • typing_extensions
  • uuid

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 1 function(s): collections.
What does base.py depend on?
base.py imports 15 module(s): abc, asyncio, collections.abc, langchain_core.callbacks.base, langchain_core.documents, langchain_core.exceptions, langchain_core.messages, langchain_core.outputs, and 7 more.
Where is base.py in the architecture?
base.py is located at libs/core/langchain_core/tracers/base.py (domain: CoreAbstractions, subdomain: Serialization, 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