Alternar tema

Tutorial completo de Workers AI: 10.000 chamadas de modelo por dia e até 90% menos custo que OpenAI

Easton editorial illustration: one compact edge-worker hub with three nearby inference nodes

Minha fatura da OpenAI API já passou de 200 dólares em um mês, e tudo começou com alguns dias de teste de um projeto pequeno. O Workers AI foi uma alternativa que descobri enquanto explorava os recursos de borda da Cloudflare: 10.000 Neurons gratuitos por dia. Rodei um teste pessoal por uma semana e, para conversas do dia a dia, a cota foi suficiente.

Neste artigo, vou mostrar três formas de chamar o Workers AI e quais configurações você precisa alterar ao migrar da OpenAI.

10.000
Neurons gratuitos por dia
Suficiente para projetos pessoais
$0.011
Por 1000 Neurons
Preço pago
60-90%
Economia de custo
Em comparação com OpenAI
50+
Modelos open source
Suportados
Source: Preço oficial do Cloudflare Workers AI (2025)

O que é Workers AI e por que vale atenção?

Em termos simples, Workers AI é o serviço de inferência de inteligência artificial (IA) serverless da Cloudflare. Você não precisa comprar GPU, nem administrar servidores. Com poucas linhas de código, já consegue chamar modelos open source como Llama e Mistral.

Os três pontos mais importantes são:

  1. 10.000 Neurons gratuitos por dia

    • Nos meus testes, isso dá para algumas centenas de conversas; para projetos pessoais, é bem suficiente
    • Usando o modelo Llama 3.1-8B, testei 1000 conversas simples e consumi cerca de 8000 Neurons
  2. Mesmo no pago, o preço é baixo: $0.011/1000 Neurons

    • 60-70% mais barato que o OpenAI GPT-3.5
    • Mais de 90% mais barato que o GPT-4
  3. Aceleração pela rede global de borda

    • A Cloudflare tem mais de 300 pontos de presença
    • A velocidade de resposta é melhor que a de muitos provedores de nuvem

Comparando com outras opções

Você talvez pergunte: algo gratuito funciona bem mesmo? Montei uma tabela para comparar:

SoluçãoCota gratuitaPreço pagoVelocidade de respostaEscolha de modelos
Workers AI10.000 Neurons/dia$0.011/1k NeuronsRápida, por nós de borda50+ modelos open source
OpenAI API$5 para novos usuários, uma vez$0.002/1k tokens (GPT-3.5)MédiaSérie GPT
HuggingFaceChamadas gratuitas limitadasCobrança por modeloMais lentaEnorme variedade de modelos
Servidor próprio-Custo alto de aluguel de GPUDepende da configuraçãoQualquer modelo

Quando faz sentido usar Workers AI?

  • ✅ Projetos pessoais, protótipos e experimentos de aprendizagem
  • ✅ Aplicações em produção de pequeno e médio porte (QPS < 300)
  • ✅ Startups sensíveis a custo

Quando ele pode não ser a melhor escolha?

  • ⚠️ Processamento em lote em grande escala, com centenas de milhares de chamadas por dia
  • ⚠️ Aplicações em tempo real extremamente sensíveis à latência, que precisam de resposta abaixo de 100 ms
  • ⚠️ Cenários que exigem modelos mais recentes no nível do GPT-4

"Teste com Llama 3.1-8B processando conversas em chinês: perguntas simples, com até 100 caracteres, consumiram 5-8 Neurons por chamada; resumos de textos longos, com 1000 caracteres de entrada, consumiram 30-50 Neurons por chamada; geração de código, com 500 linhas, consumiu 20-40 Neurons por chamada."

- Dados medidos pelo autor deste artigo

A cota gratuita dá para usar? Vamos fazer a conta

Esse tal de “Neurons” é a unidade de cobrança definida pela própria Cloudflare. No começo, eu também fiquei confuso. Uma forma simples de entender é:

Neurons = (tokens de entrada + tokens de saída) × coeficiente do modelo

