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

# Vercel AI SDK

> Use any Opper model with the Vercel AI SDK through the official provider package

The [Vercel AI SDK](https://ai-sdk.dev/) is a TypeScript toolkit for building AI-powered applications. Opper publishes an official provider package, so any Opper model works with `generateText`, `streamText`, `embed`, and tool calls.

## Setup

```bash theme={null}
npm install @opperai/ai-sdk-provider ai
```

```ts theme={null}
import { opper } from '@opperai/ai-sdk-provider';
import { generateText } from 'ai';

const { text } = await generateText({
  model: opper('openai/gpt-5.5'),
  prompt: 'Hello!',
});
```

Pass any Opper model string: `opper('anthropic/claude-sonnet-4-6')`, `opper('gemini/gemini-3.5-flash')`, `opper('default')`, and so on.

## Session tracing

Wrap your model with `opperSpan` to group every call in a conversation under one trace in Opper:

```ts theme={null}
import { wrapLanguageModel, generateText } from 'ai';
import { opper, opperSpan } from '@opperai/ai-sdk-provider';

const { middleware, handle } = opperSpan({ name: 'my-chat-session' });

const model = wrapLanguageModel({
  model: opper('openai/gpt-5.5'),
  middleware,
});

const { text } = await generateText({ model, prompt: 'Hello!' });
await handle.end(text); // closes the span
```

## Related

<CardGroup cols={2}>
  <Card title="Traces" icon="chart-line" href="/control-plane/trace">
    Grouped spans, per session.
  </Card>

  <Card title="Drop-in SDKs" icon="plug" href="/build/gateway/drop-in-sdks">
    The OpenAI, Anthropic, and Google AI SDKs against Opper.
  </Card>
</CardGroup>
