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

# Vercel AI SDK

> Integrieren Sie TokenLab mit dem Vercel AI SDK unter Verwendung von OpenAI-kompatiblen oder Responses-nativen Providern

## Übersicht

<Note>
  **Typ**: Framework oder Plattform

  **Primärer Pfad**: OpenAI-kompatibler Standard

  **Support-Vertrauen**: Empfohlenes Integrationsmuster
</Note>

Für TokenLab ist der stabilste Standard im Vercel AI SDK der **OpenAI-kompatible Provider**.

Wenn Sie spezifisch **Responses-natives** Verhalten benötigen, können Sie zum OpenAI-Provider wechseln und dieselbe TokenLab-Basis-URL beibehalten.

Betrachten Sie diese Seite als empfohlenes Integrationsmuster und nicht als Garantie dafür, dass jeder Helper im Vercel AI SDK von TokenLab unterstützt wird.

## TokenLab Provider-Paket

TokenLab pflegt auch einen leichtgewichtigen Provider-Wrapper für das Vercel AI SDK:

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

```typescript theme={null}
import { generateText } from 'ai';
import { tokenlab } from '@tokenlabai/ai-sdk-provider';

const { text } = await generateText({
  model: tokenlab.chatModel('gpt-5.4'),
  prompt: 'Explain TokenLab in one sentence.',
});

console.log(text);
```

## Empfohlener Standard: OpenAI-kompatibler Provider

```bash theme={null}
npm install ai @ai-sdk/openai-compatible
```

```typescript theme={null}
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';

export const tokenlab = createOpenAICompatible({
  name: 'tokenlab',
  apiKey: process.env.TOKENLAB_API_KEY,
  baseURL: 'https://api.tokenlab.sh/v1',
});
```

## Text generieren

```typescript theme={null}
import { generateText } from 'ai';
import { tokenlab } from './tokenlab';

const { text } = await generateText({
  model: tokenlab.chatModel('gpt-5.4'),
  prompt: 'Explain TokenLab in one sentence.',
});

console.log(text);
```

## Text streamen

```typescript theme={null}
import { streamText } from 'ai';
import { tokenlab } from './tokenlab';

const result = await streamText({
  model: tokenlab.chatModel('gpt-5.4'),
  prompt: 'Write a short poem about coding.',
});

for await (const textPart of result.textStream) {
  process.stdout.write(textPart);
}
```

## Tool Calling

```typescript theme={null}
import { generateText, tool } from 'ai';
import { z } from 'zod';
import { tokenlab } from './tokenlab';

const result = await generateText({
  model: tokenlab.chatModel('gpt-5.4'),
  prompt: 'What is the weather in San Francisco?',
  tools: {
    weather: tool({
      description: 'Get weather in a location',
      parameters: z.object({
        location: z.string(),
      }),
      execute: async ({ location }) => ({
        location,
        temperature: 72,
        condition: 'sunny',
      }),
    }),
  },
});

console.log(result.text);
```

## Strukturierte Ausgabe

```typescript theme={null}
import { generateObject } from 'ai';
import { z } from 'zod';
import { tokenlab } from './tokenlab';

const { object } = await generateObject({
  model: tokenlab.chatModel('gpt-5.4'),
  schema: z.object({
    name: z.string(),
    role: z.string(),
  }),
  prompt: 'Generate a fake developer profile.',
});

console.log(object);
```

## Wenn Sie explizit Responses-natives Verhalten benötigen

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

```typescript theme={null}
import { createOpenAI } from '@ai-sdk/openai';

export const tokenlabResponses = createOpenAI({
  apiKey: process.env.TOKENLAB_API_KEY,
  baseURL: 'https://api.tokenlab.sh/v1',
});
```

```typescript theme={null}
import { generateText } from 'ai';
import { tokenlabResponses } from './tokenlab-responses';

const { text } = await generateText({
  model: tokenlabResponses('gpt-5.4'),
  prompt: 'Explain TokenLab in one sentence.',
});
```

<Note>
  Verwenden Sie `@ai-sdk/openai-compatible` als sicheren Standard für Proxy-artige Integrationen. Wechseln Sie nur dann zu `@ai-sdk/openai`, wenn Sie explizit einen Provider-Pfad benötigen, der auf `/v1/responses` basiert.
</Note>

## Umgebungsvariablen

```bash theme={null}
# .env.local
TOKENLAB_API_KEY=sk-your-tokenlab-key
```

## Best Practices

<AccordionGroup>
  <Accordion title="Bevorzugen Sie openai-compatible">
    Für Gateways von Drittanbietern und Proxy-Backends ist `@ai-sdk/openai-compatible` in der Regel der am wenigsten fehleranfällige Ausgangspunkt.
  </Accordion>

  <Accordion title="Wechseln Sie nur bei Bedarf zu Responses">
    Wenn Sie ein Provider-Verhalten benötigen, das an `/v1/responses` gebunden ist, wechseln Sie das Provider-Paket bewusst, anstatt beide Muster in einem Client zu mischen.
  </Accordion>

  <Accordion title="Halten Sie Geheimnisse auf dem Server">
    Geben Sie Ihren TokenLab API-Key niemals im clientseitigen Code preis. Platzieren Sie die Provider-Einrichtung in Serverdateien oder API-Routen.
  </Accordion>
</AccordionGroup>