Cada modelo tem um coeficiente diferente:

  • Llama 3.1-8B: coeficiente em torno de 0,8
  • Llama 3.1-70B: coeficiente em torno de 3,5
  • Mistral 7B: coeficiente em torno de 0,7

Quantas chamadas isso representa na prática?

Com esse nível de consumo, 10.000 Neurons por dia dão aproximadamente para:

  • 1000 a 2000 conversas simples
  • 200 a 300 processamentos de texto longo
  • 250 a 500 gerações de código

Sendo bem direto: para uma pessoa desenvolvedora independente, é bastante. Hoje uso Workers AI para rodar um pequeno bot que processa algumas centenas de mensagens por dia, e tudo fica dentro da cota gratuita.

O que acontece se passar da cota gratuita?

Ele passa automaticamente para o modo pago, a $0.011/1000 Neurons.

Fiz uma conta rápida. Mesmo passando da cota, o custo continua baixo:

  • Suponha que você use 50.000 Neurons por dia, 5 vezes a cota gratuita
  • Parte excedente: 40.000 Neurons
  • Custo: 40.000 / 1000 × $0.011 = $0.44/dia
  • Em um mês, isso dá cerca de $13

Comparando com OpenAI: para um volume semelhante, talvez você pague $50-100. O Workers AI realmente sai bem mais barato.

Começo rápido: três formas de chamar Workers AI

Os pré-requisitos são simples:

  1. Criar uma conta Cloudflare (gratuita)
  2. Instalar Node.js (se for usar os métodos dois ou três)

A seguir, vou apresentar três formas de chamada, da mais simples à mais avançada, para você escolher conforme a sua necessidade.

Método 1: o mais simples, direto pela REST API

Esta é a forma mais rápida de experimentar. Você nem precisa escrever código: um comando curl já testa tudo.

Passo 1: obter API Token e Account ID

  1. Entre na Cloudflare e acesse https://dash.cloudflare.com
  2. A barra de endereço mostrará https://dash.cloudflare.com/xxxxxxxxx; essa sequência xxxxxxxxx é o seu Account ID, então copie e guarde
  3. Clique no avatar no canto superior direito → My Profile → API Tokens
  4. Clique em “Create Token” → encontre o template “Workers AI” → “Use template”
  5. Avance até o fim. Será gerado um Token. Ele aparece uma única vez, então salve com cuidado

Passo 2: testar a chamada

Abra o terminal e rode este comando, substituindo pelo seu Account ID e Token:

curl https://api.cloudflare.com/client/v4/accounts/{seu_Account_ID}/ai/run/@cf/meta/llama-3.1-8b-instruct \
  -H "Authorization: Bearer {seu_API_Token}" \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      {"role": "system", "content": "Você é um assistente de IA amigável"},
      {"role": "user", "content": "Apresente o Cloudflare Workers AI em uma frase"}
    ]
  }'

Se você vir um JSON parecido com este, a chamada funcionou:

{
  "result": {
    "response": "Cloudflare Workers AI é uma plataforma serverless de inferência de IA..."
  },
  "success": true
}

Erros comuns:

  • Erro 7003: Token ou Account ID foi preenchido errado. Confira se você copiou tudo
  • Erro 10000: nome do modelo incorreto. O correto é @cf/meta/llama-3.1-8b-instruct; não esqueça o @cf/
  • Timeout: a primeira chamada pode ser mais lenta por causa de cold start. Espere cerca de 10 segundos; depois costuma ficar mais rápido

Método 2: recomendado, implantação com Workers + Wrangler

Esta é a forma recomendada oficialmente. A vantagem é transformar isso em uma API permanente, com configuração mais fácil de manter.

Passo 1: instalar a Wrangler CLI

npm install -g wrangler

Depois, faça login na sua conta Cloudflare:

wrangler login

O navegador será aberto automaticamente para você autorizar. Basta aceitar.

Passo 2: criar um projeto Worker

npm create cloudflare@latest my-ai-worker

