Aller au contenu

AI Providers

Disponible en anglais

Exécutez des modèles IA depuis Workers avec le bon fournisseur pour la tâche. L’inférence native Cloudflare est le défaut ; utilisez TanStack AI pour le chat applicatif, le streaming, les outils et l’état d’agent, puis routez vers des fournisseurs externes quand vous avez besoin de modèles spécifiques, de fallbacks ou d’une observabilité centralisée.

FournisseurÀ utiliser quand
Workers AI (@cloudflare/tanstack-ai)Défaut pour l’inférence edge Cloudflare. Pas de latence due à un routage hors du réseau CF.
Cloudflare AI Gateway (@cloudflare/tanstack-ai)Vous avez besoin de cache, retries, fallback entre fournisseurs ou observabilité unifiée.
Replicate (adaptateur TanStack AI ou via AI Gateway)Modèles de génération d’images non disponibles sur Workers AI.

Inférence GPU serverless sur le réseau Cloudflare. Disponible directement depuis Workers avec un binding ai.

Fenêtre de terminal
pnpm add @tanstack/ai @cloudflare/tanstack-ai
wrangler.jsonc
{
"ai": { "binding": "AI" }
}
import { chat, streamToText } from "@tanstack/ai";
import { createWorkersAiChat } from "@cloudflare/tanstack-ai";
type Env = { AI: Ai };
export default {
async fetch(_: Request, env: Env) {
const stream = chat({
adapter: createWorkersAiChat("@cf/meta/llama-3.1-8b-instruct", { binding: env.AI }),
messages: [{ role: "user", content: "Explain edge computing in one sentence." }],
});
return new Response(await streamToText(stream));
},
};
import { chat, streamToText } from "@tanstack/ai";
import { createWorkersAiChat } from "@cloudflare/tanstack-ai";
import { z } from "zod";
const RecipeSchema = z.object({
recipe: z.object({
ingredients: z.array(z.string()),
description: z.string(),
}),
});
const stream = chat({
adapter: createWorkersAiChat("@cf/meta/llama-3.1-8b-instruct", { binding: env.AI }),
messages: [{ role: "user", content: "Generate a lasagna recipe as JSON." }],
});
return Response.json(RecipeSchema.parse(JSON.parse(await streamToText(stream))));
import { chat, toServerSentEventsResponse } from "@tanstack/ai";
import { createWorkersAiChat } from "@cloudflare/tanstack-ai";
const stream = chat({
adapter: createWorkersAiChat("@cf/meta/llama-3.1-8b-instruct", { binding: env.AI }),
messages: [{ role: "user", content: "Write a haiku about cloud computing." }],
});
return toServerSentEventsResponse(stream);

Flux de requete AI Gateway

Routez les requêtes vers plusieurs fournisseurs via une passerelle unique. Obtenez cache, retries, rate limiting, contrôles de dépense et fallback sans modifier les call sites. En production, préférez AI Gateway BYOK / clés fournisseur stockées afin que Workers et agents IA référencent des clés approuvées sans lire les valeurs en clair.

Fenêtre de terminal
pnpm add @tanstack/ai @cloudflare/tanstack-ai

Répartition de propriété recommandée :

  • Les responsables sécurité/admins créent et font tourner les clés fournisseur stockées.
  • Les développeurs référencent les routes gateway ou noms de clés stockées dans le code.
  • Les agents peuvent éditer le code de routage/config, mais ne doivent pas recevoir les clés fournisseur brutes.
  • Les budgets et limites de débit gateway sont obligatoires pour les boucles d’agents autonomes.
import { createAnthropicChat, createOpenAiChat } from "@cloudflare/tanstack-ai";
const claude = createAnthropicChat("claude-haiku-4-5", {
binding: env.AI.gateway("my-gateway"),
// Prefer a stored provider key / gateway route in production.
// Use env keys only for dev or providers that still require direct signing.
apiKey: env.ANTHROPIC_API_KEY,
});
const gpt = createOpenAiChat("gpt-4o-mini", {
binding: env.AI.gateway("my-gateway"),
apiKey: env.OPENAI_API_KEY,
});
// Keep fallback selection in application code so behavior is explicit.
const adapters = [claude, gpt];
import { chat } from "@tanstack/ai";
import { createWorkersAiChat } from "@cloudflare/tanstack-ai";
const stream = chat({
adapter: createWorkersAiChat("@cf/meta/llama-3.1-8b-instruct", {
binding: env.AI.gateway("my-gateway"),
gateway: {
cacheTtl: 3600,
skipCache: false,
},
}),
messages: [{ role: "user", content: "Classify this email as urgent or not." }],
});
FournisseurModèles
OpenAIGPT-4o, GPT-4o-mini, o1, o3
AnthropicClaude 3.5, Claude 3
DeepSeekDeepSeek Chat
Google AIGemini
Grokmodèles xAI
Mistralmodèles Mistral
PerplexitySonar
ReplicateFlux, Ideogram, Stable Diffusion
GroqLlama, Mixtral

