Performance: Setting up LangSmith tracing
This affects the runtime overhead and network latency during LangChain operations by adding tracing calls.
Jump into concepts and practice - no test required
import { LangChainTracer } from "@langchain/core/tracers/langchain"; import { Client } from "langsmith"; const client = new Client(); const tracer = new LangChainTracer({ client, projectName: "important", samplingRate: 0.1 }); result = await model.invoke("some input", { callbacks: [tracer] });
(window as any).LANGCHAIN_TRACING_V2 = "true"; (window as any).LANGCHAIN_API_KEY = "lsv2_..."; // Every LangChain call (e.g., model.invoke()) will send full trace data result = await model.invoke("some input");
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Global tracing enabled for all events | Minimal | 0 | Minimal | [X] Bad |
| Selective async tracing with sampling | Minimal | 0 | Minimal | [OK] Good |
from langchain.chat_models import ChatOpenAI
from langchain.callbacks import LangChainTracer
tracer = LangChainTracer()
llm = ChatOpenAI(callbacks=[tracer])
response = llm.chat([{'role': 'user', 'content': 'Hello!'}])from langchain.chat_models import ChatOpenAI from langchain.callbacks import LangChainTracer tracer = LangChainTracer llm = ChatOpenAI(callbacks=[tracer])