Vercel AI SDK

@ai-sdk/openai + ai — pointed at odnoga.

import { createOpenAI } from '@ai-sdk/openai';
import { generateText, streamText } from 'ai';

const openai = createOpenAI({
  apiKey: process.env.AIROUTER_API_KEY!,
  baseURL: `${process.env.AIROUTER_BASE_URL}/v1`,
  headers: { 'x-airouter-end-user': userId },
});

const { text } = await generateText({
  model: openai('gpt-4o-mini'),
  prompt: 'hi',
});

Streaming

const result = await streamText({
  model: openai('gpt-4o-mini'),
  prompt: 'count to 5',
});

for await (const delta of result.textStream) process.stdout.write(delta);

Headers

The AI SDK doesn't surface response headers — wrap with the shared helper if you need x-airouter-request-id per call.