Ele fará algumas perguntas. Escolha assim:

  • Select a project type: “Hello World” Worker
  • Do you want to use TypeScript? Depende da sua preferência; eu escolhi No, usando JavaScript
  • Do you want to use git? Yes
  • Do you want to deploy? Escolha No primeiro, e faça o deploy depois de testar

Passo 3: configurar o binding do Workers AI

Entre no diretório do projeto, edite o arquivo wrangler.toml e adicione estas linhas no final:

[ai]
binding = "AI"

Assim, você poderá acessar o serviço Workers AI no código usando env.AI, sem passar Token manualmente.

Passo 4: escrever o código

Edite src/index.js ou index.ts e substitua o conteúdo por isto:

export default {
  async fetch(request, env) {
    // Trata CORS, se você for chamar a API a partir de uma página web
    if (request.method === 'OPTIONS') {
      return new Response(null, {
        headers: {
          'Access-Control-Allow-Origin': '*',
          'Access-Control-Allow-Methods': 'POST',
          'Access-Control-Allow-Headers': 'Content-Type',
        },
      });
    }

    // Aceita apenas requisições POST
    if (request.method !== 'POST') {
      return new Response('Method not allowed', { status: 405 });
    }

    try {
      // Analisa a requisição
      const { messages } = await request.json();

      // Chama o modelo de IA
      const response = await env.AI.run('@cf/meta/llama-3.1-8b-instruct', {
        messages: messages || [
          { role: 'user', content: 'Hello!' }
        ]
      });

      // Retorna o resultado
      return new Response(JSON.stringify(response), {
        headers: {
          'Content-Type': 'application/json',
          'Access-Control-Allow-Origin': '*',
        },
      });

    } catch (error) {
      return new Response(JSON.stringify({ error: error.message }), {
        status: 500,
        headers: { 'Content-Type': 'application/json' },
      });
    }
  },
};

Passo 5: testar localmente

wrangler dev

Isso inicia um servidor local, normalmente em http://localhost:8787.

Teste com curl:

curl http://localhost:8787 \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      {"role": "user", "content": "Apresente você mesmo"}
    ]
  }'

Se a resposta vier normalmente, você já pode fazer o deploy.

Passo 6: implantar em produção

wrangler deploy

Depois do deploy, ele fornecerá um domínio *.workers.dev, por exemplo:

https://my-ai-worker.your-name.workers.dev

Esse será o endereço da sua API de IA, acessível de qualquer lugar.

Método 3: migração sem atrito usando OpenAI SDK

Se você já usava a OpenAI API e quer trocar para Workers AI, este é o método mais prático: quase não precisa alterar o código.

O Workers AI oferece um endpoint compatível com OpenAI. Você só precisa mudar o baseURL.

import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: process.env.CLOUDFLARE_API_TOKEN, // Use seu Cloudflare Token
  baseURL: `https://api.cloudflare.com/client/v4/accounts/${process.env.ACCOUNT_ID}/ai/v1`,
});

// A chamada é igual à da OpenAI
const chatCompletion = await client.chat.completions.create({
  model: '@cf/meta/llama-3.1-8b-instruct', // Troque pelo nome do modelo no Workers AI
  messages: [
    { role: 'system', content: 'Você é um assistente de IA amigável' },
    { role: 'user', content: 'Hello!' }
  ],
});

console.log(chatCompletion.choices[0].message.content);

Pontos de atenção:

  • apiKey usa o API Token da Cloudflare
  • baseURL deve apontar para o endpoint do Workers AI
  • model deve ser um modelo suportado pelo Workers AI, com @cf/ no início

Eu tinha um projeto Next.js usando OpenAI. A migração para Workers AI levou só 10 minutos: bastou alterar esses três pontos.

Quais modelos posso usar? Como escolher?

Hoje o Workers AI suporta mais de 50 modelos. Separei alguns dos mais comuns para apresentar.

Modelos de geração de texto, os mais usados

