Skip to main content
如其他指南中所述,以下环境变量允许您配置启用追踪、API端点、API密钥和追踪项目:
  • LANGSMITH_TRACING
  • LANGSMITH_API_KEY
  • LANGSMITH_ENDPOINT
  • LANGSMITH_PROJECT
如果您需要使用自定义配置追踪运行、在不支持典型环境变量的环境中工作(例如Cloudflare Workers),或者只是不想依赖环境变量,LangSmith允许您以编程方式配置追踪。
由于许多用户要求使用 trace 上下文管理器对追踪进行更细粒度的控制,我们在Python SDK的0.1.95版本中更改了 with trace 的行为,使其遵循 LANGSMITH_TRACING 环境变量。您可以在发布说明中找到更多详情。推荐在不设置环境变量的情况下禁用/启用追踪的方法是使用 with tracing_context 上下文管理器,如下例所示。
  • Python:在Python中推荐的方法是使用 tracing_context 上下文管理器。这适用于使用 traceable 注解的代码以及 trace 上下文管理器内的代码。
  • TypeScript:您可以将客户端和 tracingEnabled 标志传递给 traceable 装饰器。
import openai
from langsmith import Client, tracing_context, traceable
from langsmith.wrappers import wrap_openai

langsmith_client = Client(
  api_key="YOUR_LANGSMITH_API_KEY",  # 可以从密钥管理器中获取
  api_url="https://api.smith.langchain.com",  # 对于自托管安装或欧盟区域,请相应更新
  workspace_id="YOUR_WORKSPACE_ID", # 对于限定在多个工作区的API密钥必须指定
)

client = wrap_openai(openai.Client())

@traceable(run_type="tool", name="Retrieve Context")
def my_tool(question: str) -> str:
  return "During this morning's meeting, we solved all world conflict."

@traceable
def chat_pipeline(question: str):
  context = my_tool(question)
  messages = [
      { "role": "system", "content": "You are a helpful assistant. Please respond to the user's request only based on the given context." },
      { "role": "user", "content": f"Question: {question}\nContext: {context}"}
  ]
  chat_completion = client.chat.completions.create(
      model="gpt-5.4-mini", messages=messages
  )
  return chat_completion.choices[0].message.content

# 可以设置为False以在不改变代码结构的情况下禁用追踪
with tracing_context(enabled=True):
  # 使用 langsmith_extra 传递自定义客户端
  chat_pipeline("Can you summarize this morning's meetings?", langsmith_extra={"client": langsmith_client})
如果您更喜欢视频教程,请查看LangSmith入门课程中的替代追踪方式视频

相关内容

如果您需要根据运行时条件(例如客户端要求、数据敏感性或合规性策略)动态启用或禁用追踪,请参阅条件追踪获取示例。