LangChainTracer Class — langchain Architecture
Architecture documentation for the LangChainTracer class in langchain.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 178590bb_85ff_b79e_979a_46e5c3c5389f["LangChainTracer"] 0f6b3261_31fa_c34e_ca33_cb141bdf78ff["BaseTracer"] 178590bb_85ff_b79e_979a_46e5c3c5389f -->|extends| 0f6b3261_31fa_c34e_ca33_cb141bdf78ff 34ac5e02_6299_266f_403f_f48ad1969c05["langchain.py"] 178590bb_85ff_b79e_979a_46e5c3c5389f -->|defined in| 34ac5e02_6299_266f_403f_f48ad1969c05 c3dd086b_6fc4_e4d4_0636_f433544cc90a["__init__()"] 178590bb_85ff_b79e_979a_46e5c3c5389f -->|method| c3dd086b_6fc4_e4d4_0636_f433544cc90a 1a52c867_8259_f52c_1ade_c23b7b18c690["_start_trace()"] 178590bb_85ff_b79e_979a_46e5c3c5389f -->|method| 1a52c867_8259_f52c_1ade_c23b7b18c690 68b325b2_a4ee_6bd3_7e65_01239a5c497c["on_chat_model_start()"] 178590bb_85ff_b79e_979a_46e5c3c5389f -->|method| 68b325b2_a4ee_6bd3_7e65_01239a5c497c feeaafcd_6a55_9b52_596d_b0e6235026f1["_persist_run()"] 178590bb_85ff_b79e_979a_46e5c3c5389f -->|method| feeaafcd_6a55_9b52_596d_b0e6235026f1 9dc932be_4116_cf2f_1376_f6fb09fcdc9a["get_run_url()"] 178590bb_85ff_b79e_979a_46e5c3c5389f -->|method| 9dc932be_4116_cf2f_1376_f6fb09fcdc9a e7870e44_5a4c_21ed_c102_454d33a1b0c4["_get_tags()"] 178590bb_85ff_b79e_979a_46e5c3c5389f -->|method| e7870e44_5a4c_21ed_c102_454d33a1b0c4 cf43defe_cb35_deb4_9782_55f973cdf6ca["_persist_run_single()"] 178590bb_85ff_b79e_979a_46e5c3c5389f -->|method| cf43defe_cb35_deb4_9782_55f973cdf6ca bce3427a_d6ea_f317_a362_d28206fa1696["_update_run_single()"] 178590bb_85ff_b79e_979a_46e5c3c5389f -->|method| bce3427a_d6ea_f317_a362_d28206fa1696 47ffbd38_6b27_99ae_6f16_a6e3b801394b["_on_llm_start()"] 178590bb_85ff_b79e_979a_46e5c3c5389f -->|method| 47ffbd38_6b27_99ae_6f16_a6e3b801394b 135ae62b_492a_3797_bd6f_3072486fcb45["_llm_run_with_token_event()"] 178590bb_85ff_b79e_979a_46e5c3c5389f -->|method| 135ae62b_492a_3797_bd6f_3072486fcb45 1f28ee91_49f8_e93f_e967_a9380e8e96a7["_on_chat_model_start()"] 178590bb_85ff_b79e_979a_46e5c3c5389f -->|method| 1f28ee91_49f8_e93f_e967_a9380e8e96a7 0a3df31a_88bd_f701_6d60_8d6d287acc08["_on_llm_end()"] 178590bb_85ff_b79e_979a_46e5c3c5389f -->|method| 0a3df31a_88bd_f701_6d60_8d6d287acc08
Relationship Graph
Source Code
libs/core/langchain_core/tracers/langchain.py lines 99–377
class LangChainTracer(BaseTracer):
"""Implementation of the `SharedTracer` that `POSTS` to the LangChain endpoint."""
run_inline = True
def __init__(
self,
example_id: UUID | str | None = None,
project_name: str | None = None,
client: Client | None = None,
tags: list[str] | None = None,
**kwargs: Any,
) -> None:
"""Initialize the LangChain tracer.
Args:
example_id: The example ID.
project_name: The project name.
Defaults to the tracer project.
client: The client.
Defaults to the global client.
tags: The tags.
Defaults to an empty list.
**kwargs: Additional keyword arguments.
"""
super().__init__(**kwargs)
self.example_id = (
UUID(example_id) if isinstance(example_id, str) else example_id
)
self.project_name = project_name or ls_utils.get_tracer_project()
self.client = client or get_client()
self.tags = tags or []
self.latest_run: Run | None = None
self.run_has_token_event_map: dict[str, bool] = {}
def _start_trace(self, run: Run) -> None:
if self.project_name:
run.session_name = self.project_name
if self.tags is not None:
if run.tags:
run.tags = sorted(set(run.tags + self.tags))
else:
run.tags = self.tags.copy()
super()._start_trace(run)
if run.ls_client is None:
run.ls_client = self.client
if get_tracing_context().get("enabled") is False:
run.extra["__disabled"] = True
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.
run_id: The run ID.
tags: The tags.
parent_run_id: The parent run ID.
metadata: The metadata.
name: The name.
**kwargs: Additional keyword arguments.
Returns:
The run.
"""
start_time = datetime.now(timezone.utc)
Extends
Source
Frequently Asked Questions
What is the LangChainTracer class?
LangChainTracer is a class in the langchain codebase, defined in libs/core/langchain_core/tracers/langchain.py.
Where is LangChainTracer defined?
LangChainTracer is defined in libs/core/langchain_core/tracers/langchain.py at line 99.
What does LangChainTracer extend?
LangChainTracer extends BaseTracer.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free