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