Qué es Cloudflare Workers AI
Cloudflare Workers AI es un servicio que permite ejecutar inferencia de IA en el edge. Ejecuta modelos en centros de datos de todo el mundo, proporcionando funciones de IA con baja latencia.
Referencia: Cloudflare Workers AI
Nuevos modelos añadidos
Modelos disponibles (finales de 2024)
| Categoría | Modelo | Uso |
|---|---|---|
| LLM | Llama 3.2 | Generación de texto |
| LLM | Mistral 7B | Inferencia rápida |
| LLM | Gemma 2 | Multilingüe |
| Imagen | Stable Diffusion XL | Generación de imágenes |
| Imagen | FLUX.1 | Generación de imágenes de alta calidad |
| Audio | Whisper | Reconocimiento de voz |
| Embedding | BGE | Vectorización |
Ejemplo de uso
// Inferencia con Workers AI
export default {
async fetch(request, env) {
const response = await env.AI.run('@cf/meta/llama-3.2-3b-instruct', {
messages: [
{ role: 'user', content: 'Cuéntame las características de Cloudflare' }
],
max_tokens: 512
});
return new Response(JSON.stringify(response));
}
};
Referencia: Workers AI Models
Vectorize GA (Versión oficial)
Base de datos vectorial
Almacena vectores de embeddings y ejecuta búsquedas de similitud.
// Creación de Vectorize (wrangler CLI)
// wrangler vectorize create my-index --dimensions=768 --metric=cosine
// Inserción de vectores
export default {
async fetch(request, env) {
// Convertir texto a embedding
const embedding = await env.AI.run('@cf/baai/bge-base-en-v1.5', {
text: 'Edge computing de Cloudflare'
});
// Guardar en Vectorize
await env.VECTORIZE.insert([{
id: 'doc-1',
values: embedding.data[0],
metadata: { title: 'Cloudflare Edge' }
}]);
return new Response('Inserted');
}
};
Búsqueda de similitud
// Búsqueda de documentos similares
const queryEmbedding = await env.AI.run('@cf/baai/bge-base-en-v1.5', {
text: 'Inferencia de IA en el edge'
});
const results = await env.VECTORIZE.query(queryEmbedding.data[0], {
topK: 5,
returnMetadata: true
});
// results: [{ id: 'doc-1', score: 0.95, metadata: {...} }, ...]
Referencia: Cloudflare Vectorize
AI Gateway
Gestión y monitorización de APIs
Gestiona múltiples proveedores de IA de forma unificada.
// Solicitud a través de AI Gateway
const response = await fetch(
'https://gateway.ai.cloudflare.com/v1/account-id/gateway-name/openai/chat/completions',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${OPENAI_API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'gpt-4',
messages: [{ role: 'user', content: 'Hello' }]
})
}
);
Funciones principales
| Función | Descripción |
|---|---|
| Caching | Cachea resultados de solicitudes idénticas |
| Rate limiting | Limitación de solicitudes API |
| Retry | Reintentos automáticos en caso de fallo |
| Fallback | Cambio a proveedor alternativo |
| Logging | Registro de todas las solicitudes |
// Configuración de fallback
{
"providers": [
{ "provider": "openai", "model": "gpt-4" },
{ "provider": "anthropic", "model": "claude-3-sonnet" }
],
"fallback": true
}
Referencia: AI Gateway
AutoRAG (Preview)
Pipeline RAG automático
Solo sube documentos y construye un sistema RAG.
// Configuración de AutoRAG
export default {
async fetch(request, env) {
// Indexar documento
await env.AUTORAG.index({
content: 'Cloudflare es la red edge más grande del mundo...',
metadata: { source: 'docs', title: 'About Cloudflare' }
});
// Responder pregunta
const answer = await env.AUTORAG.query({
question: '¿Qué es Cloudflare?',
max_tokens: 256
});
return new Response(JSON.stringify(answer));
}
};
Estructura de precios
Workers AI
| Plan | Neurons | Precio |
|---|---|---|
| Gratis | 10,000/día | $0 |
| Pago por uso | Ilimitado | $0.011/1,000 neurons |
Vectorize
| Elemento | Nivel gratuito | De pago |
|---|---|---|
| Número de vectores | 200,000 | Ilimitado |
| Consultas/mes | 30M | $0.01/1M |
| Almacenamiento | 1GB | $0.05/GB |
Referencia: Precios de Cloudflare
Rendimiento
Comparación de latencia
| Región | Servidor central | Cloudflare Edge |
|---|---|---|
| Tokio | 200ms | 20ms |
| Nueva York | 50ms | 15ms |
| Londres | 100ms | 18ms |
Throughput
Llama 3.2 3B: ~50 tokens/seg
Mistral 7B: ~30 tokens/seg
Whisper: 2x velocidad en tiempo real
Ejemplo de implementación: Chatbot RAG
export default {
async fetch(request, env) {
const { question } = await request.json();
// 1. Convertir pregunta a embedding
const questionEmbedding = await env.AI.run('@cf/baai/bge-base-en-v1.5', {
text: question
});
// 2. Buscar documentos relacionados
const docs = await env.VECTORIZE.query(questionEmbedding.data[0], {
topK: 3,
returnMetadata: true
});
// 3. Generar respuesta con contexto
const context = docs.matches.map(d => d.metadata.content).join('\n');
const answer = await env.AI.run('@cf/meta/llama-3.2-3b-instruct', {
messages: [
{ role: 'system', content: `Responde usando la siguiente información:\n${context}` },
{ role: 'user', content: question }
]
});
return Response.json({ answer: answer.response });
}
};
Resumen
Cloudflare Workers AI continúa evolucionando como una opción potente para inferencia de IA en el edge.
- Diversos modelos: LLM, imagen, audio, embeddings
- Vectorize GA: Versión oficial de base de datos vectorial
- AI Gateway: Gestión multi-proveedor
- Baja latencia: Menos de 20ms en todo el mundo
Vale la pena considerarlo al construir aplicaciones de IA serverless y escalables.
← Volver a la lista