← Cloudflare AI Gateway / ai-gateway / integrations
Vercel AI SDK
Vercel AI SDK ↗ представляет собой библиотеку TypeScript для создания приложений на основе ИИ. SDK поддерживает множество различных поставщиков ИИ, инструменты для потоковой передачи завершений и многое другое.
Чтобы использовать Cloudflare AI Gateway вместе с Vercel AI SDK, вам потребуется ai-gateway-provider пакет.
Установка
npm install ai-gateway-providerПримеры
import { createAiGateway } from 'ai-gateway-provider';
import { createUnified } from 'ai-gateway-provider/providers/unified';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const unified = createUnified();
const { text } = await generateText({
model: aigateway(unified('openai/gpt-5.2')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createUnified } from 'ai-gateway-provider/providers/unified';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const unified = createUnified();
const { text } = await generateText({
model: aigateway(unified('anthropic/claude-4-5-sonnet')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createUnified } from 'ai-gateway-provider/providers/unified';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const unified = createUnified();
const { text } = await generateText({
model: aigateway(unified('google/gemini-2.5-pro')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createUnified } from 'ai-gateway-provider/providers/unified';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const unified = createUnified();
const { text } = await generateText({
model: aigateway(unified('grok/grok-4')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createUnified } from 'ai-gateway-provider/providers/unified';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const unified = createUnified();
const { text } = await generateText({
model: aigateway(unified('dynamic/customer-support')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createUnified } from 'ai-gateway-provider/providers/unified';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const unified = createUnified();
const { text } = await generateText({
model: aigateway(unified('workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createUnified } from 'ai-gateway-provider/providers/unified';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const unified = createUnified({ apiKey: '{API_KEY}' });
const { text } = await generateText({
model: aigateway(unified('openai/gpt-5.2')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createUnified } from 'ai-gateway-provider/providers/unified';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const unified = createUnified({ apiKey: '{API_KEY}' });
const { text } = await generateText({
model: aigateway(unified('anthropic/claude-4-5-sonnet')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createUnified } from 'ai-gateway-provider/providers/unified';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const unified = createUnified({ apiKey: '{API_KEY}' });
const { text } = await generateText({
model: aigateway(unified('google/gemini-2.5-pro')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createUnified } from 'ai-gateway-provider/providers/unified';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const unified = createUnified({ apiKey: '{API_KEY}' });
const { text } = await generateText({
model: aigateway(unified('grok/grok-4')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createUnified } from 'ai-gateway-provider/providers/unified';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const unified = createUnified({ apiKey: '{API_KEY}' });
const { text } = await generateText({
model: aigateway(unified('dynamic/customer-support')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createUnified } from 'ai-gateway-provider/providers/unified';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const unified = createUnified({ apiKey: '{API_KEY}' });
const { text } = await generateText({
model: aigateway(unified('workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createOpenAI } from 'ai-gateway-provider/providers/openai';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const openai = createOpenAI();
const { text } = await generateText({
model: aigateway(openai.chat('gpt-5.2')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createAnthropic } from 'ai-gateway-provider/providers/anthropic';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const anthropic = createAnthropic();
const { text } = await generateText({
model: aigateway(anthropic('claude-4-5-sonnet')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createGoogle } from 'ai-gateway-provider/providers/google';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const google = createGoogle();
const { text } = await generateText({
model: aigateway(google('gemini-2.5-pro')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createXai } from 'ai-gateway-provider/providers/xai';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const xai = createXai();
const { text } = await generateText({
model: aigateway(xai('grok-4')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createUnified } from 'ai-gateway-provider/providers/unified';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const unified = createUnified();
const { text } = await generateText({
model: aigateway(unified('customer-support')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createUnified } from 'ai-gateway-provider/providers/unified';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const unified = createUnified();
const { text } = await generateText({
model: aigateway(unified('@cf/meta/llama-3.3-70b-instruct-fp8-fast')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createOpenAI } from 'ai-gateway-provider/providers/openai';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const openai = createOpenAI({ apiKey: '{API_KEY}' });
const { text } = await generateText({
model: aigateway(openai.chat('gpt-5.2')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createAnthropic } from 'ai-gateway-provider/providers/anthropic';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const anthropic = createAnthropic({ apiKey: '{API_KEY}' });
const { text } = await generateText({
model: aigateway(anthropic('claude-4-5-sonnet')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createGoogle } from 'ai-gateway-provider/providers/google';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const google = createGoogle({ apiKey: '{API_KEY}' });
const { text } = await generateText({
model: aigateway(google('gemini-2.5-pro')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createXai } from 'ai-gateway-provider/providers/xai';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const xai = createXai({ apiKey: '{API_KEY}' });
const { text } = await generateText({
model: aigateway(xai('grok-4')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createUnified } from 'ai-gateway-provider/providers/unified';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const unified = createUnified({ apiKey: '{API_KEY}' });
const { text } = await generateText({
model: aigateway(unified('customer-support')),
prompt: 'What is Cloudflare?',
});import { createAiGateway } from 'ai-gateway-provider';
import { createUnified } from 'ai-gateway-provider/providers/unified';
import { generateText } from "ai";
const aigateway = createAiGateway({
accountId: "{CLOUDFLARE_ACCOUNT_ID}",
gateway: '{GATEWAY_NAME}',
apiKey: '{CF_AIG_TOKEN}',
});
const unified = createUnified({ apiKey: '{API_KEY}' });
const { text } = await generateText({
model: aigateway(unified('@cf/meta/llama-3.3-70b-instruct-fp8-fast')),
prompt: 'What is Cloudflare?',
});AI-привязка со сторонними моделями
Если вы уже используете workers-ai-provider ↗ пакет, вы можете направлять запросы через AI Gateway для вызова сторонних моделей без использования отдельных SDK провайдеров. Передайте gateway опцию с ID вашего шлюза, чтобы createWorkersAI:
import { createWorkersAI } from "workers-ai-provider";
import { streamText } from "ai";
export default {
async fetch(request, env) {
const workersai = createWorkersAI({
binding: env.AI,
gateway: { id: "my-gateway" },
});
const result = streamText({
model: workersai("openai/gpt-4o"),
messages: [{ role: "user", content: "Write a short story" }],
});
return result.toTextStreamResponse();
},
};import { createWorkersAI } from "workers-ai-provider";
import { streamText } from "ai";
export default {
async fetch(request, env) {
const workersai = createWorkersAI({
binding: env.AI,
gateway: { id: "my-gateway" },
});
const result = streamText({
model: workersai("openai/gpt-4o"),
messages: [{ role: "user", content: "Write a short story" }],
});
return result.toTextStreamResponse();
},
} satisfies ExportedHandler<Env>;Это работает с любым поддерживаемые провайдер и модель доступных через AI Gateway.
Fallback Providers
Чтобы задать резервные модели или провайдеров на случай сбоя запросов и повысить надёжность, можно передать массив моделей в model опцию.
const { text } = await generateText({
model: aigateway([openai.chat("gpt-5.1"), anthropic("claude-sonnet-4-5")]),
prompt: "Write a vegetarian lasagna recipe for 4 people.",
});