Idéal pour les modèles de génération d’images absents de Workers AI. Préférez router Replicate via Cloudflare AI Gateway pour le cache, le fallback et l’observabilité centralisée. Si aucun adaptateur TanStack AI direct n’est disponible pour le workflow image exact, appelez Replicate depuis un service serveur étroit plutôt que d’ajouter un second toolkit IA juste pour les images.

import { createOpenAiChat } from "@cloudflare/tanstack-ai";
// For OpenAI-compatible image providers routed through AI Gateway, keep the
// gateway configuration in one server-side adapter module.
const imageAdapter = createOpenAiChat("recraft-ai/recraft-v3", {
binding: env.AI.gateway("my-gateway"),
apiKey: env.REPLICATE_API_TOKEN,
});
const response = await fetch("https://api.replicate.com/v1/predictions", {
method: "POST",
headers: {
Authorization: `Bearer ${env.REPLICATE_API_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
version: "black-forest-labs/flux-fill-pro",
input: {
prompt: "Replace the background with a sunset over mountains",
image: inputImageUrl,
mask: maskImageUrl,
guidance_scale: 7.5,
num_inference_steps: 30,
},
}),
});
ModèleFournisseurIdéal pour
@cf/meta/llama-3.1-8b-instructWorkers AIRapide, économique, inférence edge
@cf/meta/llama-3.1-70b-instructWorkers AIQualité supérieure, toujours serverless
kimi-k2.5Workers AIContexte long (256k), tool calling, vision
gpt-oss-120bWorkers AIOpen-weight, raisonnement élevé
mistral-small-3.1-24b-instructWorkers AIVision + contexte long (128k)
qwen3-30b-a3b-fp8Workers AIRaisonnement, function calling, multilingue
deepseek-r1-distill-qwen-32bWorkers AIBons benchmarks de raisonnement
qwq-32bWorkers AIRaisonnement chain-of-thought
llama-4-scout-17b-16e-instructWorkers AIMoE multimodal, 16 experts
ModèleFournisseurIdéal pour
@cf/qwen/qwen2.5-coder-32b-instructWorkers AISpécifique code, 32B params
@cf/meta/llama-3.1-8b-instructWorkers AIAssistance code légère
ModèleFournisseurIdéal pour
@cf/baai/bge-base-en-v1.5Workers AIEmbeddings anglais généraux
@cf/baai/bge-large-en-v1.5Workers AIEmbeddings de meilleure qualité
@cf/google/gemma-3-embedding-300mWorkers AILéger, multilingue
@cf/qwen/qwen3-embedding-0.6bWorkers AIEmbedding compact
ModèleFournisseur
@cf/baai/bge-reranker-baseWorkers AI
ModèleFournisseurIdéal pour
@cf/black-forest-labs/flux-2-klein-9bWorkers AIDistillé rapide, interactif
@cf/black-forest-labs/flux-2-devWorkers AIHaute qualité, multi-référence
@cf/Flux.1/schnellWorkers AIVitesse (1-4 étapes)
black-forest-labs/flux-1.1-pro-ultraReplicateQualité maximale, coût élevé
black-forest-labs/flux-schnellReplicateTravail local/image rapide
recraft-ai/recraft-v3ReplicateGénération SVG
ideogram-ai/ideogram-v2-turboReplicateRendu de texte dans les images
luma/photonReplicateGénération photoréaliste
stability-ai/stable-diffusion-3.5-largeReplicateCompositions complexes
ModèleFournisseurIdéal pour
@cf/openai/whisper-large-v3-turboWorkers AISpeech-to-text, multilingue
@cf/deepgram/nova-3Workers AIASR rapide
@cf/deepgram/aura-2-enWorkers AITTS naturel
@cf/myshell-ai/melottsWorkers AITTS multilingue léger
@cf/deepgram/fluxWorkers AIParole conversationnelle
ModèleFournisseurIdéal pour
@cf/meta/llama-3.2-11b-vision-instructWorkers AICompréhension d’image
@cf/google/gemma-3-12b-itWorkers AIMultimodal, 140+ langues
@cf/llava-hf/llava-1.5-7b-hfWorkers AIImage-to-text (beta)
kimi-k2.5Workers AIContexte long, tool calling, vision
  • Votre cible d’inférence principale.
  • Aucune latence de routage externe.
  • Serverless, paiement à la requête, pas de gestion GPU.
  • BYOK / clés fournisseur stockées que développeurs et agents ne peuvent pas lire.
  • Budgets et limites de débit pour les boucles d’agents autonomes.
  • Cache pour réduire le coût des prompts répétés.
  • Logique de retry avec backoff exponentiel.
  • Fallback automatique entre modèles ou fournisseurs.
  • Observabilité unifiée sur tous les appels IA.
  • Routage multi-fournisseur sans modifier les call sites.
  • Modèles absents de Workers AI (Flux Pro, Ideogram V2, Recraft V3, etc.).
  • Capacités spécifiques de génération d’images (inpainting, multi-référence, styles fine-tuned).
  • Génération d’images à gros volume où la tarification Replicate convient mieux.
  • Vous voulez cache et retries sur les appels de génération d’images.
  • Vous avez besoin d’un fallback de Replicate vers Workers AI pour les tâches texte.
  • Vous voulez des logs centralisés sur tous les fournisseurs.