Function Calling y Chatbots Serverless con Cloudflare Workers AI y Llama 3.3/Qwen

Las aplicaciones modernas de IA requieren Function Calling (Llamada a herramientas) para interactuar con APIs externas y bases de datos D1.
Cloudflare Workers AI ofrece soporte nativo para Function Calling ejecutando modelos como Llama 3.3 70B y Qwen 2.5 72B directamente en el Edge sin necesidad de gestionar servidores con GPU.
En este artículo se muestra cómo estructurar herramientas con JSON Schema y construir un ciclo de agente en TypeScript.
Resumen Clave
- Inferencia IA Serverless: Llama 3.3 y Qwen 2.5 en los PoPs del Edge con
env.AI.run().- Soporte Nativo: El modelo devuelve la función a ejecutar y sus parámetros formateados en JSON.
- Ahorro de Costos: Hasta un 80% más económico en comparación con APIs propietarias.
Ejemplo de Código en TypeScript
export interface Env {
AI: Ai;
DB: D1Database;
}
const tools = [
{
name: "get_weather",
description: "Obtener el clima de una ciudad.",
parameters: {
type: "object",
properties: {
location: { type: "string" },
},
required: ["location"],
},
},
];
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const { prompt } = await request.json<{ prompt: string }>();
const messages = [{ role: "user", content: prompt }];
let response = await env.AI.run(
"@cf/meta/llama-3.3-70b-instruct-fp8-fast",
{ messages, tools }
);
if (response.tool_calls?.length > 0) {
for (const toolCall of response.tool_calls) {
const toolResult = { location: toolCall.arguments.location, temp: "22C" };
messages.push({ role: "assistant", tool_calls: [toolCall] });
messages.push({ role: "tool", name: toolCall.name, content: JSON.stringify(toolResult) });
}
response = await env.AI.run(
"@cf/meta/llama-3.3-70b-instruct-fp8-fast",
{ messages }
);
}
return Response.json({ answer: response.response });
},
};
Conclusión
Cloudflare Workers AI simplifica la creación de agentes autónomos rápidos, económicos y serverless.