AsyncBaseTracer Class — langchain Architecture
Architecture documentation for the AsyncBaseTracer class in base.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 6491c2d5_982b_c4f4_e268_52f0acf4d29b["AsyncBaseTracer"] 4fc6201d_2217_7ee6_6ae9_980ec7e172fa["_TracerCore"] 6491c2d5_982b_c4f4_e268_52f0acf4d29b -->|extends| 4fc6201d_2217_7ee6_6ae9_980ec7e172fa e108f394_9734_a4fd_0bef_19ef9b674d50["AsyncCallbackHandler"] 6491c2d5_982b_c4f4_e268_52f0acf4d29b -->|extends| e108f394_9734_a4fd_0bef_19ef9b674d50 40d5fc12_7edf_9881_367a_e932f4aabe85["base.py"] 6491c2d5_982b_c4f4_e268_52f0acf4d29b -->|defined in| 40d5fc12_7edf_9881_367a_e932f4aabe85 055dd079_2c46_e173_d8ee_42dd6334b824["_persist_run()"] 6491c2d5_982b_c4f4_e268_52f0acf4d29b -->|method| 055dd079_2c46_e173_d8ee_42dd6334b824 e13b9012_4ecf_ea58_ca69_498c9d8f26a2["_start_trace()"] 6491c2d5_982b_c4f4_e268_52f0acf4d29b -->|method| e13b9012_4ecf_ea58_ca69_498c9d8f26a2 c70d421d_66bb_3008_6673_01931a1637cb["_end_trace()"] 6491c2d5_982b_c4f4_e268_52f0acf4d29b -->|method| c70d421d_66bb_3008_6673_01931a1637cb 9300c4a7_9421_2a7f_df2e_dfc93483a1f4["on_chat_model_start()"] 6491c2d5_982b_c4f4_e268_52f0acf4d29b -->|method| 9300c4a7_9421_2a7f_df2e_dfc93483a1f4 f92da0ac_7790_d83f_8e6b_ddb41dccaaa7["on_llm_start()"] 6491c2d5_982b_c4f4_e268_52f0acf4d29b -->|method| f92da0ac_7790_d83f_8e6b_ddb41dccaaa7 240c6655_0579_7bf7_802e_671e14313756["on_llm_new_token()"] 6491c2d5_982b_c4f4_e268_52f0acf4d29b -->|method| 240c6655_0579_7bf7_802e_671e14313756 9fe1e19b_73fd_a3dd_0dec_7c66ddb8c9da["on_retry()"] 6491c2d5_982b_c4f4_e268_52f0acf4d29b -->|method| 9fe1e19b_73fd_a3dd_0dec_7c66ddb8c9da 5b4ed31c_e95a_4e17_cdfa_945de38d35c2["on_llm_end()"] 6491c2d5_982b_c4f4_e268_52f0acf4d29b -->|method| 5b4ed31c_e95a_4e17_cdfa_945de38d35c2 15c06d14_5a57_225f_d8bb_7d5f3c089173["on_llm_error()"] 6491c2d5_982b_c4f4_e268_52f0acf4d29b -->|method| 15c06d14_5a57_225f_d8bb_7d5f3c089173 21af7594_15e7_8da2_2dab_4022c348651c["on_chain_start()"] 6491c2d5_982b_c4f4_e268_52f0acf4d29b -->|method| 21af7594_15e7_8da2_2dab_4022c348651c 5d04407e_b9e8_948a_05e8_22fa43599ca0["on_chain_end()"] 6491c2d5_982b_c4f4_e268_52f0acf4d29b -->|method| 5d04407e_b9e8_948a_05e8_22fa43599ca0
Relationship Graph
Source Code
libs/core/langchain_core/tracers/base.py lines 531–918
class AsyncBaseTracer(_TracerCore, AsyncCallbackHandler, ABC):
"""Async base interface for tracers."""
@abstractmethod
@override
async def _persist_run(self, run: Run) -> None:
"""Persist a run."""
@override
async def _start_trace(self, run: Run) -> None:
"""Start a trace for a run.
Starting a trace will run concurrently with each `_on_[run_type]_start` method.
No `_on_[run_type]_start` callback should depend on operations in
`_start_trace`.
"""
super()._start_trace(run)
await self._on_run_create(run)
@override
async def _end_trace(self, run: Run) -> None:
"""End a trace for a run.
Ending a trace will run concurrently with each `_on_[run_type]_end` method.
No `_on_[run_type]_end` callback should depend on operations in `_end_trace`.
"""
if not run.parent_run_id:
await self._persist_run(run)
self.run_map.pop(str(run.id))
await self._on_run_update(run)
@override
async def on_chat_model_start(
self,
serialized: dict[str, Any],
messages: list[list[BaseMessage]],
*,
run_id: UUID,
parent_run_id: UUID | None = None,
tags: list[str] | None = None,
metadata: dict[str, Any] | None = None,
name: str | None = None,
**kwargs: Any,
) -> Any:
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,
)
tasks = [
self._start_trace(chat_model_run),
self._on_chat_model_start(chat_model_run),
]
await asyncio.gather(*tasks)
return chat_model_run
@override
async def on_llm_start(
self,
serialized: dict[str, Any],
prompts: list[str],
*,
run_id: UUID,
parent_run_id: UUID | None = None,
tags: list[str] | None = None,
metadata: dict[str, Any] | None = None,
**kwargs: Any,
) -> None:
llm_run = self._create_llm_run(
serialized=serialized,
prompts=prompts,
run_id=run_id,
parent_run_id=parent_run_id,
tags=tags,
metadata=metadata,
**kwargs,
Defined In
Extends
Source
Frequently Asked Questions
What is the AsyncBaseTracer class?
AsyncBaseTracer is a class in the langchain codebase, defined in libs/core/langchain_core/tracers/base.py.
Where is AsyncBaseTracer defined?
AsyncBaseTracer is defined in libs/core/langchain_core/tracers/base.py at line 531.
What does AsyncBaseTracer extend?
AsyncBaseTracer extends _TracerCore, AsyncCallbackHandler.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free