ModeloParâmetrosCaracterísticasCenários recomendadosID do modelo
Llama 3.18BBom equilíbrio e resposta rápidaConversas do dia a dia, atendimento, resumo@cf/meta/llama-3.1-8b-instruct
Llama 3.170BQualidade mais alta, um pouco mais lentoRaciocínio complexo, textos longos@cf/meta/llama-3.1-70b-instruct
Mistral 7B v0.27BContexto de 32kAnálise de documentos longos@cf/mistral/mistral-7b-instruct-v0.2
DeepSeek-R132BForte capacidade de raciocínioMatemática, código, lógica@cf/deepseek/deepseek-r1-distill-qwen-32b

Minha sugestão de escolha:

  1. Para começar, use Llama 3.1-8B

    • Responde rápido, em 1-2 segundos
    • A qualidade é suficiente e não fica atrás do GPT-3.5
    • Consome menos da cota gratuita
  2. Se precisar de mais qualidade, use Llama 3.1-70B ou DeepSeek-R1

    • Raciocínio mais forte
    • Qualidade de geração próxima ao GPT-4
    • É mais lento, cerca de 3-5 segundos, e consome 3-4 vezes mais
  3. Para análise de documentos longos, use Mistral 7B v0.2

    • Suporta janela de contexto de 32k; o Llama 3.1 tem apenas 8k
    • Serve bem para artigos longos e bases grandes de código

Casos práticos: três exemplos reais

Caso 1: construir uma API inteligente de perguntas e respostas, a opção mais simples

Cenário: adicionar um atendimento por IA ao seu blog ou site de documentação.

Código completo, baseado no método 2:

export default {
  async fetch(request, env) {
    // Permite chamadas cross-origin
    const corsHeaders = {
      'Access-Control-Allow-Origin': '*',
      'Access-Control-Allow-Methods': 'POST, OPTIONS',
      'Access-Control-Allow-Headers': 'Content-Type',
    };

    if (request.method === 'OPTIONS') {
      return new Response(null, { headers: corsHeaders });
    }

    try {
      const { question } = await request.json();

      // Você pode adicionar o contexto do seu site ao prompt de system
      const messages = [
        {
          role: 'system',
          content: 'Você é um assistente de IA de um blog técnico. Responda principalmente perguntas sobre desenvolvimento Web e aplicações de IA. As respostas devem ser concisas e amigáveis.'
        },
        {
          role: 'user',
          content: question
        }
      ];

      const response = await env.AI.run(
        '@cf/meta/llama-3.1-8b-instruct',
        { messages }
      );

      return new Response(
        JSON.stringify({ answer: response.response }),
        { headers: { ...corsHeaders, 'Content-Type': 'application/json' } }
      );

    } catch (error) {
      return new Response(
        JSON.stringify({ error: 'Falha ao processar. Tente novamente mais tarde.' }),
        { status: 500, headers: { ...corsHeaders, 'Content-Type': 'application/json' } }
      );
    }
  }
};

Estimativa de custo: supondo 200 perguntas de usuários por dia, com 10 Neurons por conversa, o total fica em 2000 Neurons, totalmente dentro da cota gratuita.

Caso 2: geração em lote de resumos de texto

Cenário: você tem vários artigos que precisam de resumo, como em RSS, curadoria ou captura de notícias.

async function generateSummary(text, env) {
  const messages = [
    {
      role: 'system',
      content: 'Você é um assistente profissional de resumo de textos. Resuma o artigo fornecido pelo usuário em 2 a 3 frases, destacando as ideias principais.'
    },
    {
      role: 'user',
      content: `Resuma o artigo abaixo:\n\n${text}`
    }
  ];

  const response = await env.AI.run(
    '@cf/meta/llama-3.1-8b-instruct',
    {
      messages,
      max_tokens: 150 // Limita o tamanho da saída e economiza Neurons
    }
  );

  return response.response;
}

Atenção ao limite de taxa:

  • O limite do Llama 3.1-8B é de 300 requisições por minuto
  • Para processamento em lote, adicione atraso ou use uma fila

Exemplo de cálculo de custo:

  • Suponha que cada artigo tenha 1000 caracteres e gere um resumo de 100 caracteres
  • Cada chamada consome cerca de 30 Neurons
  • Processar 300 artigos = 9000 Neurons, ainda dentro da cota gratuita

