Home / Class/ LangChainTracer Class — langchain Architecture

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

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