Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.raptordata.dev/llms.txt

Use this file to discover all available pages before exploring further.

Vercel AI SDK Integration

Perfect for Next.js apps. Add caching, security, and logging to your AI features with minimal code changes.

Install

npm install ai @ai-sdk/openai
# or for Claude
npm install ai @ai-sdk/anthropic

Setup Provider

// lib/ai.ts
import { createOpenAI } from '@ai-sdk/openai';

export const openai = createOpenAI({
  apiKey: process.env.OPENAI_API_KEY,
  baseURL: 'https://proxy.raptordata.dev/v1',
  headers: {
    'X-Raptor-Api-Key': process.env.RAPTOR_API_KEY!,
    'X-Raptor-Workspace-Id': process.env.RAPTOR_WORKSPACE_ID!
  }
});

API Route (Streaming)

// app/api/chat/route.ts
import { openai } from '@/lib/ai';
import { streamText } from 'ai';

export async function POST(req: Request) {
  const { messages } = await req.json();

  const result = streamText({
    model: openai('gpt-4'),
    messages
  });

  return result.toDataStreamResponse();
}

React Component

'use client';
import { useChat } from 'ai/react';

export default function Chat() {
  const { messages, input, handleInputChange, handleSubmit } = useChat();

  return (
    <div>
      {messages.map((m) => (
        <div key={m.id}>
          <b>{m.role}:</b> {m.content}
        </div>
      ))}
      <form onSubmit={handleSubmit}>
        <input value={input} onChange={handleInputChange} />
      </form>
    </div>
  );
}

Non-Streaming

import { openai } from '@/lib/ai';
import { generateText } from 'ai';

const { text } = await generateText({
  model: openai('gpt-4'),
  prompt: 'What is 2+2?'
});

Structured Output

import { openai } from '@/lib/ai';
import { generateObject } from 'ai';
import { z } from 'zod';

const { object } = await generateObject({
  model: openai('gpt-4'),
  schema: z.object({
    name: z.string(),
    ingredients: z.array(z.string())
  }),
  prompt: 'Generate a recipe for cookies'
});

Using Anthropic

import { createAnthropic } from '@ai-sdk/anthropic';

const anthropic = createAnthropic({
  apiKey: process.env.ANTHROPIC_API_KEY,
  baseURL: 'https://proxy.raptordata.dev',  // No /v1 for Anthropic
  headers: {
    'X-Raptor-Api-Key': process.env.RAPTOR_API_KEY!,
    'X-Raptor-Workspace-Id': process.env.RAPTOR_WORKSPACE_ID!
  }
});

// Use like: anthropic('claude-sonnet-4-20250514')

Environment Variables

Add to .env.local:
OPENAI_API_KEY=sk-...
RAPTOR_API_KEY=rpt_...
RAPTOR_WORKSPACE_ID=your-workspace-uuid

Full Example

// app/api/chat/route.ts
import { createOpenAI } from '@ai-sdk/openai';
import { streamText } from 'ai';

const openai = createOpenAI({
  apiKey: process.env.OPENAI_API_KEY,
  baseURL: 'https://proxy.raptordata.dev/v1',
  headers: {
    'X-Raptor-Api-Key': process.env.RAPTOR_API_KEY!,
    'X-Raptor-Workspace-Id': process.env.RAPTOR_WORKSPACE_ID!
  }
});

export async function POST(req: Request) {
  const { messages } = await req.json();

  const result = streamText({
    model: openai('gpt-4'),
    system: 'You are a helpful assistant.',
    messages
  });

  return result.toDataStreamResponse();
}
All Vercel AI SDK features work: streaming, structured output, tools, and multi-provider support. Every request goes through Raptor for caching, security, and logging.