Caso 3: serviço de tradução multilíngue

Cenário: criar uma ferramenta de tradução ou adicionar suporte internacional ao seu aplicativo.

async function translate(text, targetLang, env) {
  const messages = [
    {
      role: 'system',
      content: `Você é um assistente profissional de tradução. Traduza a entrada do usuário para ${targetLang}, mantendo o estilo e o tom do texto original. Retorne apenas a tradução, sem nenhuma explicação.`
    },
    {
      role: 'user',
      content: text
    }
  ];

  const response = await env.AI.run(
    '@cf/meta/llama-3.1-8b-instruct',
    { messages }
  );

  return response.response;
}

Comparação de custo:

  • Google Cloud Translation API: $20 por milhão de caracteres
  • Workers AI (Llama 3.1): cerca de $1.65 por milhão de caracteres

Fica mais de 10 vezes mais barato.

Conclusão: vale a pena testar Workers AI?

Depois de um mês de testes, minha conclusão é: para pessoas desenvolvedoras independentes e equipes pequenas, vale muito a pena.

Vantagens:

  • ✅ Cota gratuita generosa, com 10.000 Neurons por dia
  • ✅ Preço pago baixo, 60-90% mais barato que OpenAI
  • ✅ Começo simples, com REST API e interface compatível com OpenAI
  • ✅ Boa velocidade de resposta, graças à rede global de borda
  • ✅ Muitas opções de modelo, com mais de 50 modelos open source

Minha recomendação:

  1. Em projetos pessoais, use direto, porque a cota gratuita costuma bastar e ainda elimina custo de servidor
  2. Em projetos de startup, dá para começar com ele e considerar migração para outras soluções quando a escala crescer
  3. Em aplicações corporativas, avalie com cautela, considerando SLA, conformidade de dados e outros requisitos

Se você também está procurando uma solução de IA de baixo custo, vale testar Workers AI. Criar a conta leva 5 minutos; rodar o primeiro exemplo leva uns 15 minutos. Talvez encaixe muito bem no seu caso.


FAQ

A cota gratuita do Workers AI é suficiente?
A cota gratuita de 10.000 Neurons por dia permite processar:
• 1000 a 2000 conversas simples
• 200 a 300 resumos de textos longos
• 250 a 500 gerações de código

Para projetos pessoais e aplicações pequenas, costuma ser suficiente.
Quanto o Workers AI economiza em relação à OpenAI?
O preço pago é de $0.011/1000 Neurons:
• 60-70% mais barato que o OpenAI GPT-3.5
• Mais de 90% mais barato que o GPT-4

Comparação de custo:
• Supondo 50.000 Neurons por dia, o custo mensal fica em torno de $13
• Na OpenAI, volume semelhante pode custar $50-100
Como migrar da OpenAI para o Workers AI?
O Workers AI oferece uma interface compatível com OpenAI. Você só precisa alterar 3 pontos:

1) Trocar apiKey pelo Cloudflare Token

2) Trocar baseURL pelo endpoint do Workers AI

3) Trocar model por um modelo compatível com Workers AI, como @cf/meta/llama-3.1-8b-instruct
Quais modelos o Workers AI suporta?
Ele suporta mais de 50 modelos open source. Entre os mais usados estão:
• Llama 3.1 (8B/70B)
• Mistral 7B (contexto de 32k)
• DeepSeek-R1 (forte em raciocínio)
• Stable Diffusion XL (geração de imagens)
• Whisper (reconhecimento de fala), entre outros
Como começar a usar Workers AI?
Há três caminhos:

1) REST API, o mais simples, testável com curl

2) Implantação com Workers + Wrangler, recomendada para publicar uma API permanente

3) Compatibilidade com OpenAI SDK, ideal para migrar da OpenAI

Depois de criar uma conta Cloudflare, dá para começar em 5 a 15 minutos.

11 min de leitura · Publicado em: 21 nov 2025 · Atualizado em: 14 jul 2026

Comentários

Entre com GitHub para comentar

Easton BlogEaston Blog