BaseTracer Class — langchain Architecture
Architecture documentation for the BaseTracer class in base.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 6a27faca_523a_f3fd_3719_3b2319fda575["BaseTracer"] 4fc6201d_2217_7ee6_6ae9_980ec7e172fa["_TracerCore"] 6a27faca_523a_f3fd_3719_3b2319fda575 -->|extends| 4fc6201d_2217_7ee6_6ae9_980ec7e172fa 50ee4473_6788_2806_dc06_5fbbc8f64275["BaseCallbackHandler"] 6a27faca_523a_f3fd_3719_3b2319fda575 -->|extends| 50ee4473_6788_2806_dc06_5fbbc8f64275 40d5fc12_7edf_9881_367a_e932f4aabe85["base.py"] 6a27faca_523a_f3fd_3719_3b2319fda575 -->|defined in| 40d5fc12_7edf_9881_367a_e932f4aabe85 bf55689a_2700_0f1c_5795_0f43134c51a2["_persist_run()"] 6a27faca_523a_f3fd_3719_3b2319fda575 -->|method| bf55689a_2700_0f1c_5795_0f43134c51a2 3a237400_4e26_7f5e_6b01_5d6ba1c8afb5["_start_trace()"] 6a27faca_523a_f3fd_3719_3b2319fda575 -->|method| 3a237400_4e26_7f5e_6b01_5d6ba1c8afb5 5ed1eb36_775e_0a0d_de93_b7bff675a4ce["_end_trace()"] 6a27faca_523a_f3fd_3719_3b2319fda575 -->|method| 5ed1eb36_775e_0a0d_de93_b7bff675a4ce b6a3fad8_3301_90ea_9044_76ca53eca0c2["on_chat_model_start()"] 6a27faca_523a_f3fd_3719_3b2319fda575 -->|method| b6a3fad8_3301_90ea_9044_76ca53eca0c2 f242a055_73e1_1f44_bcff_ce31c558a729["on_llm_start()"] 6a27faca_523a_f3fd_3719_3b2319fda575 -->|method| f242a055_73e1_1f44_bcff_ce31c558a729 a58e041c_05c5_381d_d266_a39773da2324["on_llm_new_token()"] 6a27faca_523a_f3fd_3719_3b2319fda575 -->|method| a58e041c_05c5_381d_d266_a39773da2324 0f020420_1155_46fb_c942_2ff35c99736d["on_retry()"] 6a27faca_523a_f3fd_3719_3b2319fda575 -->|method| 0f020420_1155_46fb_c942_2ff35c99736d 1fc7e166_8e0c_e237_b05d_ff728b31bf4d["on_llm_end()"] 6a27faca_523a_f3fd_3719_3b2319fda575 -->|method| 1fc7e166_8e0c_e237_b05d_ff728b31bf4d 4562092d_5210_8c87_8a89_69c047a5c7a5["on_llm_error()"] 6a27faca_523a_f3fd_3719_3b2319fda575 -->|method| 4562092d_5210_8c87_8a89_69c047a5c7a5 c14dc497_fed7_3af8_4690_8c280d2cccbf["on_chain_start()"] 6a27faca_523a_f3fd_3719_3b2319fda575 -->|method| c14dc497_fed7_3af8_4690_8c280d2cccbf 8ca48be8_442f_88fe_f3fd_e87fbb96b848["on_chain_end()"] 6a27faca_523a_f3fd_3719_3b2319fda575 -->|method| 8ca48be8_442f_88fe_f3fd_e87fbb96b848
Relationship Graph
Source Code
libs/core/langchain_core/tracers/base.py lines 33–528
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,
name: str | None = None,
**kwargs: Any,
) -> Run:
"""Start a trace for an LLM run.
Args:
serialized: The serialized model.
messages: The messages to start the chat with.
run_id: The run ID.
tags: The tags for the run.
parent_run_id: The parent run ID.
metadata: The metadata for the run.
name: The name of the run.
**kwargs: Additional arguments.
Returns:
The run.
"""
chat_model_run = self._create_chat_model_run(
serialized=serialized,
messages=messages,
run_id=run_id,
parent_run_id=parent_run_id,
tags=tags,
metadata=metadata,
name=name,
**kwargs,
)
self._start_trace(chat_model_run)
self._on_chat_model_start(chat_model_run)
return chat_model_run
def on_llm_start(
self,
serialized: dict[str, Any],
prompts: list[str],
*,
run_id: UUID,
tags: list[str] | None = None,
parent_run_id: UUID | None = None,
metadata: dict[str, Any] | None = None,
name: str | None = None,
**kwargs: Any,
) -> Run:
"""Start a trace for an LLM run.
Args:
serialized: The serialized model.
prompts: The prompts to start the LLM with.
run_id: The run ID.
tags: The tags for the run.
parent_run_id: The parent run ID.
metadata: The metadata for the run.
Defined In
Extends
Source
Frequently Asked Questions
What is the BaseTracer class?
BaseTracer is a class in the langchain codebase, defined in libs/core/langchain_core/tracers/base.py.
Where is BaseTracer defined?
BaseTracer is defined in libs/core/langchain_core/tracers/base.py at line 33.
What does BaseTracer extend?
BaseTracer extends _TracerCore, BaseCallbackHandler.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free