Outro Tutorial Enquanto Eu Termino Alguns Bots (Atualizado Com Script)
Traduzido do inglês·
66
74
by:@Melancholux
PROXY DE IA GRATUITO DO JANITORAI · GUIA CLOUDFLARE PASSO A PASSO
☁ LABORATÓRIO DE PROXIES GRATUITOS DA MELGUIA / OUTUBRO DE 2026 · EDIÇÃO DA COMUNIDADE
PLANO GRATUITO · WORKER AUTO-HOSPEDADO · MULTIMODELO SEU PRÓPRIO PROXY DE IA Cloudflare Workers AI × JanitorAI
Um Worker. Cinco modelos. Nenhuma assinatura mensal necessária para uso dentro dos limites gratuitos elegíveis.
Um Worker. Cinco modelos. Nenhuma assinatura mensal necessária para uso dentro dos limites gratuitos elegíveis.
AMIGÁVEL PARA INICIANTESSEM GPU LOCAL10.000 NEURÔNIOS / DIATROCA DE MODELOSHai hai, gente! 🌸 Fiz isto para que vocês possam construir e entender o próprio proxy em vez de depender do de outra pessoa.
ANTES DE COMEÇAR — O QUE ESTE TUTORIAL FAZ
Vamos criar um Cloudflare Worker gratuito, guardar seu token privado da Cloudflare em Secrets, adicionar um proxy protegido compatível com OpenAI, escolher um modelo e conectá-lo ao JanitorAI. As imagens ilustram as etapas, e o script real do Worker está incluído abaixo para você copiar.
É gratuito dentro da cota diária da conta, não ilimitado nem garantido de suportar todo modelo em toda conta. Nunca publique tokens de API nem sua senha do proxy.
É gratuito dentro da cota diária da conta, não ilimitado nem garantido de suportar todo modelo em toda conta. Nunca publique tokens de API nem sua senha do proxy.
SEÇÃO 01 // MANUAL CLOUD O que você precisa Sua lista de verificação de configuração
Uma conta Cloudflare gratuita
Crie uma em dash.cloudflare.com. Seu Worker roda online; seu PC não precisa ficar ligado.
Uma conta JanitorAI
Use um chat/personagem onde proxies personalizados sejam suportados.
Uma senha privada segura
Você mesmo cria esta. Ela se torna a PROXY_KEY, que é separada do token de API da Cloudflare.
Cota gratuita: A Cloudflare Workers AI documenta atualmente 10.000 Neurônios grátis/dia, reiniciando às 00:00 UTC. Os comprimentos de entrada/saída e a escolha do modelo alteram o consumo. No limite, você receberá um erro até a cota reiniciar ou você mudar de plano.
SEÇÃO 02 // MANUAL CLOUD Implante seu Cloudflare Worker Crie o pequeno servidor que encaminhará as requisições
CAPTURA 01 · PAINEL DA CLOUDFLAREREFERÊNCIA VISUAL
Use esta captura como orientação visual para o painel. Os rótulos podem mudar com o tempo.
Vá ao painel da Cloudflare → Workers & Pages → Create. Crie um Worker com o modelo inicial, nomeie-o algo como janitor-free-proxy e pressione Deploy.
CAPTURA 02 · CONFIGURAÇÃO DO WORKERREFERÊNCIA VISUAL
Siga os prompts atuais de criação de Worker até a Cloudflare lhe dar um endereço *.workers.dev.
https://janitor-free-proxy.YOUR-SUBDOMAIN.workers.dev
SEÇÃO 03 // MANUAL CLOUD Obtenha seu token do Workers AI Este token é privado; ele nunca pertence ao JanitorAI
CAPTURA 03 · WORKERS AI / TOKENREFERÊNCIA VISUAL
Encontre o Workers AI e a área de REST API / criação de token no seu painel.
Abra AI → Workers AI e procure por Use REST API ou uma ação de criação de token de API. Crie um token com acesso ao Workers AI, e copie seu Cloudflare Account ID.
REGRA DE SEGURANÇA
O token de API da Cloudflare é um segredo do servidor. NÃO o cole no JanitorAI, Discord ou código público. O JanitorAI receberá apenas uma senha privada diferente (PROXY_KEY).
SEÇÃO 04 // MANUAL CLOUD Adicione 3 configurações ao Worker Um Cloudflare Account ID mais dois Secrets
CAPTURA 04 · VARIÁVEIS & SECRETSREFERÊNCIA VISUAL
Dentro do seu Worker, abra Settings → Variables and Secrets.
CLOUDFLARE_ACCOUNT_ID — Text: seu ID de conta
CLOUDFLARE_API_TOKEN — Secret: o token da Cloudflare
PROXY_KEY — Secret: uma senha forte única de sua escolha
CLOUDFLARE_API_TOKEN — Secret: o token da Cloudflare
PROXY_KEY — Secret: uma senha forte única de sua escolha
Salve as variáveis e reimplante se a Cloudflare pedir. Não use a senha de login da sua conta como PROXY_KEY.
Suas três configurações do Worker — nomes exatos CLOUDFLARE_ACCOUNT_ID · Text · Seu Account ID, obtido do seu próprio painel da Cloudflare. Não é o nome nem a URL do Worker.
CLOUDFLARE_API_TOKEN · Secret · O token de API do Workers AI que você gerou na Cloudflare. Nunca o coloque no código público do Worker nem no campo API Key do Janitor.
PROXY_KEY · Secret · Uma senha longa e única que você mesmo cria. Você vai colar a MESMA senha no campo API Key do Janitor.
APENAS ESTRUTURA DE EXEMPLO (não são chaves reais)
CLOUDFLARE_ACCOUNT_ID = [seu próprio ID de conta]
CLOUDFLARE_API_TOKEN = [seu próprio token secreto de IA]
PROXY_KEY = [sua própria senha aleatória privada]
CLOUDFLARE_API_TOKEN · Secret · O token de API do Workers AI que você gerou na Cloudflare. Nunca o coloque no código público do Worker nem no campo API Key do Janitor.
PROXY_KEY · Secret · Uma senha longa e única que você mesmo cria. Você vai colar a MESMA senha no campo API Key do Janitor.
APENAS ESTRUTURA DE EXEMPLO (não são chaves reais)
CLOUDFLARE_ACCOUNT_ID = [seu próprio ID de conta]
CLOUDFLARE_API_TOKEN = [seu próprio token secreto de IA]
PROXY_KEY = [sua própria senha aleatória privada]
SEÇÃO 05 // MANUAL CLOUD Cole o código completo do proxy Este é o código-fonte real e funcional do Worker, não um placeholder
CAPTURA 05 · EDITOR DE CÓDIGO DO WORKERREFERÊNCIA VISUAL
Clique em Edit code no seu Worker e substitua o código inicial.
Abra Edit code, remova o código-fonte inicial existente, cole o JavaScript inteiro abaixo, depois pressione Deploy. O script suporta
/v1/chat/completions e /chat/completions, streaming, o modelo que você escolher e uma senha pessoal. ☁ Este script é a ponte real — o que ele faz? 1 · CORS + OPTIONS: permite que clientes baseados em navegador façam a requisição de verificação prévia com segurança. 2 · Endpoints POST: aceita requisições em
/v1/chat/completions ou /chat/completions. 3 · Senha pessoal: compara a API Key que o Janitor envia com seu segredo PROXY_KEY. Sem isso, qualquer pessoa que descubra a URL poderia consumir sua cota gratuita. 4 · Conversa de RP completa: mantém o array messages do Janitor em vez de reduzir sua história à última mensagem. 5 · Seleção de modelo: começa com o Gemma 4 mas também aceita os cinco IDs de modelo suportados listados neste tutorial. O código original sempre forçava o Gemma; esta versão permite que você troque pelo campo Model Name do Janitor. 6 · Streaming + configurações: ativa o streaming e usa temperatura 0.9, top_p 0.95, e max_tokens 2048 somente se o Janitor não tiver fornecido valores válidos. 7 · API da Cloudflare: usa seu Cloudflare Account ID e seu token de API separado para chamar o Workers AI. Seu token da Cloudflare nunca precisa ser colado no Janitor. 8 · Passthrough direto: encaminha o stream de resposta de volta ao Janitor sem reconstruir tokens ou chunks individuais. Copie o bloco INTEIRO abaixo no editor de código do Worker da Cloudflare. Não o cole no campo de URL do proxy do Janitor. Você não substitui nada dentro do script pelos seus segredos: adicione-os em Settings → Variables and Secrets. Mantenha os nomes exatos, incluindo underscores. Depois de colar, clique em Deploy.
</> SCRIPT COMPLETO DO CLOUDFLARE WORKER — JAVASCRIPT · ABRIR / COPIAR ↓
// JANITORAI + CLOUDFLARE WORKERS AI PROXY // Adaptado do passthrough de streaming funcional da Mel. // ETAPA 1: Settings > Variables and Secrets // CLOUDFLARE_ACCOUNT_ID = seu próprio Cloudflare Account ID (Text) // CLOUDFLARE_API_TOKEN = seu próprio token de API do Workers AI (Secret) // PROXY_KEY = uma senha forte que VOCÊ cria (Secret) // ETAPA 2: cole este script INTEIRO em Edit code e faça Deploy. // ETAPA 3: no JanitorAI defina Proxy URL como: // https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/v1/chat/completions // e a API Key com o MESMO valor da sua PROXY_KEY. const MODELS = new Set([ "@cf/google/gemma-4-26b-a4b-it", "@cf/zai-org/glm-4.7-flash", "@cf/qwen/qwen3-30b-a3b-fp8", "@cf/mistralai/mistral-small-3.1-24b-instruct", "@cf/meta/llama-3.3-70b-instruct-fp8-fast", ]); const DEFAULT_MODEL = "@cf/google/gemma-4-26b-a4b-it"; export default { async fetch(request, env) { const origin = request.headers.get("Origin") || "*"; const corsHeaders = { "Access-Control-Allow-Origin": origin, "Access-Control-Allow-Methods": "GET, POST, OPTIONS", "Access-Control-Allow-Headers": request.headers.get("Access-Control-Request-Headers") || "Content-Type, Authorization, X-API-Key", "Access-Control-Max-Age": "86400", "Vary": "Origin", }; const json = (data, status = 200) => Response.json(data, { status, headers: corsHeaders }); if (request.method === "OPTIONS") { return new Response(null, { status: 204, headers: corsHeaders }); } const path = new URL(request.url).pathname; if (request.method === "GET" && path === "/") { return json({ status: "ok", service: "Private Workers AI proxy" }); } if (request.method !== "POST" || (path !== "/v1/chat/completions" && path !== "/chat/completions")) { return json({ error: { message: "Not found" } }, 404); } // ADIÇÃO IMPORTANTE: impede estranhos de usar sua cota. if (!env.PROXY_KEY || !env.CLOUDFLARE_ACCOUNT_ID || !env.CLOUDFLARE_API_TOKEN) { return json({ error: { message: "Missing Worker secrets" } }, 500); } const auth = request.headers.get("Authorization") || ""; const suppliedKey = auth.replace(/^Bearer\s+/i, "").trim() || request.headers.get("X-API-Key") || ""; if (suppliedKey !== env.PROXY_KEY) { return json({ error: { message: "Invalid PROXY_KEY" } }, 401); } try { const raw = await request.text(); if (raw.length > 500000) { return json({ error: { message: "Request too large" } }, 413); } const body = JSON.parse(raw); if (!Array.isArray(body.messages) || !body.messages.length) { return json({ error: { message: "Missing messages array" } }, 400); } // Preserva a conversa do Janitor. O original fixava o Gemma aqui: // body.model = "@cf/google/gemma-4-26b-a4b-it"; // Esta versão atualizada também suporta a troca de modelos no Janitor. body.model = body.model || DEFAULT_MODEL; if (!MODELS.has(body.model)) { return json({ error: { message: "Model not in tutorial allowlist" } }, 400); } body.stream = true; // Mantém as configurações do Janitor, com padrões sensatos. if (typeof body.temperature !== "number") body.temperature = 0.9; if (typeof body.top_p !== "number" || body.top_p <= 0) body.top_p = 0.95; if (!body.max_tokens || body.max_tokens <= 0) body.max_tokens = 2048; const upstream = await fetch( `https://api.cloudflare.com/client/v4/accounts/${encodeURIComponent(env.CLOUDFLARE_ACCOUNT_ID)}/ai/v1/chat/completions`, { method: "POST", headers: { "Authorization": `Bearer ${env.CLOUDFLARE_API_TOKEN}`, "Content-Type": "application/json", "Accept": "text/event-stream", }, body: JSON.stringify(body), } ); // PASSTHROUGH DIRETO: sem reconstruir o texto transmitido pelo modelo. if (!upstream.ok) { const errorText = await upstream.text(); return new Response(errorText, { status: upstream.status, headers: { ...corsHeaders, "Content-Type": upstream.headers.get("Content-Type") || "application/json", }, }); } return new Response(upstream.body, { status: upstream.status, headers: { ...corsHeaders, "Content-Type": upstream.headers.get("Content-Type") || "text/event-stream; charset=utf-8", "Cache-Control": "no-cache, no-transform", }, }); } catch (error) { return json({ error: { message: error?.message || String(error) } }, 500); } }, };Por que usar 3 configurações?
O Cloudflare Account ID identifica sua conta; o Cloudflare API Token concede acesso aos modelos; a PROXY_KEY impede que outras pessoas enviem requisições pela URL pública do seu Worker.
Não espere um jailbreak automático
Este é um proxy de transporte, não um ajuste fino do modelo. Todas as políticas dos modelos e restrições da Cloudflare ainda se aplicam.
SEÇÃO 06 // MANUAL CLOUD Escolha um entre cinco modelos de IA IDs de modelo que você pode copiar para o JanitorAI
CAPTURA 06 · MODELOS DO WORKERS AIREFERÊNCIA VISUAL
Use as páginas de modelos da Cloudflare para comparar capacidades, elegibilidade atual e preços de uso.
MODELO 01 GEMMA 4 · COMECE AQUI
@cf/google/gemma-4-26b-a4b-it
Narrativa geral e uma grande janela de contexto de 256K tokens. Bom primeiro modelo para experimentar. MODELO 02 GLM-4.7 FLASH · DIÁLOGO
@cf/zai-org/glm-4.7-flash
Opção multilíngue, orientada a diálogo, com janela de contexto de 131K. MODELO 03 QWEN3 30B A3B · DETALHE
@cf/qwen/qwen3-30b-a3b-fp8
Segue instruções e cenas complexas. Contexto de 32K; o comportamento de raciocínio pode afetar o uso de tokens. MODELO 04 MISTRAL SMALL 3.1 · PROSA
@cf/mistralai/mistral-small-3.1-24b-instruct
Um estilo de escrita diferente para comparar em prosa criativa. Até 128K de contexto. MODELO 05 LLAMA 3.3 70B · ALTERNATIVA
@cf/meta/llama-3.3-70b-instruct-fp8-fast
Um modelo maior com janela de contexto de 24K, que pode consumir a cota gratuita relativamente rápido.Estas são sugestões para teste, não rankings de roleplay verificados. A disponibilidade e as restrições apenas para pagos podem variar. Se um modelo retornar 403, verifique o acesso da Cloudflare e a elegibilidade do modelo em vez de presumir que o proxy está quebrado.
SEÇÃO 07 // MANUAL CLOUD Conecte o Worker ao JanitorAI Use a URL do Worker e a PROXY_KEY — não seu token de API da Cloudflare
CAPTURA 07 · CONFIGURAÇÕES DE PROXY DO JANITORAIREFERÊNCIA VISUAL
Abra as configurações do chat do JanitorAI → Proxy → Adicionar ou configurar um proxy.
Nome da configuração
Cloudflare Free AI
Nome do modelo
URL do proxy
API Key
Seu segredo privado
Cloudflare Free AI
Nome do modelo
@cf/google/gemma-4-26b-a4b-itURL do proxy
https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/v1/chat/completionsAPI Key
Seu segredo privado
PROXY_KEY — NÃO o token de API da Cloudflare.Salve as configurações, selecione a configuração e envie uma mensagem curta de teste. Quando funcionar, as respostas do modelo devem voltar da Cloudflare através do seu Worker. Se o proxy não conectar, verifique os logs do Worker e as configurações do chat do Janitor.
🔗 Como deve ser sua URL de Proxy na prática? URL REAL DA MEL — APENAS FORMATO DE EXEMPLO
https://janitor-ai-proxy.melancholux.workers.dev/v1/chat/completions SUA PRÓPRIA URL — SUBSTITUA ESTA PARTE https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/v1/chat/completions Exemplo: a Cloudflare diz que o endereço do seu Worker é https://my-rp-proxy.abc123.workers.dev. Sua Proxy URL no Janitor é esse endereço exato mais /v1/chat/completions: https://my-rp-proxy.abc123.workers.dev/v1/chat/completions Não use a URL da Mel como sua. O domínio do Worker da sua conta será diferente. Não digite as palavras YOUR-WORKER literalmente, e não cole seu token de API da Cloudflare no Janitor: use PROXY_KEY no campo API Key. SEÇÃO 08 // MANUAL CLOUD Troque de modelo sem reimplantar Cinco modelos, um Worker, uma cota gratuita
CAPTURA 08 · VERIFICAÇÃO FINAL / TESTEREFERÊNCIA VISUAL
Use a captura final como referência ao verificar seu chat e o modelo escolhido.
No JanitorAI, altere apenas Model Name para qualquer ID listado acima. A URL do Worker e a PROXY_KEY permanecem inalteradas. Você pode salvar configurações separadas por modelo, mas todas gastam a mesma cota da conta.
De: @cf/google/gemma-4-26b-a4b-it Para: @cf/zai-org/glm-4.7-flash
SEÇÃO 09 // MANUAL CLOUD Configurações de RP sugeridas Pontos de partida opcionais, não configurações universais ideais
Temperatura
0.8–1.0 para experimentar mais variedade; diminua se os personagens saírem do rumo.
Top P
0.90–0.95 se o modelo selecionado suportar.
Max output tokens
1024–2048; respostas mais curtas custam menos Neurônios.
Streaming
Ligado, se a interface atual do Janitor e o modelo escolhido suportarem.
Históricos de conversa longos podem consumir muitos tokens. Um modelo que suporta contexto enorme não significa que o contexto inteiro caiba na sua cota gratuita diária.
SEÇÃO 10 // MANUAL CLOUD FAQ & solução de problemas As coisas que costumam dar errado
Meu PC precisa ficar ligado? ↓
Não. Seu Cloudflare Worker roda na infraestrutura da Cloudflare.
É ilimitado? ↓
Não. A cota gratuita atualmente cobre 10.000 Neurônios por dia na conta.
NSFW é garantido? ↓
Não. O comportamento de segurança e moderação depende do modelo e das políticas do serviço.
Amigos podem usar meu proxy? ↓
Não compartilhe sua PROXY_KEY de qualquer jeito. Qualquer pessoa com a URL e a chave poderia consumir sua cota.
401 Unauthorized ↓
A API Key do JanitorAI deve corresponder exatamente à PROXY_KEY.
403 Forbidden ↓
Revise as permissões do token da Cloudflare, a elegibilidade do modelo e se um plano pago é necessário.
404 Not Found ↓
Verifique novamente a URL workers.dev e o caminho /v1/chat/completions.
400 Invalid model ↓
Verifique se você copiou um ID de modelo suportado exatamente.
429 Too many requests ↓
Você pode ter esgotado os Neurônios gratuitos ou atingido limites temporários de capacidade.
Respostas não aparecem ↓
Verifique a implantação do Worker, os logs, seus segredos e as configurações de chat/proxy; tente um prompt mais curto.
Trocar de modelo apaga chats? ↓
Mudar o modelo selecionado não remove por si só conversas salvas do Janitor. Cada modelo pode lidar com o contexto disponível de forma diferente.
SEÇÃO 11 // MANUAL CLOUD Palavras finais & recursos oficiais Faça disso o seu — e mantenha suas chaves privadas
E aí está, queridos! 🌸
Um proxy pessoal, cinco modelos para comparar e um pouco mais de liberdade para experimentar. Este tutorial não é um serviço premium gratuito ilimitado, apenas uma forma de aprender e explorar dentro da cota disponível.
Compartilho isso porque criar coisas deveria ser divertido, e sei que nem todo mundo pode pagar por modelos premium.
Fiquem fofos. 🤍
Um proxy pessoal, cinco modelos para comparar e um pouco mais de liberdade para experimentar. Este tutorial não é um serviço premium gratuito ilimitado, apenas uma forma de aprender e explorar dentro da cota disponível.
Compartilho isso porque criar coisas deveria ser divertido, e sei que nem todo mundo pode pagar por modelos premium.
Fiquem fofos. 🤍
Tutorial feito pela comunidade por Melancholux. Não afiliado ao JanitorAI, à Cloudflare nem a qualquer provedor de modelo listado.
Chaves privadas nunca devem aparecer em um post público.
Chaves privadas nunca devem aparecer em um post público.
Criado 25 de out.
Atualizado 25 de out.
Publicado 25 de out.
- Sem limites
- #melancholux
- #reginaden