Vercel AI SDK 的 OpenTelemetry 追踪导出器。

import { AISDKExporter } from "langsmith/vercel";
import { Client } from "langsmith";

import { generateText } from "ai";
import { openai } from "@ai-sdk/openai";

import { NodeSDK } from "@opentelemetry/sdk-node";
import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node";

const client = new Client();

const sdk = new NodeSDK({
traceExporter: new AISDKExporter({ client }),
instrumentations: [getNodeAutoInstrumentations()],
});

sdk.start();

const res = await generateText({
model: openai("gpt-4o-mini"),
messages: [
{
role: "user",
content: "What color is the sky?",
},
],
experimental_telemetry: AISDKExporter.getSettings({
runName: "langsmith_traced_call",
metadata: { userId: "123", language: "english" },
}),
});

await sdk.shutdown();

构造函数

方法

  • 参数

    • spans: unknown[]
    • resultCallback: (result: { code: 0 | 1; error?: Error }) => void

    返回值 void

  • 参数

    返回值 {
        isEnabled: boolean;
        metadata: { [key: string]: AttributeValue };
        functionId?: string;
        recordInputs?: boolean;
        recordOutputs?: boolean;
        tracer?: Tracer;
    }

    • isEnabled: boolean
    • metadata: { [key: string]: AttributeValue }
    • 可选functionId?: string

      此函数的标识符。用于按函数对遥测数据进行分组。

    • 可选recordInputs?: boolean

      启用或禁用输入记录。默认启用。

      您可能希望禁用输入记录以避免记录敏感信息、减少数据传输或提高性能。

    • 可选recordOutputs?: boolean

      启用或禁用输出记录。默认启用。

      您可能希望禁用输出记录以避免记录敏感信息、减少数据传输或提高性能。

    • 可选tracer?: Tracer

      用于遥测数据的自定义追踪器。

  • 参数

    • ...args: [message?: any, ...optionalParams: any[]]

    返回值 void