# AI Gateway SDK Integration ## Vercel AI SDK (Recommended) ```typescript import { createAiGateway } from 'ai-gateway-provider'; import { createOpenAI } from '@ai-sdk/openai'; import { generateText } from 'ai'; const gateway = createAiGateway({ accountId: process.env.CF_ACCOUNT_ID, gateway: process.env.CF_GATEWAY_ID, apiKey: process.env.CF_API_TOKEN // Optional for auth gateways }); const openai = createOpenAI({ apiKey: process.env.OPENAI_API_KEY }); // Single model const { text } = await generateText({ model: gateway(openai('gpt-4o')), prompt: 'Hello' }); // Automatic fallback array const { text } = await generateText({ model: gateway([ openai('gpt-4o'), anthropic('claude-sonnet-4-5'), openai('gpt-4o-mini') ]), prompt: 'Complex task' }); ``` ### Options ```typescript model: gateway(openai('gpt-4o'), { cacheKey: 'my-key', cacheTtl: 3600, metadata: { userId: 'u123', team: 'eng' }, // Max 5 entries retries: { maxAttempts: 3, backoff: 'exponential' } }) ``` ## OpenAI SDK ```typescript const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY, baseURL: `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}/openai`, defaultHeaders: { 'cf-aig-authorization': `Bearer ${cfToken}` } }); // Unified API - switch providers via model name model: 'openai/gpt-4o' // or 'anthropic/claude-sonnet-4-5' ``` ## Anthropic SDK ```typescript const client = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY, baseURL: `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}/anthropic`, defaultHeaders: { 'cf-aig-authorization': `Bearer ${cfToken}` } }); ``` ## Workers AI Binding ```toml # wrangler.toml [ai] binding = "AI" [[ai.gateway]] id = "my-gateway" ``` ```typescript await env.AI.run('@cf/meta/llama-3-8b-instruct', { messages: [...] }, { gateway: { id: 'my-gateway', metadata: { userId: '123' } } } ); ``` ## LangChain / LlamaIndex ```typescript // Use OpenAI SDK pattern with custom baseURL new ChatOpenAI({ configuration: { baseURL: `https://gateway.ai.cloudflare.com/v1/${accountId}/${gatewayId}/openai` } }); ``` ## HTTP / cURL ```bash curl https://gateway.ai.cloudflare.com/v1/{account}/{gateway}/openai/chat/completions \ -H "Authorization: Bearer $OPENAI_KEY" \ -H "cf-aig-authorization: Bearer $CF_TOKEN" \ -H "cf-aig-metadata: {\"userId\":\"123\"}" \ -d '{"model":"gpt-4o","messages":[...]}' ``` ## Headers Reference | Header | Purpose | |--------|---------| | `cf-aig-authorization` | Gateway auth token | | `cf-aig-metadata` | JSON object (max 5 keys) | | `cf-aig-cache-ttl` | Cache TTL in seconds | | `cf-aig-skip-cache` | `true` to bypass cache |