> ## Documentation Index
> Fetch the complete documentation index at: https://docs.latitude.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Vercel AI SDK

> Connect your Vercel AI SDK-powered application to Latitude for observability.

## Overview

This guide shows you how to integrate **Latitude Telemetry** into an application that uses the **Vercel AI SDK**.

The Vercel AI SDK can emit OpenTelemetry spans through its `experimental_telemetry` flag. Latitude can ingest those spans without a provider-specific instrumentation entry.

<Check>
  You'll keep calling the Vercel AI SDK exactly as you do today. Telemetry simply
  observes and enriches those calls.
</Check>

<Note>
  The Vercel AI SDK integration is **TypeScript only**.
</Note>

***

## Requirements

* A **Latitude account** and **API key**
* A **Latitude project slug**
* A Node.js project that uses the **Vercel AI SDK** (`ai` package)

***

## Steps

<Steps>
  <Step title="Install">
    <CodeGroup>
      ```bash npm theme={"theme":{"light":"github-light","dark":"github-dark"}}
      npm install @latitude-data/telemetry
      ```

      ```bash pnpm theme={"theme":{"light":"github-light","dark":"github-dark"}}
      pnpm add @latitude-data/telemetry
      ```

      ```bash yarn theme={"theme":{"light":"github-light","dark":"github-dark"}}
      yarn add @latitude-data/telemetry
      ```

      ```bash bun theme={"theme":{"light":"github-light","dark":"github-dark"}}
      bun add @latitude-data/telemetry
      ```
    </CodeGroup>
  </Step>

  <Step title="Initialize and use">
    Initialize Latitude **without** an `instrumentations` array. The Vercel AI SDK emits its own OpenTelemetry spans. Set `experimental_telemetry.isEnabled` to `true` on your AI SDK calls.

    ```ts theme={"theme":{"light":"github-light","dark":"github-dark"}}
    import { Latitude, capture } from "@latitude-data/telemetry"
    import { generateText } from "ai"
    import { openai } from "@ai-sdk/openai"

    const latitude = new Latitude({
      apiKey: process.env.LATITUDE_API_KEY!,
      project: process.env.LATITUDE_PROJECT_SLUG!,
    })

    await capture("generate-support-reply", async () => {
      const { text } = await generateText({
        model: openai("gpt-4o"),
        prompt: "Hello",
        experimental_telemetry: {
          isEnabled: true,
        },
      })
      return text
    })

    await latitude.shutdown()
    ```

    <Note>
      The `experimental_telemetry.isEnabled` flag must be set to `true` on each
      Vercel AI SDK call (`generateText`, `streamText`, etc.) for spans to be emitted.
    </Note>
  </Step>
</Steps>

***

## Seeing Your Traces

Once connected, traces appear automatically in Latitude:

1. Open your **project** in the Latitude dashboard
2. Each execution shows input/output messages, model, token usage, latency, and errors
