Sobre o projeto

## Visão Geral do Projeto **cf-workers-ai-gateway** é um gateway de inferência de IA leve e de zero custo, projetado para maximizar o uso das cotas gratuitas do **Cloudflare Workers AI**. Ele encapsula vários modelos de código aberto fornecidos pela Cloudflare (como Qwen3, GPT-OSS) em uma **API compatível com OpenAI**, permitindo que os usuários interajam com IA de alta qualidade sem pagar nada, usando qualquer cliente que suporte o protocolo OpenAI (por exemplo, Cherry Studio, LobeChat, Open WebUI, Codex CLI). Ao contrário dos gateways de agregação de vários fornecedores (como One-API, LiteLLM), este projeto não agrega APIs pagas; em vez disso, ele se concentra em **“espremer” o valor de um único fornecedor gratuito (Cloudflare Workers AI)**. Por meio de rotação de várias contas, roteamento consciente de custos e mecanismos de disjuntor inteligentes, ele permite que usuários individuais executem centenas ou até milhares de inferências de IA por dia sem gastar um centavo. ## Recursos Principais ### 1. Zero Custo e Agregação de Cotas - **Utilização de Cota Gratuita:** Cada conta Cloudflare fornece 10.000 Neurons por dia. Este projeto suporta a agregação de até 5 contas, totalizando 50.000 Neurons por dia. - **Execução Gratuita de Modelos de Alto Desempenho:** Com a agregação de cotas, os usuários podem executar gratuitamente cerca de 150 vezes o modelo de ponta `qwen3.8-27b` (AA Intelligence Index 52, top 6% global) ou milhares de vezes modelos mais leves como `qwen3-30b-a3b-fp8`. ### 2. Rotação Inteligente de Múltiplas Contas - **Rotação de Fatias de Tempo:** O gateway alterna automaticamente a conta preferida a cada 10 minutos para garantir o consumo uniforme da cota, evitando que uma única conta se esgote cedo demais. - **Design Sem Estado:** Utiliza um algoritmo de fatia de tempo em vez de contadores de memória, tornando-o adequado para implantações em ambientes Serverless como Vercel, onde a consistência da rotação é mantida sem estado compartilhado. ### 3. Roteamento Consciente de Custos e Disjuntor em Camadas - **Sistema de Níveis:** Os modelos são abstraídos em três níveis: `fast` (padrão, baixo custo), `eco` (econômico) e `smart` (alto desempenho, alto custo). O roteamento padrão é para o nível `fast` para economizar cotas, enquanto os usuários podem especificar o nível `smart` para tarefas de inferência complexas. - **Disjuntor em Camadas:** Implementa diferentes estratégias de resfriamento para vários tipos de erros (esgotamento de cota, limite de taxa, erros de rede). Por exemplo, após o esgotamento da cota, ele usa uma “recuperação de sondagem”, tentando novamente a cada hora até que a cota da Cloudflare seja redefinida. - **Roteamento em Camadas para Grandes Solicitações:** Ajusta automaticamente o limite de solicitação com base na janela de contexto do modelo. Se uma solicitação for muito grande, ela primeiro tenta cortar mensagens históricas; se ainda exceder o limite, ela é rebaixada automaticamente para um modelo com uma janela de contexto maior. ### 4. Unificação e Otimização de Protocolo - **Compatibilidade com OpenAI:** Totalmente compatível com as APIs Chat Completions e Responses, incluindo suporte para saída de streaming (SSE). - **Compressão de Chain of Thought:** Para modelos da série Qwen3, injeta automaticamente o soft-switch `/no_think`, reduzindo significativamente o consumo de tokens de saída de raciocínio (de 165 caracteres para 2 caracteres), sem afetar a funcionalidade de chamada de ferramenta. - **Padronização de Formato:** Processa automaticamente os campos `reasoning` nativos da Cloudflare, `tool_calls` duplicados e problemas de linha em branco SSE, garantindo que a saída esteja em estrita conformidade com as especificações da OpenAI. ## Primeiros Passos ### 1. Obtenha Credenciais da Cloudflare 1. Registre-se em uma conta [Cloudflare](https://dash.cloudflare.com/sign-up). 2. Crie um Token de API: Vá para **My Profile → API Tokens → Create Token** e selecione o modelo “Workers AI”. 3. Anote o `Account ID` e o `API Token`. 4. (Opcional) Registre várias contas para agregar cotas, até 5 no total. ### 2. Configure e Inicie ```bash cp .env.example .env # Edite .env para inserir CF_ACCOUNT_ID, CF_API_TOKEN e JY_AI_KEY node server.js ``` O serviço é executado por padrão em `http://localhost:3000`. ### 3. Teste ```bash curl http://localhost:3000/api/v1/chat/completions \ -H