Очередной туториал, пока я доделываю нескольких ботов (Обновлено со скриптом)

Переведено с английского

Another Tutorial While I Finish Some Bots (Updated With Script)

66

74

БЕСПЛАТНЫЙ AI-ПРОКСИ ДЛЯ JANITORAI · ПОШАГОВОЕ РУКОВОДСТВО ПО CLOUDFLARE

☁ ЛАБОРАТОРИЯ БЕСПЛАТНЫХ ПРОКСИ ОТ МЕЛРУКОВОДСТВО / ОКТЯБРЬ 2026 · ВЕРСИЯ СООБЩЕСТВА
БЕСПЛАТНЫЙ ТАРИФ · СОБСТВЕННЫЙ WORKER · НЕСКОЛЬКО МОДЕЛЕЙ ВАШ СОБСТВЕННЫЙ AI-ПРОКСИ Cloudflare Workers AI × JanitorAI
Один Worker. Пять моделей. Ежемесячная подписка не нужна при использовании в пределах доступных бесплатных лимитов.
ПОДХОДИТ НОВИЧКАМБЕЗ ЛОКАЛЬНОГО GPU10 000 НЕЙРОНОВ / ДЕНЬПЕРЕКЛЮЧЕНИЕ МОДЕЛЕЙХай-хай, всем! 🌸 Я сделала это, чтобы вы могли собрать и понять свой собственный прокси, а не зависеть от чужого.
ПЕРЕД НАЧАЛОМ — ЧТО ДЕЛАЕТ ЭТО РУКОВОДСТВО
Мы создадим бесплатный Cloudflare Worker, сохраним ваш приватный токен Cloudflare в Secrets, добавим защищённый прокси, совместимый с OpenAI, выберем модель и подключим его к JanitorAI. Изображения иллюстрируют шаги, а сам скрипт Worker приведён ниже, чтобы вы могли его скопировать.

