vercel.d.ts 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import type { generateText } from "ai";
  2. import { Client } from "./index.js";
  3. export type AITelemetrySettings = Exclude<Parameters<typeof generateText>[0]["experimental_telemetry"], undefined>;
  4. export interface TelemetrySettings extends AITelemetrySettings {
  5. /** ID of the run sent to LangSmith */
  6. runId?: string;
  7. /** Name of the run sent to LangSmith */
  8. runName?: string;
  9. }
  10. /**
  11. * OpenTelemetry trace exporter for Vercel AI SDK.
  12. *
  13. * @example
  14. * ```ts
  15. * import { AISDKExporter } from "langsmith/vercel";
  16. * import { Client } from "langsmith";
  17. *
  18. * import { generateText } from "ai";
  19. * import { openai } from "@ai-sdk/openai";
  20. *
  21. * import { NodeSDK } from "@opentelemetry/sdk-node";
  22. * import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node";
  23. *
  24. * const client = new Client();
  25. *
  26. * const sdk = new NodeSDK({
  27. * traceExporter: new AISDKExporter({ client }),
  28. * instrumentations: [getNodeAutoInstrumentations()],
  29. * });
  30. *
  31. * sdk.start();
  32. *
  33. * const res = await generateText({
  34. * model: openai("gpt-4o-mini"),
  35. * messages: [
  36. * {
  37. * role: "user",
  38. * content: "What color is the sky?",
  39. * },
  40. * ],
  41. * experimental_telemetry: AISDKExporter.getSettings({
  42. * runName: "langsmith_traced_call",
  43. * metadata: { userId: "123", language: "english" },
  44. * }),
  45. * });
  46. *
  47. * await sdk.shutdown();
  48. * ```
  49. */
  50. export declare class AISDKExporter {
  51. private client;
  52. private traceByMap;
  53. private seenSpanInfo;
  54. private pendingSpans;
  55. private debug;
  56. private projectName?;
  57. constructor(args?: {
  58. client?: Client;
  59. debug?: boolean;
  60. projectName?: string;
  61. });
  62. static getSettings(settings?: TelemetrySettings): {
  63. isEnabled: boolean;
  64. metadata: {
  65. [x: string]: import("@opentelemetry/api").AttributeValue;
  66. };
  67. recordInputs?: boolean;
  68. recordOutputs?: boolean;
  69. functionId?: string;
  70. tracer?: import("@opentelemetry/api").Tracer;
  71. };
  72. _export(spans: unknown[], resultCallback: (result: {
  73. code: 0 | 1;
  74. error?: Error;
  75. }) => void): void;
  76. export(spans: unknown[], resultCallback: (result: {
  77. code: 0 | 1;
  78. error?: Error;
  79. }) => void): void;
  80. shutdown(): Promise<void>;
  81. forceFlush(): Promise<void>;
  82. protected logDebug(...args: Parameters<typeof console.debug>): void;
  83. }