以编程方式使用文档

许多 LLM 提供商接受与 OpenAI API 相同格式的请求。要将这些提供商的调用追踪到 LangSmith,请构造一个指向提供商 base URL 的 OpenAI 客户端,然后用 wrap_openai / wrapOpenAI.

使用 wrap_openai / wrapOpenAI 进行直接的 API 调用。使用 @traceable 当你需要追踪调用周围的应用程序逻辑或为每次调用设置元数据时。

wrap_openai / wrapOpenAI@traceable / traceable
Token 追踪自动需要 run_type="llm"
运行类型LLM(自动设置)默认使用 Chain
追踪内容API 调用包装它的函数
元数据仅客户端级别 (Python);客户端级别或按调用 (TypeScript)通过 langsmith_extra

设置

pip install langsmith openai
npm install langsmith openai

追踪 API 调用

from langsmith import wrappers

client = wrappers.wrap_openai(
    openai.OpenAI(
        base_url="https://<provider-base-url>/v1",
        api_key=os.environ["PROVIDER_API_KEY"],
    )
)

completion = client.chat.completions.create(
    model="<provider-model-name>",
    messages=[{"role": "user", "content": "Hello!"}],
)
print(completion.choices[0].message.content)
const client = wrapOpenAI(
  new OpenAI({
    baseURL: "https://<provider-base-url>/v1",
    apiKey: process.env.PROVIDER_API_KEY!,
  })
);

const completion = await client.chat.completions.create({
  model: "<provider-model-name>",
  messages: [{ role: "user", content: "Hello!" }],
});
console.log(completion.choices[0].message.content);

添加元数据

Python

传递 tracing_extra 包装客户端时。该元数据适用于使用该客户端进行的所有调用。

from langsmith import wrappers

client = wrappers.wrap_openai(
    openai.OpenAI(
        base_url="https://<provider-base-url>/v1",
        api_key=os.environ["PROVIDER_API_KEY"],
    ),
    tracing_extra={"metadata": {"environment": "production"}},
)

TypeScript

将选项作为第二个参数传递给 wrapOpenAI 以设置客户端级别的元数据,或传递 langsmithExtra 按调用设置。

const client = wrapOpenAI(
  new OpenAI({
    baseURL: "https://<provider-base-url>/v1",
    apiKey: process.env.PROVIDER_API_KEY!,
  }),
  { metadata: { environment: "production" } }
);

// Per-call metadata
const completion = await client.chat.completions.create(
  {
    model: "<provider-model-name>",
    messages: [{ role: "user", content: "Hello!" }],
  },
  { langsmithExtra: { metadata: { request_id: "abc123" } } }
);

相关指南

某些提供商有专门的使用 @traceable 或原生回调的设置指南。这些方法在函数级别进行追踪,而不是直接包装客户端,或与提供商自己的 SDK 和路由层集成。

  • - DeepSeek:OpenAI 兼容的 API;指南使用 @traceable 和自定义提供商元数据
  • - LiteLLM:暴露 OpenAI 兼容端点的代理;指南涵盖 @traceable 和 LiteLLM 内置的 LangSmith 回调