Это бесплатно в пределах дневного лимита аккаунта, но не безлимитно и без гарантии поддержки каждой модели на каждом аккаунте. Никогда не публикуйте API-токены или пароль вашего прокси.
РАЗДЕЛ 01 // РУКОВОДСТВО ПО ОБЛАКУ Что вам нужно Ваш чек-лист подготовки
Бесплатный аккаунт Cloudflare
Создайте его на dash.cloudflare.com. Ваш Worker работает онлайн; ваш компьютер не должен оставаться включённым.
Аккаунт JanitorAI
Используйте чат/персонажа, где поддерживаются пользовательские прокси.
Надёжный приватный пароль
Вы создаёте его сами. Он становится PROXY_KEY, отдельным от токена API Cloudflare.
Бесплатный лимит: Cloudflare Workers AI сейчас указывает 10 000 бесплатных нейронов в день, сброс в 00:00 UTC. Длина ввода/вывода и выбор модели влияют на расход. При достижении лимита вы получите ошибку, пока лимит не сбросится или вы не смените тариф.
РАЗДЕЛ 02 // РУКОВОДСТВО ПО ОБЛАКУ Разверните ваш Cloudflare Worker Создайте маленький сервер, который будет пересылать запросы
СКРИНШОТ 01 · ПАНЕЛЬ CLOUDFLAREВИЗУАЛЬНЫЙ ОРИЕНТИР
Используйте этот скриншот как визуальный ориентир для панели управления. Подписи могут со временем меняться.
Перейдите в панель Cloudflare → Workers & Pages → Create. Создайте Worker со стартовым шаблоном, назовите его, например, janitor-free-proxy и нажмите Deploy.
СКРИНШОТ 02 · НАСТРОЙКА WORKERВИЗУАЛЬНЫЙ ОРИЕНТИР
Следуйте текущим подсказкам при создании Worker, пока Cloudflare не выдаст вам адрес *.workers.dev.
https://janitor-free-proxy.YOUR-SUBDOMAIN.workers.dev
РАЗДЕЛ 03 // РУКОВОДСТВО ПО ОБЛАКУ Получите ваш токен Workers AI Этот токен приватный; он никогда не должен попасть в JanitorAI
СКРИНШОТ 03 · WORKERS AI / ТОКЕНВИЗУАЛЬНЫЙ ОРИЕНТИР
Найдите Workers AI и раздел REST API / создания токена в вашей панели управления.
Откройте AI → Workers AI и найдите Use REST API или действие создания API-токена. Создайте токен с доступом к Workers AI и скопируйте ваш Cloudflare Account ID.
ПРАВИЛО БЕЗОПАСНОСТИ
API-токен Cloudflare — это серверный секрет. НЕ вставляйте его в JanitorAI, Discord или публичный код. JanitorAI получит только другой приватный пароль (PROXY_KEY).
РАЗДЕЛ 04 // РУКОВОДСТВО ПО ОБЛАКУ Добавьте 3 настройки Worker Cloudflare Account ID плюс два Secret
СКРИНШОТ 04 · ПЕРЕМЕННЫЕ & СЕКРЕТЫВИЗУАЛЬНЫЙ ОРИЕНТИР
Внутри вашего Worker откройте Settings → Variables and Secrets.
CLOUDFLARE_ACCOUNT_ID — Text: ваш ID аккаунта
CLOUDFLARE_API_TOKEN — Secret: токен Cloudflare
PROXY_KEY — Secret: уникальный надёжный пароль на ваш выбор
Сохраните переменные и повторно разверните, если Cloudflare попросит. Не используйте пароль от входа в аккаунт как PROXY_KEY.
Ваши три настройки Worker — точные имена CLOUDFLARE_ACCOUNT_ID · Text · Ваш Account ID, полученный из вашей собственной панели Cloudflare. Это не имя Worker и не URL.
CLOUDFLARE_API_TOKEN · Secret · API-токен Workers AI, который вы создали в Cloudflare. Никогда не помещайте его в публичный код Worker или в поле API Key в Janitor.
PROXY_KEY · Secret · Длинный уникальный пароль, который вы создаёте сами. Вы вставите ТОТ ЖЕ пароль в поле API Key в Janitor.
ТОЛЬКО ПРИМЕР СТРУКТУРЫ (не настоящие ключи)
CLOUDFLARE_ACCOUNT_ID = [ваш собственный ID аккаунта]
CLOUDFLARE_API_TOKEN = [ваш собственный секретный AI-токен]
PROXY_KEY = [ваш собственный приватный случайный пароль]
РАЗДЕЛ 05 // РУКОВОДСТВО ПО ОБЛАКУ Вставьте полный код прокси Это настоящий рабочий исходный код Worker, а не заглушка
СКРИНШОТ 05 · РЕДАКТОР КОДА WORKERВИЗУАЛЬНЫЙ ОРИЕНТИР
Нажмите Edit code в вашем Worker и замените стартовый код.
Откройте Edit code, удалите существующий стартовый исходный код, вставьте весь JavaScript ниже, затем нажмите Deploy. Скрипт поддерживает /v1/chat/completions и /chat/completions, потоковую передачу, выбранную вами модель и личный пароль.
☁ Этот скрипт и есть настоящий мост — что он делает? 1 · CORS + OPTIONS: позволяет браузерным клиентам безопасно выполнять предварительный запрос. 2 · POST-эндпоинты: принимает запросы по адресам /v1/chat/completions или /chat/completions. 3 · Личный пароль: сравнивает API Key, который отправляет Janitor, с вашим секретом PROXY_KEY. Без этого любой, кто узнает URL, мог бы израсходовать вашу бесплатную квоту. 4 · Полная RP-беседа: сохраняет массив messages от Janitor, а не сводит вашу историю к последнему сообщению. 5 · Выбор модели: по умолчанию запускается с Gemma 4, но также принимает пять поддерживаемых ID моделей, перечисленных в этом руководстве. Оригинальный код всегда принудительно использовал Gemma; эта версия позволяет переключаться из поля Model Name в Janitor. 6 · Потоковая передача + настройки: включает потоковую передачу и использует temperature 0.9, top_p 0.95 и max_tokens 2048, только если Janitor не передал допустимые значения. 7 · API Cloudflare: использует ваш Cloudflare Account ID и его отдельный API-токен для вызова Workers AI. Ваш токен Cloudflare никогда не нужно вставлять в Janitor. 8 · Прямая передача: пересылает поток ответа обратно в Janitor, не пересобирая отдельные токены или чанки.
Скопируйте ВЕСЬ блок ниже в редактор кода Worker в Cloudflare. Не вставляйте его в поле URL прокси в Janitor. Вы не заменяете что-либо в скрипте вашими секретами: добавьте их в Settings → Variables and Secrets. Сохраняйте их точные имена, включая подчёркивания. После вставки нажмите Deploy.
</> ПОЛНЫЙ СКРИПТ CLOUDFLARE WORKER — JAVASCRIPT · ОТКРЫТЬ / СКОПИРОВАТЬ ↓
// JANITORAI + CLOUDFLARE WORKERS AI PROXY // Адаптировано из рабочей потоковой передачи от Мел. // ШАГ 1: Settings > Variables and Secrets // CLOUDFLARE_ACCOUNT_ID = ваш собственный Cloudflare Account ID (Text) // CLOUDFLARE_API_TOKEN = ваш собственный API-токен Workers AI (Secret) // PROXY_KEY = надёжный пароль, который ВЫ создаёте (Secret) // ШАГ 2: вставьте ВЕСЬ этот скрипт в Edit code и нажмите Deploy. // ШАГ 3: в JanitorAI укажите Proxy URL: // https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/v1/chat/completions // а API Key — ТО ЖЕ значение, что и ваш 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); } // ВАЖНОЕ ДОПОЛНЕНИЕ: не даём посторонним использовать вашу квоту. 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); } // Сохраняем беседу Janitor. Оригинал здесь фиксировал Gemma: // body.model = "@cf/google/gemma-4-26b-a4b-it"; // Эта обновлённая версия также поддерживает переключение моделей в 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; // Сохраняем настройки Janitor с разумными значениями по умолчанию. 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), } ); // ПРЯМАЯ ПЕРЕДАЧА: не пересобираем потоковый текст модели. 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); } }, };
Зачем нужны 3 настройки?
Cloudflare Account ID идентифицирует ваш аккаунт; Cloudflare API Token даёт доступ к моделям; PROXY_KEY не даёт другим людям отправлять запросы через публичный URL вашего Worker.
Не ждите автоматического джейлбрейка
Это транспортный прокси, а не дообучение модели. Все политики моделей и ограничения Cloudflare по-прежнему действуют.
РАЗДЕЛ 06 // РУКОВОДСТВО ПО ОБЛАКУ Выберите одну из пяти AI-моделей ID моделей, которые можно скопировать в JanitorAI
СКРИНШОТ 06 · МОДЕЛИ WORKERS AIВИЗУАЛЬНЫЙ ОРИЕНТИР
Используйте страницы моделей Cloudflare, чтобы сравнить возможности, текущую доступность и цену использования.
МОДЕЛЬ 01 GEMMA 4 · НАЧНИТЕ ЗДЕСЬ
@cf/google/gemma-4-26b-a4b-it
Общее повествование и большой контекст в 256K токенов. Хорошая первая модель для экспериментов.
МОДЕЛЬ 02 GLM-4.7 FLASH · ДИАЛОГ
@cf/zai-org/glm-4.7-flash
Многоязычный вариант, ориентированный на диалог, с контекстом 131K.
МОДЕЛЬ 03 QWEN3 30B A3B · ДЕТАЛИ
@cf/qwen/qwen3-30b-a3b-fp8
Следование инструкциям и сложные сцены. Контекст 32K; поведение рассуждения может влиять на расход токенов.
МОДЕЛЬ 04 MISTRAL SMALL 3.1 · ПРОЗА
@cf/mistralai/mistral-small-3.1-24b-instruct
Другой стиль письма для сравнения в творческой прозе. Контекст до 128K.
МОДЕЛЬ 05 LLAMA 3.3 70B · АЛЬТЕРНАТИВА
@cf/meta/llama-3.3-70b-instruct-fp8-fast
Более крупная модель с контекстом 24K, которая может относительно быстро израсходовать бесплатный лимит.
Это предложения для тестирования, а не проверенные рейтинги для ролевых игр. Доступность и ограничения «только платно» могут меняться. Если модель возвращает 403, проверьте доступ в Cloudflare и доступность модели, а не считайте, что прокси сломан.
РАЗДЕЛ 07 // РУКОВОДСТВО ПО ОБЛАКУ Подключите Worker к JanitorAI Используйте URL Worker и PROXY_KEY — а не ваш API-токен Cloudflare
СКРИНШОТ 07 · НАСТРОЙКИ ПРОКСИ В JANITORAIВИЗУАЛЬНЫЙ ОРИЕНТИР
Откройте настройки чата JanitorAI → Proxy → Add или настройте прокси.
Название конфигурации
Cloudflare Free AI
Название модели
@cf/google/gemma-4-26b-a4b-it
URL прокси
https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/v1/chat/completions
API Key
Ваш приватный секрет PROXY_KEY — НЕ API-токен Cloudflare.
Сохраните настройки, выберите конфигурацию и отправьте короткое тестовое сообщение. Когда всё работает, ответы модели должны возвращаться из Cloudflare через ваш Worker. Если прокси не подключается, проверьте и логи Worker, и настройки чата в Janitor.
🔗 Как на самом деле должен выглядеть ваш URL прокси? НАСТОЯЩИЙ URL МЕЛ — ТОЛЬКО ПРИМЕР ФОРМАТА https://janitor-ai-proxy.melancholux.workers.dev/v1/chat/completions ВАШ СОБСТВЕННЫЙ URL — ЗАМЕНИТЕ ЭТУ ЧАСТЬ https://YOUR-WORKER.YOUR-SUBDOMAIN.workers.dev/v1/chat/completions Пример: Cloudflare сообщает, что адрес вашего Worker — https://my-rp-proxy.abc123.workers.dev. Ваш Proxy URL в Janitor — это тот самый адрес плюс /v1/chat/completions: https://my-rp-proxy.abc123.workers.dev/v1/chat/completions Не используйте URL Мел как свой. Домен Worker вашего аккаунта будет другим. Не вводите слова YOUR-WORKER буквально, и не вставляйте ваш API-токен Cloudflare в Janitor: используйте PROXY_KEY в поле API Key.
РАЗДЕЛ 08 // РУКОВОДСТВО ПО ОБЛАКУ Переключайте модели без повторного развёртывания Пять моделей, один Worker, один бесплатный лимит
СКРИНШОТ 08 · ФИНАЛЬНАЯ ПРОВЕРКА / ТЕСТВИЗУАЛЬНЫЙ ОРИЕНТИР
Используйте финальный скриншот как ориентир, проверяя свой чат и выбранную модель.
В JanitorAI меняйте только Model Name на любой ID из списка выше. URL Worker и PROXY_KEY остаются неизменными. Вы можете сохранять отдельные конфигурации для каждой модели, но все они расходуют один и тот же лимит аккаунта.
С: @cf/google/gemma-4-26b-a4b-it На: @cf/zai-org/glm-4.7-flash
РАЗДЕЛ 09 // РУКОВОДСТВО ПО ОБЛАКУ Рекомендуемые настройки для RP Необязательные отправные точки, а не универсальные лучшие настройки
Temperature
0.8–1.0, чтобы попробовать больше разнообразия; снизьте, если персонажи «уплывают».
Top P
0.90–0.95, если выбранная модель это поддерживает.
Максимум токенов вывода
1024–2048; более короткие ответы расходуют меньше нейронов.
Потоковая передача
Включена, если ваш текущий интерфейс Janitor и выбранная модель это поддерживают.
Длинные истории бесед могут расходовать много токенов. Модель с огромным контекстом не означает, что весь контекст укладывается в ваш дневной бесплатный бюджет.
РАЗДЕЛ 10 // РУКОВОДСТВО ПО ОБЛАКУ FAQ & решение проблем То, что обычно идёт не так
Должен ли мой компьютер оставаться включённым? ↓
Нет. Ваш Cloudflare Worker работает на инфраструктуре Cloudflare.
Это безлимитно? ↓
Нет. Бесплатный лимит сейчас покрывает 10 000 нейронов в день на аккаунт.
NSFW гарантирован? ↓
Нет. Поведение безопасности и модерации зависит от политик модели и сервиса.
Могут ли друзья пользоваться моим прокси? ↓
Не делитесь вашим PROXY_KEY без необходимости. Любой, у кого есть URL и ключ, может израсходовать ваш лимит.
401 Unauthorized ↓
API Key в JanitorAI должен точно совпадать с PROXY_KEY.
403 Forbidden ↓
Проверьте разрешения токена Cloudflare, доступность модели и требуется ли платный тариф.
404 Not Found ↓
Ещё раз проверьте URL workers.dev и путь /v1/chat/completions.
400 Invalid model ↓
Убедитесь, что вы точно скопировали поддерживаемый ID модели.
429 Too many requests ↓
Возможно, вы исчерпали бесплатные нейроны или достигли временных ограничений ёмкости.
Ответы не отображаются ↓
Проверьте развёртывание Worker, логи, ваши секреты и настройки чата/прокси; попробуйте более короткий запрос.
Переключение моделей удаляет чаты? ↓
Смена выбранной модели сама по себе не удаляет сохранённые беседы Janitor. Каждая модель может по-разному обрабатывать доступный контекст.
РАЗДЕЛ 11 // РУКОВОДСТВО ПО ОБЛАКУ Заключительные слова & официальные ресурсы Сделайте это своим — и держите ключи в секрете
Ну вот и всё, дорогие мои! 🌸
Один личный прокси, пять моделей для сравнения и чуть больше свободы для экспериментов. Это руководство — не безлимитный бесплатный премиум-сервис, а просто способ учиться и исследовать в пределах доступного лимита.

Я делюсь этим, потому что создавать что-то должно быть весело, и я знаю, что не каждый может платить за премиум-модели.
Оставайтесь пушистыми. 🤍
Руководство, созданное сообществом, от Melancholux. Не связано с JanitorAI, Cloudflare или каким-либо из перечисленных провайдеров моделей.
Приватные ключи никогда не должны появляться в публичном посте.

Создано 25 окт.

Обновлено 25 окт.

Опубликован 25 окт.

Опубликованные чаты